我正在尝试查询在Tomcat WebApplication中运行的JMX MBeanServer。获取MBean的属性列表时,我看到以下错误
java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.catalina.core.StandardContext
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:191)
at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source)
at javax.management.remote.rmi.RMIConnectionImpl_Stub.getAttributes(Unknown Source)
at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.getAttributes(RMIConnector.java:927)
我在网络应用程序中做错了什么。我已经针对许多其他Java应用程序测试了我的JMX客户端,并且从未遇到过此错误。如果某人已经遇到此异常,将会有所帮助。
编辑:
发现错误
Bean: Catalina:name="ajp-bio-8009",type=ThreadPool
~~~~~
Attributes
.....
maxThreads:200
sSLEnabled:false
keystorePass:null
localPort:8009
connectionCount:1
currentThreadCount:0
keepAliveTimeout:-1
threadPriority:5
keyPass:null
useComet:false
soLinger:-1
sslEnabledProtocolsArray:[Ljava.lang.String;@3d1a70a7
socketProperties:java.rmi.UnmarshalException: error unmarshalling
...
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.tomcat.util.net.SocketProperties
答案 0 :(得分:2)
形成此链接:
http://docs.oracle.com/javase/7/docs/api/java/rmi/UnmarshalException.html
public class UnmarshalException
extends RemoteException
如果出现以下任何一种情况,可以在解组远程方法调用的参数或结果时抛出UnmarshalException:
答案 1 :(得分:2)
您的getAttributes()
方法返回的类型StandardContext
既不是Serializable
也不是导出的远程对象。因此,当服务器写入返回值时,它会产生NotSerializableException.
您似乎试图远程获取应用程序上下文或其属性?