Hi Everyone - I am in the process of attempting to convert my Axis 1.0 application to Axis 2 (version 1.8.2). I have been reviewing the User Guide and the related documentation for Axis 2 for several weeks now, however I couldn't find any documentation that addresses my specific questions, so I hope someone in this group can assist me.
Basically, my current Axis 1.0 application has a server implementation and an interface that is converted into client-side code. The client then makes RPC calls to specific methods through the generated client stubs. My deploy.wsdd file (snippet below) contains several <beanMapping> elements for my custom return types, so it is my assumption that I need to use xmlbean data binding. <deployment xmlns=http://xml.apache.org/axis/wsdd/ xmlns:java=http://xml.apache.org/axis/wsdd/providers/java > <service name="VendorSvc" provider="java:RPC" > <parameter name="className" value="com.dgi.insitusvc.ws.VendorSvcWS"/> <parameter name="allowedMethods" value="*"/> <beanMapping qname="dgiNS:GenericResult" xmlns:dgiNS="urn:vendorsvc.dgi.com" languageSpecificType="java:com.dgi.insitusvc.itf.GenericResult"/> ... [snip] Based on these assumptions, I converted my java2wsdl ant task from: <echo message="Generating WSDL files from server Java classes..."/> <java fork="yes" classname="org.apache.axis.wsdl.Java2WSDL"> <arg line=' -o server/src/wsdl-gen/vendorsvc.wsdl -l http://localhost:8080/axis/services/VendorSvc -n "urn:com.dgi.vendorsvc" -p "com.dgi.insitusvc.itf" "urn:vendorsvc.dgi.com" com.dgi.insitusvc.ws.VendorSvcWS'/> <classpath> <pathelement location="build/classes"/> <pathelement location="../externlib/axis.jar"/> <pathelement location="../externlib/commons-discovery.jar"/> <pathelement location="../externlib/commons-logging.jar"/> <pathelement location="../externlib/wsdl4j.jar"/> <pathelement location="../externlib/jaxrpc-api.jar"/> <pathelement location="../externlib/xsdlib.jar"/> <pathelement location="../externlib/saaj.jar"/> </classpath> </java> to: <echo message="Generating WSDL files from server Java classes..."/> <java fork="yes" classname="org.apache.ws.java2wsdl.Java2WSDL"> <arg line=' -o server/src/wsdl-gen -l http://localhost:8080/axis2/services/VendorSvc -tn "urn:com.dgi.vendorsvc" -p2n [com.dgi.insitusvc.itf,urn:vendorsvc.dgi.com] -cn com.dgi.insitusvc.ws.VendorSvcWS -xc com.dgi.insitusvc.itf.ParticipantVO -xc com.dgi.insitusvc.itf.PhaseVO -xc com.dgi.insitusvc.itf.TestCaseInstanceVO -xc com.dgi.insitusvc.itf.TestCasesVO -xc com.dgi.insitusvc.itf.TestCaseOverviewVO -wv 1.1 -st rpc -sn VendorSvc'/> <classpath> <pathelement location="build/classes"/> <fileset dir="externlib" includes="*.jar"/> </classpath> </java> Running the updated task creates a VendorSvcWS.wsdl file with the schema definitions for all the complex types, message/parameter elements, operations and bindings. I then converted the wsdl2java ant task from: <echo message="Generating client Java classes from server WSDL files..."/> <java fork="yes" classname="org.apache.axis.wsdl.WSDL2Java"> <arg line='-p com.dgi.client.vendorsvc -o client/src/java-gen server/src/wsdl-gen/vendorsvc.wsdl'/> <classpath> <pathelement location="../externlib/axis.jar"/> <pathelement location="../externlib/commons-discovery.jar"/> <pathelement location="../externlib/commons-logging.jar"/> <pathelement location="../externlib/wsdl4j.jar"/> <pathelement location="../externlib/jaxrpc-api.jar"/> <pathelement location="../externlib/xsdlib.jar"/> <pathelement location="../externlib/saaj.jar"/> </classpath> </java> to: <echo message="Generating client Java classes from server WSDL files..."/> <java fork="yes" classname="org.apache.axis2.wsdl.WSDL2Java"> <arg line=' -uri server/src/wsdl-gen/VendorSvcWS.wsdl -d xmlbeans -p com.dgi.client.vendorsvc -o client/src/java-gen -ssi -uw'/> <classpath> <fileset dir="externlib" includes="*.jar"/> </classpath> </java> When I run the converted wsdl2java task, this exception information is logged: wsdl2java: [echo] Generating client Java classes from server WSDL files... [java] Retrieving document at 'server/src/wsdl-gen/VendorSvcWS.wsdl'. [java] Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException: Error parsing WSDL [java] at org.apache.axis2.wsdl.codegen.CodeGenConfiguration.loadWsdl(CodeGenConfiguration.java:748) [java] at org.apache.axis2.wsdl.codegen.CodegenConfigLoader.loadConfig(CodegenConfigLoader.java:328) [java] at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:53) [java] at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24) [java] Caused by: org.apache.axis2.AxisFault: The binding operation validateParticipant is RPC/literal. The message parts for this operation must use the type attribute as specificed by WS-I Basic Profile specification (4.4.1). Message part, parameters, violatesthis rule. Please remove the element attribute and use the type attribute. [java] at org.apache.axis2.AxisFault.makeFault(AxisFault.java:431) [java] at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateService(WSDL11ToAxisServiceBuilder.java:408) [java] at org.apache.axis2.description.WSDL11ToAllAxisServicesBuilder.populateAllServices(WSDL11ToAllAxisServicesBuilder.java:107) [java] at org.apache.axis2.wsdl.codegen.CodeGenConfiguration.loadWsdl(CodeGenConfiguration.java:742) [java] ... 3 more [java] Caused by: org.apache.axis2.description.WSDL11ToAxisServiceBuilder$WSDLProcessingException: The binding operation validateParticipant is RPC/literal. The message parts for this operation must use the type attribute as specificed by WS-I Basic Profile specification (4.4.1). Message part, parameters, violatesthis rule. Please remove the element attribute and use the type attribute. [java] at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.addPartToElement(WSDL11ToAxisServiceBuilder.java:2252) [java] at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.getNewComplextType(WSDL11ToAxisServiceBuilder.java:2110) [java] at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.createSchemaForPorttype(WSDL11ToAxisServiceBuilder.java:1760) [java] at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.generateWrapperSchema(WSDL11ToAxisServiceBuilder.java:1648) [java] at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateService(WSDL11ToAxisServiceBuilder.java:352) [java] ... 5 more [java] Java Result: 1 I have pasted all references to the 'validateParticipant' from the WSDL below: >From the schema section: <xs:element name="validateParticipant"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="data" nillable="true" type="ax22:ParticipantFullVO"/> <xs:element name="useHtmlBreaks" type="xs:boolean"/> <xs:element name="forceCheck" type="xs:boolean"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="validateParticipantResponse"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> Messages: <wsdl:message name="validateParticipantRequest"> <wsdl:part name="parameters" element="ns:validateParticipant"/> </wsdl:message> <wsdl:message name="validateParticipantResponse"> <wsdl:part name="parameters" element="ns:validateParticipantResponse"/> </wsdl:message> Operation: <wsdl:operation name="validateParticipant"> <wsdl:input message="tns:validateParticipantRequest" wsaw:Action="urn:validateParticipant"/> <wsdl:output message="tns:validateParticipantResponse" wsaw:Action="urn:validateParticipantResponse"/> </wsdl:operation> <wsdl:operation name="validateParticipant"> <soap:operation soapAction="urn:validateParticipant" style="rpc"/> <wsdl:input> <soap:body use="literal"/> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> >From what I can tell, it appears that the above stack trace requires some sort >of manual intervention to convert the highlighted 'element' parameter to >'type', however I have no idea how to resolve this issue since my hope was >that the process of generating the WSDL and the client classes would be >automated through ant. Is it possible that I generated the WSDL incorrectly or have called the WSDL2Java with incorrect parameters? I did try to generate the source code using 'mvn clean install' (using Maven 3.9.2) to see if I can figure out where it is failing however, I cannot get past the plug-in exceptions even after following the instructions in the readme to build the plugins individually. Thank you for whatever advice that you can provide. -Debra