[ https://issues.apache.org/jira/browse/AXIS2-3384?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12629171#action_12629171 ]
Martin Hierhager commented on AXIS2-3384: ----------------------------------------- I have the same problem. I use Axis2 in the version 1.4.1 on the client side. The web-service on the server side runs under CXF 2.1.1. All known bugs with Axis2-interoperability in CXF (CXF-606 and CXF-596) seem to be fixed. I did some hotfix: in the class org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder I changed the following method: public DataHandler getDataHandler(String blobContentID) throws OMException { // change beginns String strEncoded = ""; try { strEncoded = URLEncoder.encode(blobContentID, "UTF-8"); strEncoded = strEncoded.replaceAll("%40", "@"); } catch (UnsupportedEncodingException oEx) { oEx.printStackTrace(); } DataHandler dataHandler = attachments.getDataHandler(strEncoded); // DataHandler dataHandler = attachments.getDataHandler(blobContentID); // change ends if (dataHandler == null) { throw new OMException( "Referenced Attachment not found in the MIME Message. ContentID:" + blobContentID); } return dataHandler; } Then it works. I'm not sure, if this is a good workaround... Maybe you can tell me, how a "stripped down test" for you should look like? A fix for this problem would be great. Thanks, Martin > CXF and Axis2 interop: MTOM > --------------------------- > > Key: AXIS2-3384 > URL: https://issues.apache.org/jira/browse/AXIS2-3384 > Project: Axis 2.0 (Axis2) > Issue Type: Bug > Affects Versions: 1.3 > Environment: Windows XP, JBoss, Sun JDK 1.5.0.12 > Reporter: Mike Barlotta > > I am working on getting an Axis2 1.3 MTOM client to work with a Java service > written using CXF 2.0.3. > I have been trying to get an Axis2 client to receive an MTOM response back > from my service, having been able to successfully send an MTOM value in the > request. > Axis2 gives me this error on the SOAP response: > org.apache.axiom.om.OMException: org.apache.axiom.om.OMException: Referenced > Attachment not found in the MIME Message. ContentID:[EMAIL > PROTECTED]://cxf.apache.org/ > at org.apache.axiom.om.impl.llom.OMTextImpl.getText(OMTextImpl.java:228) > at org.apache.axiom.om.impl.llom.OMTextImpl.writeOutput(OMTextImpl.java:212) > at > org.apache.axiom.om.impl.llom.OMTextImpl.internalSerializeLocal(OMTextImpl.java:390) > at > org.apache.axiom.om.impl.llom.OMTextImpl.internalSerialize(OMTextImpl.java:200) > at > org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:772) > at > org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:756) > at > org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:772) > at > org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:756) > at > org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:772) > at > org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:756) > at org.apache.axiom.om.impl.llom.OMNodeImpl.serialize(OMNodeImpl.java:345) > at > org.apache.axiom.om.impl.llom.OMElementImpl.toString(OMElementImpl.java:913) > at java.lang.String.valueOf(String.java:2615) > at java.lang.StringBuilder.append(StringBuilder.java:116) > at > com.bah.hello.HeyWorld_Axis2_Client.test_WS_HeyWorld(HeyWorld_Axis2_Client.java:69) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at junit.framework.TestCase.runTest(TestCase.java:164) > at junit.framework.TestCase.runBare(TestCase.java:130) > at junit.framework.TestResult$1.protect(TestResult.java:106) > at junit.framework.TestResult.runProtected(TestResult.java:124) > at junit.framework.TestResult.run(TestResult.java:109) > at junit.framework.TestCase.run(TestCase.java:120) > at junit.framework.TestSuite.runTest(TestSuite.java:230) > at junit.framework.TestSuite.run(TestSuite.java:225) > at > org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) > 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: org.apache.axiom.om.OMException: Referenced Attachment not found > in the MIME Message. ContentID:[EMAIL PROTECTED]://cxf.apache.org/ > at > org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder.getDataHandler(MTOMStAXSOAPModelBuilder.java:106) > at > org.apache.axiom.om.impl.llom.OMTextImpl.getDataHandler(OMTextImpl.java:324) > at > org.apache.axiom.om.impl.llom.OMTextImpl.getInputStream(OMTextImpl.java:338) > at org.apache.axiom.om.impl.llom.OMTextImpl.getText(OMTextImpl.java:226) > ... 32 more > This issue I am having also seems related to the error experienced with this > posting and issue (which appear to be fixed on CXF side): > http://www.nabble.com/URL-Encoded-ContentIDs-cause-interop-problems-with-Axis2-tf3639780.html#a10164676 > http://issues.apache.org/jira/browse/CXF-596 > Using TCPMON here is the partial SOAP response from CXF: > <soap:Envelope > xmlns:soap="http://www.w3.org/2003/05/soap-envelope"><soap:Body><ns1:sayHeyResponse > xmlns:ns1="http://hello.bah.com/"><return><name>Hey Axis2 > Client</name><binaryData><xop:Include > xmlns:xop="http://www.w3.org/2004/08/xop/include" > href="cid:b11231ac-cfd1-434f-8f87-29bbcbb2c71c@http%3A%2F%2Fcxf.apache.org%2F"/> > </binaryData></return></ns1:sayHeyResponse></soap:Body></soap:Envelope> > ------=_Part_0_2698425.1196702522207 > Content-Type: content/type > Content-Transfer-Encoding: binary > Content-ID: <[EMAIL PROTECTED]> > At first I thought the problem might be related to the "<" and ">" > surrounding the content id value but it seems that Axis2 also handles the > content id in this manner in the request. I also noticed that the content-id > in the SOAP response header sent by CXF has the forward slashes encoded, but > the content-id as reported by Axis2 in the Exception is not. > Axis2: [EMAIL PROTECTED]://cxf.apache.org/ > CXF: <[EMAIL PROTECTED]> > It looks like Axis2 is searching incorrectly for the Content-ID value since > an exact String match would not occur due to the encoding, and after > examining the source in a debugger found that may be the case: > org.apache.axiom.attachments.Attachments class in the getDataHandler (line > 270) > if (attachmentsMap.containsKey(blobContentID)) { (line 272) > blobContentId had the following value: > [EMAIL PROTECTED]://cxf.apache.org/ > attachmentsMap has the following value: > [EMAIL PROTECTED]@1d709a5, [EMAIL PROTECTED]@14b84c7] > Thanks, > Mike -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]