我想在JBoss 6.4.0 EAP中使用Java客戶端。我測試此代碼:java.net.MalformedURLException:不支持的協議:遠程處理-jmx
public void testConnection() throws Exception
{
System.out.println("Starting lookup ...");
ObjectName mBeanName = new ObjectName("java.lang:type=Runtime");
String attributeName = "StartTime";
String host = "104.233.103.41";
int port = 9999; // management-native port
String urlString = System.getProperty("jmx.service.url", "service:jmx:remoting-jmx://" + host + ":" + port);
JMXServiceURL serviceURL = new JMXServiceURL(urlString);
JMXConnector jmxConnector = JMXConnectorFactory.connect(serviceURL, null);
MBeanServerConnection connection = jmxConnector.getMBeanServerConnection();
Object attrVal = connection.getAttribute(mBeanName, attributeName);
System.out.println("Value via JMX: " + new Date((Long) attrVal));
}
我的項目是基於Maven的,所以我說這些依賴關係:
<dependencies>
<dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-ejb-client-bom</artifactId>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-jms-client-bom</artifactId>
<type>pom</type>
</dependency>
</dependencies>
但是當我運行的代碼,我得到這個錯誤:
java.net.MalformedURLException: Unsupported protocol: remoting-jmx
at javax.management.remote.JMXConnectorFactory.newJMXConnector(JMXConnectorFactory.java:359)
at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:269)
進入EAP -6.4.0/bin/client我發現這個描述:
jboss-client.jar是JBoss EAP 6的組合客戶端jar,用於在非Maven環境中使用。該jar應該僅用於獨立客戶端 ,而不是部署到JBoss EAP 6實例的部署。
此jar包含遠程JMS和EJB使用所需的類,它包含以下陰影文物:
org.jboss.spec.javax.jms:jboss-jms-api_1.1_spec
org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec
org.jboss.spec.javax.ejb:jboss-ejb-api_3.1_spec
org.jboss:jboss-ejb-client
org.jboss:jboss-remote-naming
org.jboss.logging:jboss-logging
org.jboss.marshalling:jboss-marshalling
org.jboss.marshalling:jboss-marshalling-river
org.jboss.remoting3:jboss-remoting
org.jboss.remoting3:remoting-jmx
org.jboss.sasl:jboss-sasl
org.jboss.xnio:xnio-api
org.jboss.xnio:xnio-nio
org.jboss.netty:netty
org.hornetq:hornetq-core-client
org.hornetq:hornetq-jms-client
Maven用戶不應該使用這個罐子,而應使用以下BOM的依賴關係,而不是
<dependencies>
<dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-ejb-client-bom</artifactId>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-jms-client-bom</artifactId>
<type>pom</type>
</dependency>
</dependencies>
這是因爲使用maven與陰影jar有導致類版本衝突的非常高的機會,這就是爲什麼 我們不會將此jar發佈到maven存儲庫。
但我再次遇到這個錯誤。你能提出一些解決方案嗎?
現在我得到'java.lang.AbstractMethodError:org.xnio.XnioWor ker.chooseThread()lorg/xnio/XnioIoThread;' –
它爲我工作,檢查你的依賴性排序。我已經發布了我上面的完整測試項目。 –
我得到'java.lang.RuntimeException:操作失敗,狀態爲WAITING \t at org.jboss.remoting3.jmx.RemotingConnector.connect(RemotingConnector.java:155)'你是否有同樣的問題? –