9 Replies Latest reply on Oct 1, 2007 9:50 AM by Heiko Braun

    Wsconsume generated Stubs failing with JBoss-4.2.0

    Vishal Sharma Expert

      I have a problem with generating Stubs from WSDL using Wsconsume, part of WS tools used in JBoss-4.2

      This is the wsdl which i'm using....



      <?xml version="1.0" encoding="UTF-8"?>
       <wsdl:definitions name="insurance_pub" targetNamespace="http://www.myhome.com.au/insurance.doc.wsdl"
       xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
       xmlns:tns="http://www.myhome.com.au/insurance.doc.wsdl"
       xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
       xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
       <wsdl:types>
       <xsd:schema
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       targetNamespace="http://www.myhome.com.au/insurance.doc.wsdl"
       xmlns:edm="http://www.myhome.com.au/insurance.doc.wsdl"
       xmlns:tns="http://localhost/insurance/pub/getMemberInfo">
      
       <xsd:import
       namespace="http://localhost/insurance/pub/getMemberInfo"/>
      
       <xsd:element name="getMemberInfo" type="tns:GetMemberInfoRequest"/>
       <xsd:element name="getMemberInfoResponse" type="tns:GetMemberInfoResponse"/>
       </xsd:schema>
      
       <xsd:schema
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       targetNamespace="http://localhost/insurance/pub/getMemberInfo"
       xmlns:tns="http://localhost/insurance/pub/getMemberInfo"
       xmlns:edm="http://www.myhome.com.au/insurance.doc.wsdl">
      
       <xsd:import
       namespace="http://www.myhome.com.au/insurance.doc.wsdl"/>
      
       <xsd:complexType name="EmploymentHistory">
       <xsd:sequence>
       <xsd:element name="fundCode" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="employerNumber" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="tradingName" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="employerStatus" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="startDate" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="endDate" nillable="true" type="xsd:string" minOccurs="0"/>
       </xsd:sequence>
       </xsd:complexType>
       <xsd:complexType name="MemberPackages">
       <xsd:sequence>
       <xsd:element name="packageName" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="packageStartDate" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="packageEndDate" nillable="true" type="xsd:string" minOccurs="0"/>
       </xsd:sequence>
       </xsd:complexType>
      
       <xsd:complexType name="GetMemberInfoRequestType">
       <xsd:sequence>
       <xsd:element ref="edm:getMemberInfo"/>
       <xsd:any processContents="lax"/>
       </xsd:sequence>
       <xsd:anyAttribute processContents="lax"/>
       </xsd:complexType>
       <xsd:complexType name="GetMemberInfoRequest">
       <xsd:sequence>
       <xsd:element name="fundCode" nillable="true" type="xsd:string"/>
       <xsd:element name="memberNumber" nillable="true" type="xsd:string"/>
       </xsd:sequence>
       </xsd:complexType>
       <xsd:complexType name="GetMemberInfoResponseType">
       <xsd:sequence>
       <xsd:element ref="edm:getMemberInfoResponse"/>
       <xsd:any processContents="lax"/>
       </xsd:sequence>
       <xsd:anyAttribute processContents="lax"/>
       </xsd:complexType>
       <xsd:complexType name="GetMemberInfoResponse">
       <xsd:sequence>
       <xsd:element name="fundCode" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="clientArrangementId" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="memberNumber" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="membershipType" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="title" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="givenName" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="surname" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="gender" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="email" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="phoneNumber" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="dateOfBirth" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="deemedDate" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="activeDate" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="addressLine1" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="addressLine2" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="addressLine3" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="suburb" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="state" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="postcode" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="country" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="accountBalance" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="division" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="status" nillable="true" type="xsd:string" minOccurs="0"/>
       <xsd:element name="employmentHistory" type="tns:EmploymentHistory" nillable="true" maxOccurs="unbounded" minOccurs="0"/>
       <xsd:element name="mbrPackages" type="tns:MemberPackages" nillable="true" maxOccurs="unbounded" minOccurs="0"/>
       </xsd:sequence>
       </xsd:complexType>
       </xsd:schema>
      
       </wsdl:types>
      
       <wsdl:message name="getMemberInfoIn">
       <wsdl:part name="getMemberInfo" element="tns:getMemberInfo"/>
       </wsdl:message>
      
       <wsdl:message name="getMemberInfoOutput">
       <wsdl:part name="getMemberInfoResponse" element="tns:getMemberInfoResponse"/>
       </wsdl:message>
      
       <wsdl:portType name="Insurance_services_getmemberinfo">
       <wsdl:operation name="getMemberInfo">
       <wsdl:input message="tns:getMemberInfoIn"/>
       <wsdl:output message="tns:getMemberInfoOutput"/>
       </wsdl:operation>
       </wsdl:portType>
       <wsdl:binding name="Insurance_services_getmemberinfoBinding" type="tns:Insurance_services_getmemberinfo">
       <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
      
       <wsdl:operation name="getMemberInfo">
       <soap:operation soapAction=""/>
       <wsdl:input>
       <soap:body use="literal"/>
       </wsdl:input>
       <wsdl:output>
       <soap:body use="literal"/>
       </wsdl:output>
       </wsdl:operation>
       </wsdl:binding>
       <!-- to test point web browser too
      
       <wsdl:service name="Insurance_services_getmemberinfoService">
       <wsdl:port name="Insurance_services_getmemberinfoPort0" binding="tns:Insurance_services_getmemberinfoBinding">
       <soap:address location="http://localhost:5565/soap/DocLiteral"/>
       </wsdl:port>
       </wsdl:service>
       </wsdl:definitions>
      
      
      
      


      I have not been able to understand what the problem is. Even though the stubs are generated, I'm not sure whether these are right ones, because their was warning which is coming all the time when i run wsconsume.

      Any pointers or hints will be a great help.

      I went further assuming thet "let us not worry about the warning" and tried to rune the cleint using generated stubs and i got this error at invocation of this service

      Exception in thread "main" java.lang.IllegalStateException: Cannot build JAXB context
       at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:879)
       at org.jboss.ws.metadata.builder.jaxws.JAXWSClientMetaDataBuilder.rebuildEndpointMetaData(JAXWSClientMetaDataBuilder.java:281)
       at org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.getPortInternal(ServiceDelegateImpl.java:274)
       at org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.getPort(ServiceDelegateImpl.java:200)
       at javax.xml.ws.Service.getPort(Service.java:116)
       at au.com.sydney.InsuranceServicesGetmemberinfoService.getInsuranceServicesGetmemberinfoPort0(InsuranceServicesGetmemberinfoService.java:56)
       at au.com.sydney.TestService.main(TestService.java:28)
      Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 32 counts of IllegalAnnotationExceptions
      There's no ObjectFactory with an @XmlElementDecl for the element {http://www.myhome.com.au/insurance.doc.wsdl}fundCode.
       this problem is related to the following location:
       at protected javax.xml.bind.JAXBElement au.com.sydney.GetMemberInfoResponse.fundCode
       at au.com.sydney.GetMemberInfoResponse
      


      As i get this run time error... I'm not sure now whether its a stub generated by wsconsume are not right because their was a warning while running wsconsume or is it JAXB or something else.

      Any pointers to work on will be a geart help and save me :) from stress over the weekend.