关于JBoss入门

小曦阳哟 2012-08-06 05:13:53
刚刚做了个JBoss入门:报Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial这样的错,
求解决方案,在此谢过

java代码:

-------------------------------------------------------

package com.sls.ejb3;

public interface HelloEJB3 {
public String sayHello(String name);
}

-------------------------------------------------------

package com.sls.ejb3.impl;

import javax.ejb.Remote;
import javax.ejb.Stateless;

import com.sls.ejb3.HelloEJB3;

@Stateless
@Remote(HelloEJB3.class)
// @Stateless 这个注解可以指定类是个无状态的会话bean
public class HelloEjb3Bean implements HelloEJB3 {

@Override
public String sayHello(String name) {
return name + "说:你好,世界....";
}

}

-------------------------------------------------------
客户端代码:
public static void main(String[] args) {
// Properties props = new Properties();
// props.setProperty("java.namint.jactory.initial",
// "org.jnp.interfaces.NamingContextFactory");
// props.setProperty("java.naming.provider.url", "localhost:1099");
InitialContext ctx;
try {
ctx = new InitialContext();
System.out.println("110" + ctx);
HelloEJB3 helloEJB3 = (HelloEJB3) ctx
.lookup("java:helloEjb3/HelloEjb3Bean/remote");
System.out.println(helloEJB3.getClass().getName());
// System.out.println(helloEJB3.sayHello("尚立帅"));
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

-------------------------------------------------------
jndi.properties代码:

java.namint.jactory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=localhost:1099

--------------------------------------------------------------
HelloEJB3 helloEJB3 = (HelloEJB3) ctx.lookup("java:helloEjb3/HelloEjb3Bean/remote")
改为
HelloEJB3 helloEJB3 = (HelloEJB3) ctx.lookup("HelloEjb3Bean/remote")
也不行啊!
helloEJB3没值啊!
我觉得还是ctx.lookup("HelloEjb3Bean/remote")这儿有问题啊!
求高手赐教!谢谢了
...全文
345 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
小曦阳哟 2012-08-07
  • 打赏
  • 举报
回复
按照大家的解法,我重新做了一下
ctx = new InitialContext();
System.out.println("110" + ctx);
HelloEJB3 helloEJB3 = (HelloEJB3) ctx.lookup("HelloEjb3Impl/remote");
System.out.println(helloEJB3);
System.out.println(helloEJB3.sayHello("aaaa"));

现在是这样的,HhelloEJB3已经有值了。
可是仍然不能调用sayHello()报空值针异常。
初学者不知如何下手,也调试了,但没结果。
麻烦大家了,请赐教!谢谢。。


这是HhelloEJB3的值:Proxy to jboss.j2ee:jar=HelloEjb3.jar,name=HelloEjb3Impl,service=EJB3 implementing [interface com.sls.ejb3.HelloEJB3]

错误信息。
Exception in thread "main" java.lang.NullPointerException
at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:345)
at org.jboss.ejb3.session.InvokableContextClassProxyHack._dynamicInvoke(InvokableContextClassProxyHack.java:53)
at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:91)
at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:967)
at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:791)
at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:744)
at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:548)
at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:234)
at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:218)
at org.jboss.remoting.Client.invoke(Client.java:2070)
at org.jboss.remoting.Client.invoke(Client.java:879)
at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:60)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:77)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.async.impl.interceptor.AsynchronousClientInterceptor.invoke(AsynchronousClientInterceptor.java:143)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62)
at $Proxy4.invoke(Unknown Source)
at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:185)
at $Proxy3.sayHello(Unknown Source)
at com.sls.test.Ejb3Client.main(Ejb3Client.java:27)
at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:72)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:77)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.async.impl.interceptor.AsynchronousClientInterceptor.invoke(AsynchronousClientInterceptor.java:143)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62)
at $Proxy4.invoke(Unknown Source)
at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:185)
at $Proxy3.sayHello(Unknown Source)
at com.sls.test.Ejb3Client.main(Ejb3Client.java:27)
kay826520 2012-08-07
  • 打赏
  • 举报
回复

http://patmusing.blog.163.com/blog/static/1358349602010015105351448/

给个图文例子博客的网址你,你自己看看,都很详细了
小曦阳哟 2012-08-07
  • 打赏
  • 举报
回复
我先改改啊
麻烦你了,谢谢啊!
kay826520 2012-08-07
  • 打赏
  • 举报
回复
初学的话我建议用jboss5.0+ejb3.0,网上例子多数是这版本的,其他版本的例子少,出错也难找
小曦阳哟 2012-08-07
  • 打赏
  • 举报
回复
我用的是6.1.0版本的。
kay826520 2012-08-07
  • 打赏
  • 举报
回复
http://learning.iteye.com/blog/1274103

里面有ejb例子跟源码
kay826520 2012-08-07
  • 打赏
  • 举报
回复
你是用什么版本的jboss啊
小曦阳哟 2012-08-06
  • 打赏
  • 举报
回复
能给个解决方案不能啊

6,787

社区成员

发帖
与我相关
我的任务
社区描述
JBoss技术交流
社区管理员
  • JBoss技术交流社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧