This is my best guess at what is happening in the code you posted - with the caveat that I haven't used Axis 1.x nor a WSDL in my own projects in many years, albeit I help maintain both areas of code.
The WSDL2Java error indicates it is expecting to conform specifically to the RPC / Literal style - FYI, Doc / literal is somewhat more common. See the source file SDL11ToAxisServiceBuilder and isRPC() that generates the error. There seems to be some type of conflict between Doc / literal configuration and RPC / literal The XML schema pasted shows some complex types and elements with a name attribute. Seems wrong for RPC / literal. I don't see "binding style=" or keywords like "encoded" or "literal" in what you posted but that could be a clue. I suggest analyzing the arguments you are using for the auto generation on both the WSDL and Java sides. The Ant arguments on one side at least needs to change - not necessarily both but possible so. On Thu, Feb 6, 2025 at 9:44 AM robertlazarski <robertlazar...@gmail.com> wrote: > This has been a busy week for me and the email is long over a complicated > subject however I expect to see what advice I can give in the next few > days. > > On Fri, Jan 31, 2025 at 11:15 AM Debra Petta > <deb...@drummondgroup.com.invalid> wrote: > >> 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 >> >> >> >