求教:初学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


谢谢。。。。。。
...全文
652 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
你这个典型的 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
发一天了,没有人回答吗?
回复
相关推荐
发帖
JBoss技术交流
创建于2007-07-26

6783

社区成员

JBoss技术交流
申请成为版主
帖子事件
创建了帖子
2013-12-10 09:26
社区公告
暂无公告