我正在尝试在单个上运行2个tomcat实例。我已经更新了tomcat实例的server.xml,以便http / https端口不同。另外我在setenv.sh中更新了CATALINA_OPTS,以便远程jmx端口不同。
tomcat 1的CATALINA_OPTS:
CATALINA_OPTS="-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=7061 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-javaagent:/mnt/production/tomcat/bin/remoteagent.jar"
tomcat 2的CATALINA_OPTS:
CATALINA_OPTS="-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=7065 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-javaagent:/mnt/production/tomcat/bin/remoteagent.jar \
-Djava.security.auth.login.config=$CATALINA_HOME/conf/crowd.conf"
但是当我尝试启动tomcat的第二个实例时,我在端口3000上得到了一个绑定异常。我为tomcat的第一个实例添加了日志,我在catalina日志文件中看到以下行:
Created service URL service:jmx:rmi://localhost:3001/jndi/rmi://localhost:3000/jmxrmi
我在整个tomcat目录中使用了3000,但是没有关于端口3000的配置。所以我认为这是默认配置。有人知道如何修改此配置。
答案 0 :(得分:0)
server.xml用于设置tomcat服务器端口,例如http,https,shutdown,AJP等。但不适用于jmx remote。
似乎你有一个单独的环境文件setenv.sh
(unix)或setenv.bat
(windows)来设置JMX连接URL
Attribute Description Example
url Set JMX connection URL service:jmx:rmi:///jndi/rmi://localhost:8050/jmxrmi
请在第二个实例中找到并更新到其他端口。
这是关于jmx远程设置的tomcat 6的文档。 https://tomcat.apache.org/tomcat-6.0-doc/monitoring.html
如果仍然无法找到文件中的端口,请确认用于grep整个tomcat目录的命令
cd $TOMCAT_HOME
find . -type f -exec grep -l 3000 {} \;
答案 1 :(得分:0)
您可以在CATALINA_OPTS中设置-Dcom.sun.management.jmxremote.port =%my.jmx.port%,以便更改JMX端口。