我已经在 64 位 RHEL5 服务器上使用 JBoss 4.2.2 部署了一个应用程序。由于还有其他 JBoss 服务器,我不得不更改一些端口配置,以便在启动服务器时不会发生冲突。所以现在我使用的是 docs/examples/binding-manager/samples 目录中的 sample-bindings.xml 文件中的 ports-01。此外,下面是我为反映新端口而编辑的所有文件的列表:
- JBOSS_HOME/服务器/默认/部署/jboss-web.deployer/server.xml:
- 将连接器端口从 8080 更改为 8180
- 将 AJP 1.3 连接器端口 8009 更改为 8109
- JBOSS_HOME/服务器/默认/部署/jbossws.beans/META-INF/jboss-beans.xml
- 将 8080 更改为 8180
- JBOSS_HOME/服务器/默认/conf/jboss-service.xml:
- 将 8083 更改为 8183
- 将 1099 更改为 1299
- 将 1098 更改为 1298
- 已将 4444 更改为 4644
- 已将 4445 更改为 4645
- 已将 4446 更改为 4646
- 已将 4447 更改为 4647
- JBOSS_HOME/服务器/默认/conf/jboss-minimal.xml:
- 将 1099 更改为 1299
- 将 1098 更改为 1298
当我启动服务器(绑定到本地主机)时,一切正常,我可以访问应用程序。但是当我尝试关闭服务器时,出现以下错误:
线程“主”中的异常 javax.naming.CommunicationException:无法获取与以下任何 URL 的连接:localhost [Root 异常为 javax.naming.CommunicationException:无法连接到服务器 localhost:1099 [Root 异常为 javax.naming.ServiceUnavailableException:无法连接到服务器 localhost:1099 [Root 异常为 java.net.ConnectException:连接被拒绝]]] 在 org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1562) 在 org.jnp.interfaces.NamingContext.lookup(NamingContext.java:634) 在 org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627) 在 javax.naming.InitialContext.lookup(InitialContext.java:392) org.jboss.Shutdown.main(Shutdown.java:214) 原因:javax.naming.CommunicationException:无法连接到服务器 localhost:1099 [Root 异常为 javax.naming.ServiceUnavailableException:无法连接到服务器 localhost:1099 [Root 异常为 java.net.ConnectException:连接被拒绝]] 在 org.jnp.interfaces.NamingContext.getServer(NamingContext.java:274) 在 org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1533) ... 另外 4 个原因:javax.naming.ServiceUnavailableException:无法连接到服务器 localhost:1099 [Root 异常为 java.net.ConnectException:连接被拒绝] 在 org.jnp.interfaces.NamingContext.getServer(NamingContext.java:248) ... 另外 5 个原因: java.net.ConnectException:连接被拒绝,位于 java.net.PlainSocketImpl.socketConnect(Native Method),位于 java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333),位于 java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195),位于 java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182),位于 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366),位于 java.net.Socket.connect(Socket.java:525),位于 java.net.Socket.connect(Socket.java:475),位于 java.net.Socket.(Socket.java:372),位于 java.net.Socket.(Socket.java:273),位于 org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:84),位于org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:77) at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:244) ... 另外 5 个
是否还有其他文件需要我将 1099 更改为 1299,或者我是否遗漏了其他步骤?
答案1
Shutdown.sh 启动一个单独的 Java 程序,该程序向 jboss 服务器进程发送 JMX 请求。它不引用任何配置文件来发现新端口,它只是假设默认端口。(怎么可能?你没有将配置目录传递给它)
因此,要连接到在非默认端口上运行的 jboss 服务器,您需要像这样运行它:
shutdown.sh --server=YOURHOST:1299
此外,如果您实际使用的是 sample-binding.xml,即如果您取消注释jboss.system:service=ServiceBindingManager
jboss-service.xml 中的 mbean 并进行了适当的配置ServerName
,StoreURL
那么您就不需要对新端口进行任何其他配置更改。这就是绑定管理器的重点,即集中所有这些工作。