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 > > >