[英]Can't connect jconsole to remote server, tomcat failing to start
嘗試將jconsole連接到遠程服務器。
我把它添加到我的catalina.sh:
export JAVA_OPTS="-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9005 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Djava.rmi.server.hostname=xx.xx.xx.xx"
catalina.out顯示:
Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: myhostname: myhostname
不確定為什么它會在錯誤消息中重復我的主機名?
順便說一句,因為我將身份驗證設置為false,在jconsole應用程序中,我是否將用戶名/密碼留空或是用於登錄服務器?
您必須在/etc/hosts
文件中添加與/etc/sysconfig/network
文件中定義的相同的主機名。 這就是我解決問題的方法。
我找到了解決這個問題的方法。 在catalina.sh
文件中添加以下內容:
JAVA_OPTS =“$ JAVA_OPTS -Dcom.sun.management.jmxremote = true -Dcom.sun.management.jmxremote.ssl = false -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote.port = 7010 -Djava.rmi.server.hostname = $ {IP}“
還要在/etc/init.d/hosts
文件中添加以下行:
127.0.0.1 localhost <your_hostname>
這解決了這個問題。 我現在可以在這個端口上運行jconsole
和jvisualvm
。
我希望這有幫助 !
如果您想動態獲取IP地址,可以嘗試:
IP=`ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'`
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=${IP}"
如果在“export”語句中使用“\\”,請刪除它們。
要連接到遠程java進程,請使用運行java進程(tomcat實例)的服務器的IP地址。 無法確定IP地址時拋出UnknownHostException,因此另一個選項是將名稱 - IP地址定義添加到hosts文件中。
您可以嘗試將在JAVA_OPTS中添加的參數添加到CATALINA_OPTS。 它應該這樣工作。
還要確保使用與運行tomcat的位置相同的配置文件登錄進行設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.