2011-12-22 60 views
3

試圖將jconsole連接到遠程服務器。無法將jconsole連接到遠程服務器,tomcat無法啓動

我將此添加到我的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應用程序中,我將用戶名/密碼留空還是用於登錄到服務器?

+0

您是否使用屬性rmi.server.hostname作爲其他一些pupose(除了啓用JMX)? – Santosh 2011-12-22 06:12:27

+0

我正在使用它b/c我認爲你需要它來連接到遠程服務器。 – Blankman 2011-12-22 12:15:52

+0

Hi @Blankman, 如果您認爲我的答案已解決您的問題,請您接受我的答案?否則我很樂意爲您提供幫助,如果您需要任何進一步的幫助。 – 2013-11-28 17:28:19

回答

1
  1. 如果您在'export'語句中使用'\',請將其刪除。

  2. 要連接到遠程java進程,請使用運行java進程(tomcat實例)的服務器的IP地址。 UnknownHostException在IP地址無法確定時拋出,因此另一種選擇是將名稱 - IP地址定義添加到主機文件中。

2

如果你想要得到的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}" 
14

你必須在/etc/hosts文件添加爲您在/etc/sysconfig/network文件中定義相同的主機名。 這就是我解決我的問題的方法。

+1

爲我解決 – Andrejs 2012-12-19 11:50:01

0

您可以嘗試將您在JAVA_OPTS中添加的參數添加到CATALINA_OPTS。它應該這樣工作。
另外,請確保您正在使用與運行tomcat的位置相同的配置文件登錄進行設置。

3

我找到了解決此問題的解決方案。 添加在您的catalina.sh文件中的以下內容:

JAVA_OPTS =「$ JAVA_OPTS -Dcom.sun.management.jmxremote =真-Dcom.sun.management.jmxremote.ssl =假-Dcom.sun.management.jmxremote .authenticate =假-Dcom.sun.management.jmxremote.port = 7010 -Djava.rmi.server.hostname = $ {} IP」

還要添加下面的行放在/etc/init.d/hosts文件:

127.0.0.1 localhost <your_hostname> 

這解決了這個問題。我現在可以在此端口上運行jconsole以及jvisualvm
我希望這有助於!