我有一个云实例,我已经安装了Jboss5.0.1GA服务器。服务器实例包含一个公共 IP 和一个 nat 地址。我已经使用带有IP(nat)地址的-b运行Jboss服务器,并且网址工作正常。现在我正在创建Java外部客户端来访问部署在Jboss服务器中的EJB3 bean,在那里我得到了例外,并使用谷歌尝试解决方案,这对我的情况没有帮助。找到下面的代码,它告诉我在外部客户端中使用什么来访问EJB3。
properties = new Properties();
properties.load(stream);
// Set the context
Hashtable ht = new Hashtable();
ht.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
ht.put(Context.PROVIDER_URL,"public ip address");
ht.put(Context.URL_PKG_PREFIXES,
"org.jboss.naming:org.jnp.interfaces");
// Find and create a reference to the bean using JNDI
context = new InitialContext(ht);
执行它时localhost它工作正常。当连接远程抛出下面的异常。“javax.naming.CommunicationException[根异常是java.rmi.ConnectException:连接拒绝主机:”。有人能帮我吗?
`这是我的连接器文件(ejb3连接器jboss-beans.xml)。
EJB3连接器
--
JBoss Remoting Connector
Note: Bean Name "org.jboss.ejb3.RemotingConnector" is used
as a lookup value; alter only after checking java references
to this key.
--
<property name="invokerLocator">
<value-factory bean="ServiceBindingManager"
method="getStringBinding">
<parameter>
jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3
</parameter>
<parameter>
<null />
</parameter>
<parameter>socket://${jboss.bind.address}:${port}</parameter>
<parameter>
<null />
</parameter>
<parameter>3873</parameter>
</value-factory>
</property>
<property name="serverConfiguration">
<inject bean="ServerConfiguration" />
</property>
AOP org.jboss.aspects.remoting.AOP远程调用处理程序
`
对我来说,下面2件事对我很有效。1.使用run.bat-b**public ip(不是nat ip)**-Djboss.bind.address=0.0.0.0运行Jboss服务器2.启用我的**local**机器主机文件,将远程ip指向主机名,即远程ip远程主机名。希望它也能对其他人有所帮助。
从远程服务器实例对尝试在 jboss 上连接的 IP 和端口执行远程登录。如果这不起作用,那么您必须首先解决网络问题。(让我知道,所以我可以指导你如何做)
还要检查 EJB3 绑定设置并检查网络。开箱即用的配置看起来是这样的.
<mbean code="org.jboss.remoting.transport.Connector"
xmbean-dd="org/jboss/remoting/transport/Connector.xml"
name="jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3">
<depends>jboss.aop:service=AspectDeployer</depends>
<attribute name="InvokerLocator">socket://0.0.0.0:3873</attribute>
<attribute name="Configuration">
<handlers>
<handler subsystem="AOP">org.jboss.aspects.remoting.AOPRemotingInvocationHandler</handler>
</handlers>
</attribute>
</mbean>
谢谢
@利奥。