Hi,
Thanks for a great program. When I try to use the mxdump
feature, I run into this (see the error message at the bottom)
$ java -jar ./scripts/sjk-plus-0.11.jar mxdump -s some-server:30648
{
"beans" : [ {
// (...a lot of data redacted)
"name" : "Catalina:type=WebResourceRoot,host=localhost,context=/myapp",
"modelerType" : "org.apache.tomcat.util.modeler.BaseModelMBean",
"cachingAllowed" : true,
"stateName" : "STARTED",
"trackedResources" : "[]",
"trackLockedFiles" : false,
"allowLinking" : true
}, {
"name" : "Catalina:type=SSLHostConfig,ThreadPool=\"https-openssl-nio-8443\",name=\"_default_\"",
"modelerType" : "org.apache.tomcat.util.modeler.BaseModelMBean",
"certificateChainFile" : null,
"hostName" : "_default_",
"enabledProtocols" : [ "TLSv1", "TLSv1.2", "SSLv2Hello", "TLSv1.1" ],
"disableCompression" : true,
"truststoreType" : "JKS",
"certificateRevocationListPath" : null,
"caCertificatePath" : null,
"configType" : "EITHER",
"keyManagerAlgorithm" : "SunX509",
"truststorePassword" : null,
"certificateKeyAlias" : null,
"certificateKeystoreType" : "JKS",
"trustManagerClassName" : null,
"honorCipherOrder" : null,
"ciphers" : "HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!kRSA",
"disableSessionTickets" : false,
"certificateVerificationDepthConfigured" : false,
"truststoreAlgorithm" : "PKIX",
"certificateRevocationListFile" : null,
"enabledCiphers" : [ "TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8", "TLS_ECDHE_ECDSA_WITH_AES_256_CCM", "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384", "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384", "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", "TLS_PSK_DHE_WITH_AES_256_CCM_8", "TLS_DHE_PSK_WITH_AES_256_CCM", "TLS_DHE_RSA_WITH_AES_256_CCM_8", "TLS_DHE_RSA_WITH_AES_256_CCM", "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384", "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA", "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA", "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA", "TLS_SRP_SHA_WITH_AES_256_CBC_SHA", "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384", "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384", "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384", "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384", "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384", "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384", "TLS_RSA_PSK_WITH_AES_256_CBC_SHA", "TLS_DHE_PSK_WITH_AES_256_CBC_SHA", "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256", "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256", "TLS_DHE_RSA_WITH_AES_256_CBC_SHA", "TLS_DHE_DSS_WITH_AES_256_CBC_SHA", "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", "TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384", "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384", "TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256", "TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256", "TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256", "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256", "TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384", "TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384", "TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384", "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256", "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256", "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA", "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA", "TLS_PSK_WITH_AES_256_CCM_8", "TLS_PSK_WITH_AES_256_CCM", "TLS_PSK_WITH_AES_256_CBC_SHA384", "TLS_PSK_WITH_AES_256_GCM_SHA384", "TLS_PSK_WITH_AES_256_CBC_SHA", "TLS_PSK_WITH_CHACHA20_POLY1305_SHA256", "TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384", "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8", "TLS_ECDHE_ECDSA_WITH_AES_128_CCM", "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", "TLS_PSK_DHE_WITH_AES_128_CCM_8", "TLS_DHE_PSK_WITH_AES_128_CCM", "TLS_DHE_RSA_WITH_AES_128_CCM_8", "TLS_DHE_RSA_WITH_AES_128_CCM", "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256", "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA", "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA", "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA", "TLS_SRP_SHA_WITH_AES_128_CBC_SHA", "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256", "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256", "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256", "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256", "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256", "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256", "TLS_RSA_PSK_WITH_AES_128_CBC_SHA", "TLS_DHE_PSK_WITH_AES_128_CBC_SHA", "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256", "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256", "TLS_DHE_RSA_WITH_AES_128_CBC_SHA", "TLS_DHE_DSS_WITH_AES_128_CBC_SHA", "TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256", "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256", "TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256", "TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256", "TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256", "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256", "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256", "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA", "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA", "TLS_PSK_WITH_AES_128_CCM_8", "TLS_PSK_WITH_AES_128_CCM", "TLS_PSK_WITH_AES_128_CBC_SHA256", "TLS_PSK_WITH_AES_128_GCM_SHA256", "TLS_PSK_WITH_AES_128_CBC_SHA", "TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256" ],
"caCertificateFile" : null,
"openSslConf" : null,
"insecureRenegotiation" : false,
"truststoreProvider" : null,
"certificateKeyFile" : null,
"certificateKeystoreFile" : "/var/lib/tomcat8/.keystore",
"revocationEnabled" : false,
"certificateKeystoreProvider" : null,
"sessionCacheSize" : 0,
"openSslConfContext" : 0,
"openSslContext" : 140587870744736,
"certificateKeystorePassword" : "<removed>",
"objectName" : "Catalina:type=SSLHostConfig,ThreadPool=\"https-openssl-nio-8443\",name=\"_default_\"",
"sslProtocol" : "TLS",
"sessionTimeout" : 86400,
"truststoreFile" : null,
"certificateFile" : null,
"certificateVerificationDepth" : 10,
"certificateKeyPassword" : null
}, {
"name" : java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.coyote.RequestGroupInfo
The process in question is a Tomcat 8 process running on Linux.
Maybe it would be better for SJK to ignore non-serializable objects like org.apache.coyote.RequestGroupInfo
? Perhaps logging a message about them if debugging is enabled or something.