Hi,

I'm suddenly getting problems with the unmarshalling of by messages, after using MTOM to transfer binary data.

My Client looks like this:
[...]
clientStub._getServiceClient().getOptions().setProperty(Constants.Configuration.ENABLE_MTOM, Constants.VALUE_TRUE);

clientStub._getServiceClient().getOptions().setTimeOutInMilliSeconds(100000);
clientStub._getServiceClient().getOptions().setManageSession(true);
[...]
RetrieveDataRequest retrieveRequest = new RetrieveDataRequest();
retrieveRequest.setJobID(response.getJobID());
retrieveRequest.setOutPort(0);

RetrieveDataResponse retrieveResponse = clientStub.retrieveData(retrieveRequest); // <--- ERROR



Everything looks fine, except on the client side I get an error like this:

org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Unexpected subelement Include
        at org.apache.axis2.AxisFault.makeFault(AxisFault.java:417)
at org.knime.soda.services.client.ExecuteWorkflowStub.fromOM(ExecuteWorkflowStub.java:1318) at org.knime.soda.services.client.ExecuteWorkflowStub.retrieveData(ExecuteWorkflowStub.java:886) at org.knime.soda.server.test.services.ExecuteWorkflowAsyncTest.testProgressPolling(ExecuteWorkflowAsyncTest.java:78)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at junit.framework.TestCase.runTest(TestCase.java:168)
        at junit.framework.TestCase.runBare(TestCase.java:134)
at org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:69)
        at junit.framework.TestResult$1.protect(TestResult.java:110)
        at junit.framework.TestResult.runProtected(TestResult.java:128)
        at junit.framework.TestResult.run(TestResult.java:113)
        at junit.framework.TestCase.run(TestCase.java:124)
        at junit.framework.TestSuite.runTest(TestSuite.java:232)
        at junit.framework.TestSuite.run(TestSuite.java:227)
        at junit.framework.TestSuite.runTest(TestSuite.java:232)
        at junit.framework.TestSuite.run(TestSuite.java:227)
at org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:76) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) Caused by: java.lang.Exception: org.apache.axis2.databinding.ADBException: Unexpected subelement Include at org.knime.soda.services.TableContainer$Factory.parse(TableContainer.java:529) at org.knime.soda.services.RetrieveDataResponse$Factory.parse(RetrieveDataResponse.java:447) at org.knime.soda.services.client.ExecuteWorkflowStub.fromOM(ExecuteWorkflowStub.java:1295)
        ... 24 more
Caused by: org.apache.axis2.databinding.ADBException: Unexpected subelement Include at org.knime.soda.services.TableContainer$Factory.parse(TableContainer.java:525)
        ... 26 more




I suppose that the "Include" element mentioned is the xop:include that was sent with the response. The response looks like this:


 <?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:wsa="http://www.w3.org/2005/08/addressing";>
         <soapenv:Header>
            <wsa:ReplyTo>
<wsa:Address>http://www.w3.org/2005/08/addressing/none</wsa:Address>
               <wsa:ReferenceParameters>
<axis2:ServiceGroupId xmlns:axis2="http://ws.apache.org/namespaces/axis2";>urn:uuid:6BD67F48DCEE91861B1202692300817</axis2:ServiceGroupId>
               </wsa:ReferenceParameters>
            </wsa:ReplyTo>
<wsa:MessageID>urn:uuid:6BD67F48DCEE91861B1202692306472</wsa:MessageID>
            <wsa:Action>urn:retrieveDataResponse</wsa:Action>
<wsa:RelatesTo>urn:uuid:6BD67F48DCEE91861B1202692306419</wsa:RelatesTo>
         </soapenv:Header>
         <soapenv:Body>
<ns1:retrieveDataResponse xmlns:ns1="http://knime.org/soda/services";>
               <outData binary="true">
                  <binaryData>
<xop:Include href="cid:1.urn:uuid:[EMAIL PROTECTED]" xmlns:xop="http://www.w3.org/2004/08/xop/include"; />
                  </binaryData>
               </outData>
               <hasMoreData>false</hasMoreData>
            </ns1:retrieveDataResponse>
         </soapenv:Body>
</soapenv:Envelope>--MIMEBoundaryurn_uuid_6BD67F48DCEE91861B1202692306896Content-Type: application/octet-stream
[...]


One more strange thing: On the console I get the following:

Exception in thread "HttpConnection-8080-6" java.lang.IllegalStateException: Response already committed at org.apache.axis2.transport.http.server.AxisHttpResponseImpl.assertNotCommitted(AxisHttpResponseImpl.java:75) at org.apache.axis2.transport.http.server.AxisHttpResponseImpl.sendError(AxisHttpResponseImpl.java:110) at org.apache.axis2.transport.http.server.AxisHttpService.doService(AxisHttpService.java:291) at org.apache.axis2.transport.http.server.AxisHttpService.handleRequest(AxisHttpService.java:166) at org.apache.axis2.transport.http.server.HttpServiceProcessor.run(HttpServiceProcessor.java:85) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
        at java.lang.Thread.run(Unknown Source)


Not sure if this is the cause, or a subsequent error....




Thanks in advance for any hints on that.

kind regards,
  Florian


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to