You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Dennis Sosnoski (JIRA)" <ji...@apache.org> on 2007/04/20 03:11:15 UTC

[jira] Resolved: (AXIS2-2121) WSDL2Java jibx binding issue

     [ https://issues.apache.org/jira/browse/AXIS2-2121?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dennis Sosnoski resolved AXIS2-2121.
------------------------------------

    Resolution: Won't Fix

The problem is in the binding being used, which has a non-abstract <mapping> for org.tempuri.SubmitNameZipSearch that's missing the required element name. Normally this type of problem will be found when you run the binding compiler, but if you run Wsdl2Java without first running the binding compiler an invalid binding can cause all kinds of failures.

I've added a test for this particular issue (http://svn.apache.org/viewvc?view=rev&rev=530596) and will add a warning to the documentation that you should always try compiling the binding before using Wsdl2Java.

> WSDL2Java jibx  binding issue
> -----------------------------
>
>                 Key: AXIS2-2121
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2121
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: wsdl
>    Affects Versions: 1.1.1
>         Environment: windows xp
>            Reporter: Ravi Varanasi
>         Assigned To: Dennis Sosnoski
>         Attachments: CM2NameZipSearch.wsdl, jibx-binding.xml
>
>
> Get the following error while running WSDL2Java . Any help is appreciated.
> Command : %AXIS2_HOME%\bin\wsdl2java  -d jibx  -Ebindingfile jibx-binding.xml -uri CM2NameZipSearch.wsdl
> Error: Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException
> : java.lang.IllegalArgumentException: local part cannot be "null" when creatinga QName
>         at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:224)
>         at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:32)
>         at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:21)
> Caused by: java.lang.IllegalArgumentException: local part cannot be "null" when
> creating a QName
>         at javax.xml.namespace.QName.<init>(QName.java:164)
>         at javax.xml.namespace.QName.<init>(QName.java:113)
>         at org.apache.axis2.jibx.CodeGenerationUtility.collectTopLevelComponents(CodeGenerationUtility.java:993)
>         at org.apache.axis2.jibx.CodeGenerationUtility.engage(CodeGenerationUtility.java:301)
>         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.JiBXExtension.engage(JiBXExtension.java:74)
>         at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:177)
> Binding:
> <binding force-classes="true" add-constructors="true"
> 	xmlns:s0="http://tempuri.org/">
> 	
> 	<mapping abstract="true" class="org.tempuri.NameZipSearchRequest"
> 		type-name="s0:NameZipSearchRequest">
> 		<value name="FirstName" style="attribute" field="firstName"/>
> 		<value name="LastName" style="attribute" field="lastName"/>
> 		<value name="MiddleInitial" style="attribute" field="middleInitial"/>
> 		<value name="Zip" style="attribute" field="zip"/>
> 		<value name="ZipFour" style="attribute" field="zipFour"/>
> 	</mapping>
> 	
> 	<mapping type-name="s0:SubmitNameZipSearch"
> 		class="org.tempuri.SubmitNameZipSearch">
> 		<structure field="nameZipSearchRequest" name="objRequest" map-as="s0:NameZipSearchRequest"/>
> 	</mapping>
> 	
> 		<mapping abstract="true" class="org.tempuri.LoanSummary"
> 		type-name="s0:LoanSummary">
> 		<value name="FirstName" style="attribute" field="firstName"/>
> 		<value name="LastName" style="attribute" field="lastName"/>
> 		<value name="MiddleInitial" style="attribute" field="middleInitial"/>
> 		<value name="PropertyAddress1" style="attribute" field="propertyAddress1"/>
> 		<value name="PropertyAddress2" style="attribute" field="propertyAddress2"/>
> 		<value name="PropertyCity" style="attribute" field="propertyCity"/>
> 		<value name="PropertyZip" style="attribute" field="propertyZip"/>
> 		<value name="LoanType" style="attribute" field="loanType"/>
> 		<value name="LoanNumber" style="attribute" field="loanNumber"/>
> 		<value name="AccountStatus" style="attribute" field="accountStatus"/>
> 		<value name="CurrentBalanace" style="attribute" field="currentBalance"/>
> 	</mapping>
> 	
> 	<mapping abstract="true" class="org.tempuri.LoanSummaries"
> 		type-name="s0:ArrayOfLoanSummary">
> 		<value name="LoanSummary" style="attribute" field="loanSummary"/>
> 	</mapping>
> 	
> 	<mapping abstract="true" class="org.tempuri.NameZipSearchResponse"
> 		type-name="s0:NameZipSearchResponse">
> 		<structure field="loanSummaries" name="LoanSummary"
> 			map-as="s0:ArrayOfLoanSummary"/>
> 		<value field="refineSearch" name="RefineSearch"/>
> 	</mapping>
> 	
> 	<mapping type-name="s0:SubmitNameZipSearchResponse"
> 		class="org.tempuri.NameZipSearchResponse">
> 		<structure field="SubmitNameZipSearchResult"
> 			name="SubmitNameZipSearchResult" map-as="s0:NameZipSearchResponse"/>
> 	</mapping>	
> </binding> 
> WSDL:<?xml version="1.0" encoding="utf-8"?>
> <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
> 	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
> 	xmlns:s="http://www.w3.org/2001/XMLSchema" 
> 	xmlns:s0="http://tempuri.org/" 
> 	xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
> 	xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
> 	targetNamespace="http://tempuri.org/" 
> 	xmlns="http://schemas.xmlsoap.org/wsdl/">
>   <types>
>     <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
>       <s:element name="SubmitNameZipSearch">
>         <s:complexType>
>           <s:sequence>
>             <s:element minOccurs="0" maxOccurs="1" name="objRequest" type="s0:NameZipSearchRequest" />
>           </s:sequence>
>         </s:complexType>
>       </s:element>
>       <s:complexType name="NameZipSearchRequest">
>         <s:sequence>
>           <s:element minOccurs="0" maxOccurs="1" name="FirstName" type="s:string" />
>           <s:element minOccurs="0" maxOccurs="1" name="MiddleInitial" type="s:string" />
>           <s:element minOccurs="0" maxOccurs="1" name="LastName" type="s:string" />
>           <s:element minOccurs="0" maxOccurs="1" name="Zip" type="s:string" />
>           <s:element minOccurs="0" maxOccurs="1" name="ZipFour" type="s:string" />
>         </s:sequence>
>       </s:complexType>
>       <s:element name="SubmitNameZipSearchResponse">
>         <s:complexType>
>           <s:sequence>
>             <s:element minOccurs="0" maxOccurs="1" name="SubmitNameZipSearchResult" type="s0:NameZipSearchResponse" />
>           </s:sequence>
>         </s:complexType>
>       </s:element>
>       <s:complexType name="NameZipSearchResponse">
>         <s:sequence>
>           <s:element minOccurs="0" maxOccurs="1" name="LoanSummary" type="s0:ArrayOfLoanSummary" />
>           <s:element minOccurs="0" maxOccurs="1" name="RefineSearch" type="s:string" />
>         </s:sequence>
>       </s:complexType>
>       <s:complexType name="ArrayOfLoanSummary">
>         <s:sequence>
>           <s:element minOccurs="0" maxOccurs="unbounded" name="LoanSummary" nillable="true" type="s0:LoanSummary" />
>         </s:sequence>
>       </s:complexType>
>       <s:complexType name="LoanSummary">
>         <s:sequence>
>           <s:element minOccurs="0" maxOccurs="1" name="FirstName" type="s:string" />
>           <s:element minOccurs="0" maxOccurs="1" name="MiddleInitail" type="s:string" />
>           <s:element minOccurs="0" maxOccurs="1" name="LastName" type="s:string" />
>           <s:element minOccurs="0" maxOccurs="1" name="PropertyAddress1" type="s:string" />
>           <s:element minOccurs="0" maxOccurs="1" name="PropertyAddress2" type="s:string" />
>           <s:element minOccurs="0" maxOccurs="1" name="PropertyCity" type="s:string" />
>           <s:element minOccurs="0" maxOccurs="1" name="Propertystate" type="s:string" />
>           <s:element minOccurs="0" maxOccurs="1" name="PropertyZip" type="s:string" />
>           <s:element minOccurs="0" maxOccurs="1" name="PropertyZipFour" type="s:string" />
>           <s:element minOccurs="0" maxOccurs="1" name="LoanType" type="s:string" />
>           <s:element minOccurs="1" maxOccurs="1" name="LoanNumber" type="s:int" />
>           <s:element minOccurs="0" maxOccurs="1" name="AccountStatus" type="s:string" />
>           <s:element minOccurs="0" maxOccurs="1" name="CurrentBalance" type="s:string" />
>         </s:sequence>
>       </s:complexType>
>     </s:schema>
>   </types>
>   <message name="SubmitNameZipSearchSoapIn">
>     <part name="parameters" element="s0:SubmitNameZipSearch" />
>   </message>
>   <message name="SubmitNameZipSearchSoapOut">
>     <part name="parameters" element="s0:SubmitNameZipSearchResponse" />
>   </message>
>   <portType name="CM2ServiceSoap">
>     <operation name="SubmitNameZipSearch">
>       <input message="s0:SubmitNameZipSearchSoapIn" />
>       <output message="s0:SubmitNameZipSearchSoapOut" />
>     </operation>
>   </portType>
>   <binding name="CM2ServiceSoap" type="s0:CM2ServiceSoap">
>     <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
>     <operation name="SubmitNameZipSearch">
>       <soap:operation soapAction="http://tempuri.org/SubmitNameZipSearch" style="document" />
>       <input>
>         <soap:body use="literal" />
>       </input>
>       <output>
>         <soap:body use="literal" />
>       </output>
>     </operation>
>   </binding>
>   <service name="CM2Service">
>     <port name="CM2ServiceSoap" binding="s0:CM2ServiceSoap">
>       <soap:address location="http://localhost/CM2Service/CM2NameZipSearch.asmx" />
>     </port>
>   </service>
> </definitions>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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