求教:初学EJB遇到问题

lzysystem 2013-12-10 09:26:21

public interface HelloWorldRemote {

String name();
}



public interface HelloWorldLocal extends HelloWorldRemote{}



@Stateless
@Remote(HelloWorldRemote.class)
@Local(HelloWorldLocal.class)
public class HelloWorld implements HelloWorldRemote, HelloWorldLocal {
@Override
public String name() {
return "getName";
}
}



public static void main(String[] args) throws NamingException {
Properties props = new Properties();
props.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
props.setProperty(Context.PROVIDER_URL, "127.0.0.1:1099");
props.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming");
InitialContext ctx = new InitialContext(props);
HelloWorldRemote remote = (HelloWorldRemote) ctx.lookup("HelloWorld/remote");
System.out.println(remote.name());
}


用的是JBOSS7发布的


运行JBOSS的standalone.bat


异常信息:
Exception in thread "main" javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out]
at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1115)
at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1192)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:514)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:507)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at com.leon.Test.main(Test.java:23)
Caused by: java.net.SocketTimeoutException: Receive timed out
at java.net.TwoStacksPlainDatagramSocketImpl.receive0(Native Method)
at java.net.TwoStacksPlainDatagramSocketImpl.receive(TwoStacksPlainDatagramSocketImpl.java:90)
at java.net.DatagramSocket.receive(DatagramSocket.java:786)
at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1093)
... 5 more


谢谢。。。。。。
...全文
681 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你这个典型的 6的找EJB的方法,7的 请看2楼
  • 打赏
  • 举报
回复
jboss 7 和 jboss 6 寻找EJB的方法是不一样的
huang_zd 2014-03-20
  • 打赏
  • 举报
回复
你看下jboss服务有没有开启
zuxianghuang 2013-12-16
  • 打赏
  • 举报
回复
jndi 错了,7不是这样的, 首先默认端口是4447 jndi是 For stateless beans: ejb:<app-name>/<module-name>/<distinct-name>/<bean-name>!<fully-qualified-classname-of-the-remote-interface> For stateful beans: ejb:<app-name>/<module-name>/<distinct-name>/<bean-name>!<fully-qualified-classname-of-the-remote-interface>?stateful String lookupName = "ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + 实现类的类名+ "!" + 接口类的全名;
lzysystem 2013-12-10
  • 打赏
  • 举报
回复
发一天了,没有人回答吗?

6,787

社区成员

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

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