I tried switching the protocol for my JSR-160 to the MX4J SOAP connector, but I get the following on my server side:
Code:
java.lang.IncompatibleClassChangeError: : method is not an interface method
The soap request that generated that error is:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<ns1:connectionId xmlns:ns1="http://mx4j.sourceforge.net/remote/soap/1.0" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="1" xsi:type="soapenc:string">soap: 0x1</ns1:connectionId>
</soapenv:Header>
<soapenv:Body>
<ns2:fetchNotifications xmlns:ns2="http://mx4j.sourceforge.net/remote/soap/1.0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<sequence href="#id0"/>
<maxNumber href="#id1"/>
<timeout href="#id2"/>
</ns2:fetchNotifications>
<multiRef xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" id="id2" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="xsd:long">60000</multiRef>
<multiRef xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="xsd:int">25</multiRef>
<multiRef xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="xsd:long">-1</multiRef>
</soapenv:Body>
</soapenv:Envelope>
And the response:
Code:
<html>
<head>
<title>Error 500 : method is not an interface method</title>
</head>
<body>
<h2>HTTP ERROR: 500</h2>
<pre>: method is not an interface method</pre>
<p>RequestURI=/services</p>
<p>
<i>
<small>
<a href="http://jetty.mortbay.org">Powered by Jetty://</a>
</small>
</i>
</p>
What I don't get is that I never call this fetchNotifications method, so I have no idea why its trying to call it. The method I am trying to execute is "processNotification". Not only am I not calling fetchNotifications, but dont even have it anywhere in my codebase. As far as I can tell, its comming from the actual JMX (MX4J) pieces.
My question is, why is the proxy trying to execute this anyway? Does it need to have all the notifications for something I am not aware of?