JBREM000200:远程连接失败:java.io.IOException:现有连接被远程主机强制关闭
这是我的客户代码JBREM000200:远程连接失败:java.io.IOException:现有连接被远程主机强制关闭,java,eclipse,ejb,jboss7.x,Java,Eclipse,Ejb,Jboss7.x,这是我的客户代码 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.namin
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:12676错误[org.jboss.remoting.remote.connection](远程处理“cognam-pc-26“read-1)JBREM000200:远程连接失败: java.io.IOException:现有连接被
远程主机 我在客户端遇到异常:- javax.naming.CommunicationException:无法获取连接 指向以下任意URL:localhost:4447,发现失败,错误为: javax.naming.CommunicationException:接收超时[根异常] 是java.net.SocketTimeoutException:Receive超时][根异常 is javax.naming.CommunicationException:未能从中检索存根 服务器localhost:4447[根异常为java.io.StreamCorruptedException:
无效的流标头:0000000 f]] 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)
可能是您的服务器实际上不允许连接到4447。检查您是否可以telnet到该端口或使用netstat-an查询此端口
还要确保没有防火墙阻止对端口的访问。可能是您的服务器实际上不允许连接到4447。检查您是否可以telnet到该端口或使用netstat-an查询此端口
还要确保没有防火墙阻止对端口的访问。如果正在运行,请尝试关闭任何http流量捕获工具(例如Fiddler)如果正在运行,请尝试关闭任何http流量捕获工具(例如Fiddler)它只被调用了一次,然后我猜您的剪切和粘贴不正确或者我读错了,我将删除我的评论。可能是您的服务器实际上不允许连接到4447。检查您是否可以telnet到该端口或使用netstat-an查询此端口。它只被调用一次。然后我猜您的剪切和粘贴不正确,或者我读错了,我将删除我的注释。可能是您的服务器实际上不允许连接到4447。检查您是否可以telnet到该端口,或者使用netstat-an查询this.thanx以获得回复,在更改jndi.properties之后使用jnp上下文之前,我已经通过更改jndi.proerties完成了此操作:-props=new properties();put(Context.INITIAL\u Context\u工厂,“org.jboss.naming.remote.client.InitialContextFactory”);props.put(Context.PROVIDER\u URL,“remote://localhost:4447"); put(“jboss.naming.client.ejb.context”,true);props.put(“jboss.naming.client.connect.options.org.xnio.options.SASL_POLICY_NOPLAINTEXT”,“false”);我没有遵循,这是否意味着您的问题已得到解决?有人能告诉我,在ejb调用Anx进行应答时,如何使用凭据配置ejb安全性吗?在更改jndi.properties之后使用jnp上下文之前,我已通过更改jndi.proerties来完成此操作:-props=new properties();put(Context.INITIAL\u Context\u工厂,“org.jboss.naming.remote.client.InitialContextFactory”);props.put(Context.PROVIDER\u URL,“remote://localhost:4447"); put(“jboss.naming.client.ejb.context”,true);props.put(“jboss.naming.client.connect.options.org.xnio.options.SASL_POLICY_NOPLAINTEXT”,“false”);我没有遵循,这是否意味着您的问题已解决?有人能告诉我如何在ejb调用时使用凭据配置ejb安全性吗