Hi,

I change my wsdl file
<element name="fileattach" type="xsd:base64Binary" 
xmime:expectedContentTypes="application/octet-stream"/>
but i'm still getting same result except fileattach element is base64
encoded.

After checking release & bug reported
(http://issues.apache.org/activemq/browse/SMXCOMP-32)
seems that i need cxf-se & cxf-bc 2009-02 release ? 
Is fix included in 3.4.0.2 servicemix fuse release ?

Thanks





Freeman Fang wrote:
> 
> Hi,
> Your wsdl is the problem,
> you must change
> <xsd:element name="fileattach" type="xsd:string"/>
> to
> <element name="fileattach" type="xsd:base64Binary" 
> xmime:expectedContentTypes="application/octet-stream"/>
> and use wsdl2java regenerate the cxf client proxy 
> org.apache.servicemix.test.HelloOUT, which means you can use DataHandler 
> from org.apache.servicemix.test.HelloOUT
> You can get more details about how to use MTOM in cxf from [1]
> [1]http://cwiki.apache.org/CXF20DOC/mtom.html
> 
> Freeman
> 
> ppil1 wrote:
>> Hi,
>>
>> i downloaded latest fuse esb release and deployer my SA whith mtomEnabled
>> pn
>> cxfse:proxy, but i get the same issue: fileattach element not send as
>> attachement but send as soapbody element.
>> I don't known if my issue is related to mtom or because my fileattach
>> element is defined as a string element in WSDL provided to me. 
>> Here the whole WSDL :
>> <?xml version="1.0" encoding="UTF-8"?>
>>
>> <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
>>      xmlns:tns="http://servicemix.apache.org/test_out"; 
>>      xmlns:typens="http://servicemix.apache.org/test_out/types";
>>      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
>>      xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/";
>>      xmlns:xmime="http://www.w3.org/2005/05/xmlmime";
>>      xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
>>      name="HelloOUT" 
>>      targetNamespace="http://servicemix.apache.org/test_out";>
>>
>> <wsdl:types>
>>              <xsd:schema
>> targetNamespace="http://servicemix.apache.org/test_out/types";
>>                          elementFormDefault="qualified">
>>                      <xsd:element name="SayHelloOUT">
>>                        <xsd:complexType>
>>                                      <xsd:sequence>
>>                                              <xsd:element name="name" 
>> type="xsd:string"/>
>>                                              <xsd:element name="fileattach" 
>> type="xsd:string"/>
>>                                      </xsd:sequence>
>>                              </xsd:complexType>
>>                      </xsd:element>
>>                      <xsd:element name="SayHelloOUTResponse">
>>                        <xsd:complexType>
>>                                      <xsd:sequence>
>>                                              <xsd:element name="name" 
>> type="xsd:string"/>
>>                                      </xsd:sequence>
>>                              </xsd:complexType>
>>                      </xsd:element>
>>                      <xsd:element name="UnknownWordFault">
>>                        <xsd:complexType>
>>                                      <xsd:sequence>
>>                                          <xsd:element name="word" 
>> type="xsd:string"/>
>>                                      </xsd:sequence>
>>                              </xsd:complexType>
>>                      </xsd:element>
>>              </xsd:schema>
>>   </wsdl:types>
>>
>>      <wsdl:message name="SayHelloOUTRequest">
>>              <wsdl:part name="request" element="typens:SayHelloOUT"/>
>>              <wsdl:part name="fileattach" type="xsd:string"/>
>>
>>      </wsdl:message>
>>      <wsdl:message name="SayHelloOUTResponse">
>>              <wsdl:part name="payload" element="typens:SayHelloOUTResponse"/>
>>      </wsdl:message>
>>      <wsdl:message name="UnknownWordFault">
>>              <wsdl:part name="payload" element="typens:UnknownWordFault"/>
>>      </wsdl:message>
>>
>>     <wsdl:portType name="HelloOUT">
>>              <wsdl:operation name="SayHelloOUT">
>>                      <wsdl:input message="tns:SayHelloOUTRequest"/>
>>                      <wsdl:output message="tns:SayHelloOUTResponse"/>
>>                      <wsdl:fault name="UnknownWord" 
>> message="tns:UnknownWordFault"/>
>>              </wsdl:operation>
>>      </wsdl:portType>
>>
>>  <wsdl:binding name="HelloOUTSOAPBinding" type="tns:HelloOUT">
>>      <soap:binding style="document"
>> transport="http://schemas.xmlsoap.org/soap/http"; />
>>              <wsdl:operation name="SayHelloOUT">
>>                      <wsdl:input>
>>                              <mime:multipartRelated>
>>                                      <mime:part>
>>                                              <soap:body parts="request" 
>> use="literal" />
>>                              </mime:part>
>>                              <mime:part>
>>                                                      <mime:content 
>> part="fileattach" type="text/xml"/>
>>                              </mime:part>
>>                              </mime:multipartRelated>
>>
>>                      </wsdl:input>
>>                      <wsdl:output>
>>                              <soap:body use="literal" />
>>                      </wsdl:output>
>>                      <wsdl:fault name="UnknownWord">
>>                              <soap:fault use="literal" name="UnknownWord" />
>>                      </wsdl:fault>
>>        </wsdl:operation>
>> </wsdl:binding>
>>
>> <wsdl:service name="HelloOUTService">
>>      <wsdl:port binding="tns:HelloOUTSOAPBinding" name="soap">
>>            <soap:address
>> location="http://localhost:8080/HelloOUTService/";
>> />
>>        </wsdl:port>
>> </wsdl:service>
>> </wsdl:definitions>
>>
>>
>>
>>
>>
>> Freeman Fang wrote:
>>   
>>> Hi,
>>> You need also add mtomEnabled="true" to your cxfse:proxy.
>>> This is a new added feature so there is no apache servicemix release 
>>> including it, try play with the latest FUSE ESB(FUSE ESB is based on 
>>> apache servicemix and get released more frequently) from [1]
>>> [1]http://repo.open.iona.com/maven2/org/apache/servicemix/apache-servicemix/3.3.1.17-fuse/
>>> Freeman
>>>
>>> ppil1 wrote:
>>>     
>>>> Hi on both endpoint i 've set mtomEnabled=true but issue is still the
>>>> same.
>>>> Only the proxied webservice is a multipart WS.
>>>> CxfSe component seems to send a wrong jbi message to cxf bc proxied
>>>> endpoint.
>>>> Instead of sending a jbi attachement for my fileattach element,
>>>> coponent
>>>> is
>>>> sending element in jbi body message.
>>>>
>>>> Thanks for help.
>>>>
>>>> Here my configuration
>>>>
>>>> ...
>>>> <cxfbc:provider mtomEnabled="true"  wsdl="classpath:service.wsdl"
>>>>                       locationURI="http://localhost:8080/test";
>>>>                       service="test:HelloOUTService"
>>>>                       endpoint="soap"
>>>>                            />
>>>>
>>>> .....
>>>> <cxfse:endpoint mtomEnabled="true"  >
>>>>         <cxfse:pojo>
>>>>           <bean class="org.apache.servicemix.test.HelloIn" >
>>>>            <property name="myHelloOUT">
>>>>                    <cxfse:proxy  service="test:HelloOUTService"
>>>> endpoint="soap"
>>>> context="#context" type="org.apache.servicemix.test.HelloOUT" />
>>>>                    </property>
>>>>           </bean>
>>>> ...
>>>>
>>>> Helloout WSDL
>>>>  <wsdl:binding name="HelloOUTSOAPBinding" type="tns:HelloOUT">
>>>>            <soap:binding style="document"
>>>> transport="http://schemas.xmlsoap.org/soap/http"; />
>>>>            <wsdl:operation name="SayHelloOUT">
>>>>                    <wsdl:input>
>>>>                            <mime:multipartRelated>
>>>>                                            <mime:part>
>>>>                                            <soap:body parts="request" 
>>>> use="literal" />
>>>>                            </mime:part>
>>>>                            <mime:part>
>>>>                                                    <mime:content 
>>>> part="fileattach" type="text/xml"/>
>>>>                                    </mime:part>
>>>>                            </mime:multipartRelated>
>>>>
>>>>                    </wsdl:input>
>>>>                    <wsdl:output>
>>>>                            <soap:body use="literal" />
>>>>                    </wsdl:output>
>>>>                    <wsdl:fault name="UnknownWord">
>>>>                            <soap:fault use="literal" name="UnknownWord" />
>>>>                    </wsdl:fault>
>>>>        </wsdl:operation>
>>>> </wsdl:binding>
>>>>
>>>> <wsdl:service name="HelloOUTService">
>>>>    <wsdl:port binding="tns:HelloOUTSOAPBinding" name="soap">
>>>>            <soap:address
>>>> location="http://localhost:8080/HelloOUTService/";
>>>> />
>>>>        </wsdl:port>
>>>> </wsdl:service>
>>>>   
>>>>       
>>> -- 
>>> Freeman Fang
>>> ------------------------
>>> Open Source SOA: http://fusesource.com
>>>
>>>
>>>
>>>     
>>
>>   
> 
> 
> -- 
> Freeman Fang
> ------------------------
> Open Source SOA: http://fusesource.com
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Issue-Ussing-Service-Mix-CXF-component-with-multipart-WSDL-tp23428472p23505527.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to