JBoss 4.2.3GA上的HTTP上的JNDI

时间:2010-02-20 08:28:22

标签: http jboss jndi

我在eapps.com上有一台远程服务器,我用它作为我的“生产”服务器。我家里有自己的电脑,我用它作为我的“开发”服务器。我正在尝试通过HTTP使用JNDI来进行一些批处理。以下是在家工作,但不适用于eapps机器。

我正在连接一些EJB(无状态会话),并将我的jndi.properties设置为:

(这是针对eapps机器的)

java.naming.factory.initial=org.jboss.naming.HttpNamingContextFactory
java.naming.provider.url=http://my.prodhost.com:8080/invoker/JNDIFactory
java.naming.factory.url.pkgs=org.jboss.naming.client:org.jnp.interfaces
# timeout is in milliseconds
jnp.timeout=15000
jnp.sotimeout=15000
jnp.maxRetries=3

(这是我家里的机器)

java.naming.factory.initial=org.jboss.naming.HttpNamingContextFactory
java.naming.provider.url=http://localhost:8080/invoker/JNDIFactory
java.naming.factory.url.pkgs=org.jnp.interfaces
java.naming.factory.url.pkgs=org.jboss.naming.client
# timeout is in milliseconds
jnp.timeout=15000
jnp.sotimeout=15000
jnp.maxRetries=3

正如我所说,它适用于家庭,但当我远程尝试时,我得到:

Can not get connection to server. Problem establishing socket connection for InvokerLocator [socket://my.prodhost.com:4446//?dataType=invocation&enableTcpNoDelay=true&marshaller=org.jboss.invocation.unified.marshall.InvocationMarshaller&socketTimeout=600000&unmarshaller=org.jboss.invocation.unified.marshall.InvocationUnMarshaller]
...
Caused by: java.net.ConnectException: Connection timed out: connect

我在这里做错了什么,还是可能是防火墙问题?据我所知,端口4446没有被阻止。

1 个答案:

答案 0 :(得分:1)

jndi.properties故意(java.naming.factory.url.pkgs属性级别)的差异是什么?

此外,您可以在两台计算机上运行netstat -a | grep 4446并使用输出更新问题吗?

更新:如果netstat命令没有为端口4446返回任何内容(JBoss正在运行,对吗?),那么Connector用于{Connector 3}}服务很可能无法监听您的eApps主机,因此连接超时。也许这项服务已被eApp禁用,您应该联系UnifiedInvoker并与他们讨论。

以防万一,可以在服务器节点的jboss-service.xml目录下的conf中找到示例netstat配置。也许将远程的(如果你有权访问它)与你的本地文件进行比较以确认这一点(但是如果它被禁用,必须有一个原因,与支持人员讨论)。

顺便说一句,这是我在JBoss 4.2.3.GA上运行$ netstat -a | grep 4446 tcp 0 0 localhost:4446 *:* LISTEN 命令时得到的结果。我的GNU / Linux机器启动了(默认配置):

{{1}}