本人通过jdk1.6 来验证weblogic 8.1 下的jmx操作老是报错,请高手帮忙是不兼容导致的?
package weblogic;
import java.util.*;
import javax.management.*;
import weblogic.management.*;
import weblogic.management.configuration.*;
import weblogic.management.runtime.ServerRuntimeMBean;
import weblogic.management.runtime.JDBCConnectionPoolRuntimeMBean;
public class TestJMX_MBean {
public MBeanHome localHome;
public MBeanHome adminHome;
public static String SERVER_NAME="myserver";

public void find()
{
String url="t3://130.30.15.44:8080";

localHome = (MBeanHome)Helper.getMBeanHome("weblogic","weblogic",url,SERVER_NAME);
adminHome = (MBeanHome)Helper.getAdminMBeanHome("weblogic","weblogic",url);
System.out.println("Local and Admin Homes found using the Helper class");

}
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
TestJMX test=new TestJMX();
test.find();
Set allMBeans=test.localHome.getAllMBeans();
System.out.println("Size: "+allMBeans.size());
for(Iterator itr=allMBeans.iterator();itr.hasNext();)
{ WebLogicMBean mbean = (WebLogicMBean)itr.next();
WebLogicObjectName objectName=mbean.getObjectName();
System.out.println(objectName.getName()+" is a "+mbean.getType());
}

Set all2MBeans=test.adminHome.getAllMBeans();
System.out.println("Size: "+all2MBeans.size());
for (Iterator itr = all2MBeans.iterator(); itr.hasNext(); ) {
WebLogicMBean mbean = (WebLogicMBean)itr.next();
WebLogicObjectName objectName = mbean.getObjectName();
System.out.println(objectName.getName() +" is a "+mbean.getType());
}
}

}
<2008-5-8 上午11时01分13秒 CST> <Error> <RJVM> <BEA-000503> <Incoming message header or abbreviation processing failed
java.io.InvalidClassException: javax.management.ObjectName; local class incompatible: stream classdesc serialVersionUID = -5467795090068647408, local class serialVersionUID = 1081892073854801359
java.io.InvalidClassException: javax.management.ObjectName; local class incompatible: stream classdesc serialVersionUID = -5467795090068647408, local class serialVersionUID = 1081892073854801359
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1316)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at weblogic.rjvm.ClassTableEntry.readExternal(ClassTableEntry.java:33)
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at weblogic.rjvm.InboundMsgAbbrev.readObject(InboundMsgAbbrev.java:65)
at weblogic.rjvm.InboundMsgAbbrev.read(InboundMsgAbbrev.java:37)
at weblogic.rjvm.MsgAbbrevJVMConnection.readMsgAbbrevs(MsgAbbrevJVMConnection.java:212)
at weblogic.rjvm.MsgAbbrevInputStream.readMessageContext(MsgAbbrevInputStream.java:237)
at weblogic.rjvm.ConnectionManager.dispatch(ConnectionManager.java:744)
at weblogic.rjvm.t3.T3JVMConnection.dispatch(T3JVMConnection.java:782)
at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:705)
at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:641)
at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:282)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
>
Exception in thread "main" weblogic.rjvm.PeerGoneException: ; nested exception is:
java.rmi.UnmarshalException: Incoming message header or abbreviation processing failed ; nested exception is:
java.io.InvalidClassException: javax.management.ObjectName; local class incompatible: stream classdesc serialVersionUID = -5467795090068647408, local class serialVersionUID = 1081892073854801359
at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:164)
at weblogic.management.internal.AdminMBeanHomeImpl_815_WLStub.getMBeansByType(Unknown Source)
at weblogic.TestJMX.find(TestJMX.java:26)
at weblogic.TestJMX_MBean.main(TestJMX_MBean.java:28)
Caused by: java.rmi.UnmarshalException: Incoming message header or abbreviation processing failed ; nested exception is:
java.io.InvalidClassException: javax.management.ObjectName; local class incompatible: stream classdesc serialVersionUID = -5467795090068647408, local class serialVersionUID = 1081892073854801359
at weblogic.rjvm.ConnectionManager.dispatch(ConnectionManager.java:765)
at weblogic.rjvm.t3.T3JVMConnection.dispatch(T3JVMConnection.java:782)
at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:705)
at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:641)
at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:282)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
Caused by: java.io.InvalidClassException: javax.management.ObjectName; local class incompatible: stream classdesc serialVersionUID = -5467795090068647408, local class serialVersionUID = 1081892073854801359
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1316)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at weblogic.rjvm.ClassTableEntry.readExternal(ClassTableEntry.java:33)
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at weblogic.rjvm.InboundMsgAbbrev.readObject(InboundMsgAbbrev.java:65)
at weblogic.rjvm.InboundMsgAbbrev.read(InboundMsgAbbrev.java:37)
at weblogic.rjvm.MsgAbbrevJVMConnection.readMsgAbbrevs(MsgAbbrevJVMConnection.java:212)
at weblogic.rjvm.MsgAbbrevInputStream.readMessageContext(MsgAbbrevInputStream.java:237)
at weblogic.rjvm.ConnectionManager.dispatch(ConnectionManager.java:744)
... 7 more
--------------- nested within: ------------------
weblogic.rmi.extensions.RemoteRuntimeException: Unexpected Exception - with nested exception:
[weblogic.rjvm.PeerGoneException: ; nested exception is:
java.rmi.UnmarshalException: Incoming message header or abbreviation processing failed ; nested exception is:
java.io.InvalidClassException: javax.management.ObjectName; local class incompatible: stream classdesc serialVersionUID = -5467795090068647408, local class serialVersionUID = 1081892073854801359]
at weblogic.management.internal.AdminMBeanHomeImpl_815_WLStub.getMBeansByType(Unknown Source)
at weblogic.TestJMX.find(TestJMX.java:26)
at weblogic.TestJMX_MBean.main(TestJMX_MBean.java:28)
评论
konglq 2008-05-14
源码如下:

package JMX;

import java.util.*;
import javax.management.*;
import weblogic.management.*;
import weblogic.management.configuration.JDBCTxDataSourceMBean;
import weblogic.management.configuration.ServerMBean;



public class testtt {

public MBeanHome localHome;

public MBeanHome adminHome;
public Stack stack;

public static String SERVER_NAME = "myserver";

public Stack find() {

stack = new Stack();

String url = "t3://127.0.0.1:7001";

try {

//localHome = (MBeanHome) Helper.getMBeanHome("admin", "admin12345",
// url, SERVER_NAME);

adminHome = (MBeanHome) Helper.getAdminMBeanHome("admin","admin12345", url);

//adminHome=Helper.getAdminMBeanHome("admin", "admin12345", url);

System.out.println(adminHome.getDomainName());


System.out.println("test1");
Set serverset =adminHome.getMBeansByType("JVMRuntime");
System.out.println(serverset.size());
Iterator it1 = serverset.iterator();
while (it1.hasNext()) {
ServerMBean dm1 = (ServerMBean) it1.next();
//System.out.println("%%%%%%%%%%%" + dm1.getAutoJDBCConnectionClose());
System.out.println("服务名称:=="+dm1.getName());

//stack.add(dm1.getJNDIName());
}


//System.out.println(domainname);

//adminHome.getMBeansByType(arg0);
//System.out.println();
//adminHome.getAllMBeans();

//
// Set set1 = adminHome.getMBeansByType("JMSServerMBean");
// Set set2 = adminHome.getMBeansByType("JDBCDataSource");
//
// Iterator it1 = set1.iterator();
//
// System.out.println(set1.size());
// System.out.println(set2.size());
//
//
// while (it1.hasNext()) {
// JDBCTxDataSourceMBean dm1 = (JDBCTxDataSourceMBean) it1.next();
// System.out.println("%%%%%%%%%%%" + dm1.getJNDIName());
// stack.add(dm1.getJNDIName());
// }
// Iterator it2 = set2.iterator();
//
// while (it2.hasNext()) {
// JDBCDataSourceMBean dm2 = (JDBCDataSourceMBean) it2.next();
// System.out.println("%%%%%%%%%%%" + dm2.getJNDIName());
// stack.add(dm2.getJNDIName());
// }

} catch (IllegalArgumentException iae) {

System.out.println("Illegal Argument Exception: " + iae);

}
return stack;

}

public static void main(String[] args) {
System.out.println("测试连接开始!!!");
testtt testt = new testtt();
testt.find();
}

}
konglq 2008-05-14
我也遇到同样的问题,
时候可以帮我解决

test1
Exception in thread "main" weblogic.rjvm.PeerGoneException: ; nested exception is:
java.rmi.UnmarshalException: Incoming message header or abbreviation processing failed ; nested exception is:
java.io.InvalidClassException: javax.management.ObjectName; local class incompatible: stream classdesc serialVersionUID = -5467795090068647408, local class serialVersionUID = 1081892073854801359
at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:164)<2008-5-14 下午05时07分49秒 CST> <Error> <RJVM> <BEA-000503> <Incoming message header or abbreviation processing failed
java.io.InvalidClassException: javax.management.ObjectName; local class incompatible: stream classdesc serialVersionUID = -5467795090068647408, local class serialVersionUID = 1081892073854801359
java.io.InvalidClassException: javax.management.ObjectName; local class incompatible: stream classdesc serialVersionUID = -5467795090068647408, local class serialVersionUID = 1081892073854801359
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:519)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1546)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1460)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1286)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
at weblogic.rjvm.ClassTableEntry.readExternal(ClassTableEntry.java:33)
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1711)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
at weblogic.rjvm.InboundMsgAbbrev.readObject(InboundMsgAbbrev.java:65)
at weblogic.rjvm.InboundMsgAbbrev.read(InboundMsgAbbrev.java:37)
at weblogic.rjvm.MsgAbbrevJVMConnection.readMsgAbbrevs(MsgAbbrevJVMConnection.java:212)
at weblogic.rjvm.MsgAbbrevInputStream.readMessageContext(MsgAbbrevInputStream.java:237)
at weblogic.rjvm.ConnectionManager.dispatch(ConnectionManager.java:744)
at weblogic.rjvm.t3.T3JVMConnection.dispatch(T3JVMConnection.java:782)
at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:705)
at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:641)
at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:282)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
>

at weblogic.management.internal.AdminMBeanHomeImpl_815_WLStub.getMBeansByType(Unknown Source)
at JMX.testtt.find(testtt.java:39)
at JMX.testtt.main(testtt.java:92)
Caused by: java.rmi.UnmarshalException: Incoming message header or abbreviation processing failed ; nested exception is:
java.io.InvalidClassException: javax.management.ObjectName; local class incompatible: stream classdesc serialVersionUID = -5467795090068647408, local class serialVersionUID = 1081892073854801359
at weblogic.rjvm.ConnectionManager.dispatch(ConnectionManager.java:765)
at weblogic.rjvm.t3.T3JVMConnection.dispatch(T3JVMConnection.java:782)
at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:705)
at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:641)
at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:282)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
Caused by: java.io.InvalidClassException: javax.management.ObjectName; local class incompatible: stream classdesc serialVersionUID = -5467795090068647408, local class serialVersionUID = 1081892073854801359
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:519)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1546)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1460)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1286)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
at weblogic.rjvm.ClassTableEntry.readExternal(ClassTableEntry.java:33)
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1711)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
at weblogic.rjvm.InboundMsgAbbrev.readObject(InboundMsgAbbrev.java:65)
at weblogic.rjvm.InboundMsgAbbrev.read(InboundMsgAbbrev.java:37)
at weblogic.rjvm.MsgAbbrevJVMConnection.readMsgAbbrevs(MsgAbbrevJVMConnection.java:212)
at weblogic.rjvm.MsgAbbrevInputStream.readMessageContext(MsgAbbrevInputStream.java:237)
at weblogic.rjvm.ConnectionManager.dispatch(ConnectionManager.java:744)
... 7 more
--------------- nested within: ------------------
weblogic.rmi.extensions.RemoteRuntimeException: Unexpected Exception - with nested exception:
[weblogic.rjvm.PeerGoneException: ; nested exception is:
java.rmi.UnmarshalException: Incoming message header or abbreviation processing failed ; nested exception is:
java.io.InvalidClassException: javax.management.ObjectName; local class incompatible: stream classdesc serialVersionUID = -5467795090068647408, local class serialVersionUID = 1081892073854801359]
at weblogic.management.internal.AdminMBeanHomeImpl_815_WLStub.getMBeansByType(Unknown Source)
at JMX.testtt.find(testtt.java:39)
at JMX.testtt.main(testtt.java:92)
beyondsanli 2008-05-08
是因为你用1.4.2的Java启动程序,然后与JDK 1.5.0的Jconsole去连接导致的错,建议用MC4J去连接进行控制就行了 我感觉应该是JDK什么不兼容导致的,但是我应该怎么解决?
发表评论

您还没有登录,请登录后发表评论

beyondsanli
搜索本博客
我的相册
Ed2ef40c-0044-376b-ae87-96fbb4175e76-thumb
未命名2
共 17 张
存档
最新评论