我正在研究一个奇怪的问题,即JBoss 4.2.2服务器没有绑定到正确的AJP端口。我们已将其配置为绑定到8009,但它绑定到18129。
附加调试器后,我可以看到org.jboss.services.binding.XSLTFileDelegate
由于某种原因生成了一个带有此文件的临时文件。 XSLTFileDelegate
执行XSLT转换,其中包含以下变量声明:
<xsl:variable name="portAJP" select="$port - 71"/>
并将$port
的值设置为18200,因此绑定到18129。
我不明白为什么JBoss首先选择运行XSLTFileDelegate
。我们明确选择绑定到<server>\deploy\jboss-web.deployer\server.xml
中的8009。我们在同一目录树中还有其他JBoss实例,它们正确绑定到8019,8029等等。
是否有人能够了解正在发生的事情?
答案 0 :(得分:1)
听起来您的JBoss服务器已配置为使用与默认值不同的端口映射。有时这样做是为了允许多个JBoss实例在同一个IP地址上运行。
结帐conf/jboss-service.xml
,查找对ServiceBindingManager
的引用。它通常被注释掉,但是如果你看到它没有注释,那么寻找看起来像这样的属性:
<attribute name="ServerName">ports-01</attribute>
此ports-01
为每个网络服务指定一组“移位”端口,包括AJP。这些映射在$JBOSS_HOME/docs/examples/binding-manager/sample-bindings.xml
中定义。
如果您在ServiceBindingManager
中注释掉conf/jboss-service.xml
,则端口应恢复为默认值。