这是我的客户代码
package com.tutorialspoint.test;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import com.tutorialspoint.stateless.testRemote;
public class test
{
BufferedReader brConsoleReader = null;
Properties props;
static InitialContext ctx;
{
props = new Properties();
try {
props.load(new FileInputStream("jndi.properties"));
} catch (IOException ex) {
ex.printStackTrace();
}
try {
ctx = new InitialContext(props);
} catch (NamingException ex) {
ex.printStackTrace();
}
brConsoleReader =
new BufferedReader(new InputStreamReader(System.in));
}
public static void main(String[] args)
{
test _test = new test();
try {
testRemote libraryBean =(testRemote)ctx.lookup("java:global/TestEjb/testBean!
com.tutorialspoint.stateless.testRemote");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
这部署在服务器上
package com.tutorialspoint.stateless;
import javax.ejb.Stateless;
@Stateless
public class testBean implements testRemote
{
public void hello()
{
System.out.println("hello");
}
}
package com.tutorialspoint.stateless;
import javax.ejb.Remote;
@Remote
public interface testRemote
{
void hello();
}
我在服务器端遇到异常:
19:09:12,676 ERROR [org.jboss.remoting.remote.connection](Remoting" cognam-
PC-26" read-1)JBREM000200:远程连接失败: java.io.IOException:已强制关闭现有连接 远程主机
我在客户端获得例外: -
javax.naming.CommunicationException:无法获取连接 对于以下任何URL:localhost:4447并且发现失败并显示错误: javax.naming.CommunicationException:接收超时[Root exception 是java.net.SocketTimeoutException:接收超时] [Root exception 是javax.naming.CommunicationException:无法从中检索存根 server localhost:4447 [根异常是java.io.StreamCorruptedException:
无效的流标题:0000000F]]org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1414) 在org.jnp.interfaces.NamingContext.lookup(NamingContext.java:594) 在org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587) 在javax.naming.InitialContext.lookup(InitialContext.java:392) 在com.tutorialspoint.test.test.main(test.java:37)
答案 0 :(得分:0)
可能是您的服务器实际上不允许连接到4447.检查您是否可以telnet到该端口或使用netstat -an查询。
还要确保没有防火墙阻止访问端口。
答案 1 :(得分:0)
如果正在运行(例如Fiddler)
,请尝试关闭任何http流量捕获工具