axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nitesh kant (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AXIS2-953) Wsdl2Java throws a code generation exception if the input message has 2 parts. (Document-Literal Wrapped Dispatching)
Date Thu, 03 Aug 2006 13:55:14 GMT
    [ http://issues.apache.org/jira/browse/AXIS2-953?page=comments#action_12425520 ] 
            
Nitesh kant commented on AXIS2-953:
-----------------------------------

Okie, i found that if in the input/output messages, i use "type" instead of "element" i.e.
if the input message in the specified WSDL is :

<wsdl:message name="putBundleRequest">
        <wsdl:part name="body" type="types:putBundle"/>
        <wsdl:part name="attachment" type="types:attachment"/>
</wsdl:message>

(and obviusly types:putBundle and types:attachment are complex types) then the code generation
works, but still  when i pass the 
putBundleRequest message to the generated client stub, it does not send the same as a soap
attachment but it goes as a simple element in the soap body.

I cant find a way to specify a attachment in WSDL without a MIME binding. 

Does that mean, i can not send an attachment using WSDL2Java generated client stubs for a
document style?

Can you please tell me a way or point me to a relevant source.

regards,
nitesh

> Wsdl2Java throws a code generation exception if the input message has 2 parts.  (Document-Literal
Wrapped Dispatching)
> ----------------------------------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-953
>                 URL: http://issues.apache.org/jira/browse/AXIS2-953
>             Project: Apache Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: wsdl
>    Affects Versions: 1.0
>         Environment: Linux
>            Reporter: Nitesh kant
>
> I am trying to generate Java client side stubs from WSDL using Wsdl2Java.
> Following is the wsdl:
> ------------------------------------------------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
>                   xmlns:tns="http://www.foo.bar/schemas/2006/02/26/wsdl/"
>                   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>                   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>                   xmlns:types="http://www.foo.bar/schemas/2006/02/26/wsdl/types"
>                   targetNamespace="http://www.foo.bar/schemas/2006/02/26/wsdl/"
>                   name="WSDLFILE">
>     <wsdl:types>
>         <xsd:schema targetNamespace="http://www.foo.bar/schemas/2006/02/26/wsdl/types"
>         xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
>             <xsd:element name="session_id" type="xsd:string" />
>             <xsd:element name="attachment" type="xsd:hexBinary" />
>             <xsd:element name="putBundle">
>                 <xsd:complexType>
>                     <xsd:sequence>
>                         <xsd:element name="groupName" type="xsd:string"/>
>                     </xsd:sequence>
>                 </xsd:complexType>
>             </xsd:element>
>         </xsd:schema>
>     </wsdl:types>
>     <!--  Message definitions  -->
>     <wsdl:message name="putBundleRequest">
>         <wsdl:part name="body" element="types:putBundle"/>
>         <wsdl:part name="attachment" element="types:attachment"/>
>     </wsdl:message>
>     <wsdl:message name="putBundleResponse">
>         <wsdl:part element="types:session_id" name="PutAGBundleResponse"/>
>     </wsdl:message>
>     <wsdl:portType name="Config">
>         <wsdl:operation name="putBundle">
>             <wsdl:input message="tns:PutBundleRequest"/>
>             <wsdl:output message="tns:PutBundleResponse"/>
>         </wsdl:operation>
>     </wsdl:portType>
>     <wsdl:binding name="configSoapBinding" type="tns:Config">
>         <wsdlsoap:binding style="document"
>                           transport="http://schemas.xmlsoap.org/soap/http"/>
>         <wsdl:operation name="putBundle">
>             <wsdlsoap:operation/>
>             <wsdl:input>
>                 <mime:multipartRelated
>                         xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/">
>                     <mime:part>
>                         <wsdlsoap:body parts="body"
>                                        use="literal"/>
>                     </mime:part>
>                     <mime:part>
>                         <mime:content part="attachment"
>                                       type="application/zip"/>
>                     </mime:part>
>                 </mime:multipartRelated>
>             </wsdl:input>
>             <wsdl:output>
>                 <wsdlsoap:body parts="tns:PutBundleResponse" use="literal"/>
>             </wsdl:output>
>         </wsdl:operation>
>     </wsdl:binding>
>     <wsdl:service name="ConfigService">
>         <wsdl:port binding="tns:configSoapBinding"
>                    name="config">
>             <wsdlsoap:address
>                     location="http://localhost:8080/config"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> ------------------------------------------------------------------
> The whole intention is to send a SOAP attachment as a part of the request for "putBundle"
operation.
> I am not sure whether this is the correct way of doing it in Axis2 but yes, wsdl specs
do suggest the same.
> The following is the stack trace for the code-generation error:
> ----------------------------------------------------------------------
> Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException: java.lang.RuntimeException:
java.lang.reflect.InvocationTargetException
>           at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:185)
>           at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:32)
>           at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:21)
>       Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
>           at org.apache.axis2.wsdl.codegen.extension.XMLBeansExtension.engage(XMLBeansExtension.java:93)
>           at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:140)
>           ... 2 more
>       Caused by: java.lang.reflect.InvocationTargetException
>           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 org.apache.axis2.wsdl.codegen.extension.XMLBeansExtension.engage(XMLBeansExtension.java:83)
>           ... 3 more
>       Caused by: java.lang.RuntimeException: org.apache.xmlbeans.XmlException: error:
src-resolve: type 'PutBundleResponse@http://www.foo.bar/schemas/2006/02/26/wsdl/' not found.
>           at org.apache.axis2.xmlbeans.CodeGenerationUtility.processSchemas(CodeGenerationUtility.java:192)
>           ... 8 more
>       Caused by: org.apache.xmlbeans.XmlException: error: src-resolve: type 'PutBundleResponse@http://www.foo.bar/schemas/2006/02/26/wsdl/'
not found.
>           at org.apache.xmlbeans.impl.schema.SchemaTypeSystemCompiler.compile(SchemaTypeSystemCompiler.java:225)
>           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 org.apache.xmlbeans.XmlBeans.compileXmlBeans(XmlBeans.java:665)
>           at org.apache.axis2.xmlbeans.CodeGenerationUtility.processSchemas(CodeGenerationUtility.java:161)
>           ... 8 more
> ----------------------------------------------------------------------
> However, if the "PutBundleRequest" message contains only one part, everything works fine.
> The following is the ant task i am using to call Wsdl2Java
> -------------------------------------------------------------------------------------------------------------------
>         <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
>             <classpath refid="wsdl2Java.gen.classpath"/>
>             <arg value="-u"/>
>             <arg value="-s"/>
>             <arg value="-d"/>
>             <arg value="xmlbeans"/>
>             <arg value="-uri"/>
>             <arg file="${wsdl2Java_schemas}/ConfigService.wsdl"/>
>             <arg value="-o"/>
>             <arg file="${wsdl2Java_root}"/>
>             <arg value="-p"/>
>             <arg value="com.sonoa.soi.client"/>
>             <arg value="-ns2p"/>
>             <arg value="http://wwwfoo.bar/schemas/2006/02/26/wsdl/=com.foo,http://www.foo.bar/schemas/2006/02/26/wsdl/types=com.foo.wsdl.types"/>
>         </java>
> ---------------------------------------------------------------------------------------------
> Am i missing something or is it a bug?
> Also, it will be helpful, if you can suggest a way that works with Axis2 to send SOAP
attachments using stubs generated by Wsdl2Java.
> thanks and regards,
> nitesh

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Mime
View raw message