java中的tom_java – 通过JMX访问在docker容器中运行的tom...

我想通过JMX获得tomcat的表现.

Tomcat版本为7,Java版本为1.7.0_79.

Tomcat在docker的容器上运行.

端口映射已通过以下设置.

docker run -itd -p 18080:8080 -p 19998:19998 -p 62911:62911 sad_jang2 bash

在tomcat容器中,在路径/ tomcat_home / bin /中创建了setevn.sh,其中包含以下内容.

export JAVA_OPTS="

-Xdebug -Xrunjdwp:transport=dt_socket,address=62911,server=y,suspend=n

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=19998

-Dcom.sun.management.jmxremote.authenticate=false

-Dcom.sun.management.jmxremote.ssl=false

-Djava.rmi.server.hostname=172.17.0.16"

我写了一个简单的java代码

JMXServiceURL serviceURL = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + "172.17.0.16"+ ":" + "19998" + "/jmxrmi");

JMXConnector connector = JMXConnectorFactory.connect(serviceURL, null);

MBeanServerConnection mbsc = connector.getMBeanServerConnection();

并且可以通过JMX获得相关值.

但是,我在我的桌面上使用docker主机的地址和19998端口运行此代码

JMXServiceURL serviceURL = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + "10.70.1.5"+ ":" + "19998" + "/jmxrmi");

控制台显示以下消息

java.rmi.ConnectException: Connection refused to host: 172.17.0.16; nested exception is:

java.net.ConnectException: Connection timed out: connect

at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)

at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)

at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)

at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:130)

at javax.management.remote.rmi.RMIServerImpl_Stub.newClient(Unknown Source)

at javax.management.remote.rmi.RMIConnector.getConnection(RMIConnector.java:2432)

at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:308)

at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:270)

at utility.GetStatistic.getTomcatStats(GetStatistic.java:84)

at exec.Main.main(Main.java:53)

Caused by: java.net.ConnectException: Connection timed out: connect

at java.net.DualStackPlainSocketImpl.connect0(Native Method)

at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)

at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)

at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)

at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)

at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)

at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)

at java.net.Socket.connect(Socket.java:589)

at java.net.Socket.connect(Socket.java:538)

at java.net.Socket.(Socket.java:434)

at java.net.Socket.(Socket.java:211)

at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40)

at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:148)

at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613)

... 9 more

使用浏览器连接URL http://10.70.1.5:18080可以显示tomcat根目录的页面.

谁能提出任何建议?谢谢.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值