Hi SiddharthaC,

looks like you're using the wrong binding. I use the following parameters to
generate my
wsdl with Java2WSDL:
-A OPERATION
-y WRAPPED
-u LITERAL

Regards
Michael



siddhartha wrote:
> 
> Hello All ,
> 
> I tried the same with ofbiz R 607122 . I first created the wsdl using
> Java2WSDL . Then I tried 
> to access the deployed webservice :
> 
> My service def looks like the following :
> 
> <service name="createHelloPerson" engine="java"
>    location="org.ofbiz.hello3.Hello3Services" invoke="createHelloPerson"
> export="true">
>         <description>Create a HelloPerson</description> 
>                 <namespace>http://home.com</namespace>        
>               <attribute name="personTwo" mode="IN"
> type="org.ofbiz.hello3.ComplexTest" optional="true"/>                     
> </service>
> 
> my SoapMessage :
> 
> <soap:Body>
> <createHelloPerson>
> <personTwo xsi:type=\"xsd:complexType\">
> <name xsi:type=\"xsd:attribute\">peters</name>
> </personTwo></createHelloPerson></soap:Body></soap:Envelope>
> 
> Can any Body tell me whether I am using the proper soap message or not?As
> I am getting the following 
> exception 
> 
>  [     RequestHandler.java:314:
> ERROR] Request SOAPService caused an error with the following message:
> Error calling
> event: org.ofbiz.webapp.event.EventHandlerException:
> org.xml.sax.SAXException (org.xm
> l.sax.SAXException)
> 
> thx in advance 
> SiddharthaC
> 
> 
> 
> 
> Michael Imhof wrote:
>> 
>> After a while a found a way to create and process SOAP request
>> with complex types in OfBiz:
>> 
>> 1). Use Java2WSDL to create a WSDL. This allows you to use complex types.
>>     javac: Compile the class with option -g to get debug infos (e.g. real
>> argument names instead of arg0, arg1,...)
>>     Java2WSDL: Use parameter -A OPERATION.
>> 
>> 2). Property: axis.doAutoTypes should be true. If not, no serializer
>> could be found.
>>      I put this in Start.java:
>>        System.setProperty("axis.doAutoTypes", Boolean.TRUE.toString());
>> 
>> 3). The complex type class should implement:
>>            public static org.apache.axis.description.TypeDesc
>> getTypeDesc():
>>      For a class ComplexType with a string attribute <name>, TypeDesc
>> should look like this:
>> 
>>      org.apache.axis.description.TypeDesc typeDesc =new
>> org.apache.axis.description.TypeDesc(ComplexTest.class, true);
>>      typeDesc.setXmlType(new
>> javax.xml.namespace.QName("http://types.archiv.isgate.nowhow.ch";,
>> "ComplexTest"));
>>      org.apache.axis.description.ElementDesc elemField = new
>> org.apache.axis.description.ElementDesc();
>>      elemField.setFieldName("name");
>>      elemField.setXmlName(new javax.xml.namespace.QName("", "name"));
>>      elemField.setXmlType(new
>> javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema";, "string"));
>>      typeDesc.addFieldDesc(elemField);
>> 
>> Now you can generate Services with a complex type ComplexType. 
>>     <service name="testService" engine="java"
>> location="ch.nowhow.isgate.archiv.ArchivServices"
>>         invoke="testService" export="true">
>>         <namespace>http://nowhow.ch/isgate/</namespace>
>>         <attribute name="inList"
>> type="ch.nowhow.isgate.archiv.types.ComplexTest" mode="IN"
>>             optional="false"/>
>>     </service>
>> 
>> If you want to use arrays of complex types (or simply array of string),
>> you should enhance ObjectType.java to support arrays...but this is
>> another story and
>> I'm still testing my changes
>> (https://issues.apache.org/jira/browse/OFBIZ-746):-)
>> 
>> Regards 
>> Michael
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Using-SOAP-complex-types-with-OfBiz-tp9180865p18030955.html
Sent from the OFBiz - User mailing list archive at Nabble.com.

Reply via email to