EJB(一)
昨天开始接触的EJB 按照视频上的讲解很快就学会了一个例子helloworld
最后在于运行的是时候才会显示一大堆的错误就是这样
javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out]
at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1678)
at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1795)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:693)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at org.ejb.client.EJBlient.main(EJBlient.java:27)
Caused by: java.net.SocketTimeoutException: Receive timed out
at java.net.PlainDatagramSocketImpl.receive0(Native Method)
at java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java:136)
at java.net.DatagramSocket.receive(DatagramSocket.java:725)
at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1647)
... 5 more
最后我一直调试这答案并且寻找网上的解决 方法最后终于成功了
首先如果你的端口是
props.setProperty("java.naming.provider.url","localhost:1099");
就是localhost 的话但是仍然没有成功只能说明你的里面的字符打错了 仔细检查一下
然后就是映射功能了,如果你想让外面的机器也能作为客户端的话就只有要进行内网映射了
如果你的内网ip是192.168.0.* 那么就要做一个映射 关于映射请参照到我的关于如何架设服务器的那篇博客 就是将增加一个端口1099的映射
并且你在启动的时候要在打开运行里的run -b 0.0.0.0
这个命令是直接显示非本地和本地都是可以进行的客户端
而 直接的run.bat 我试验了一下应该是默认的本地连接里的客户端
你也可以用run -b *.*.*.*(你的ip)来制定允许哪里端口进行客户端
总之这个run的时候必须是绑定一个ip的,这就是一个EJB的重点。 1 楼 huazuoyu 2010-11-30 能看一下我的帖子吗?帮忙回答一下问什么,谢谢了。我都找答案找来一天了,郁闷透了。http://www.iteye.com/problems/54566