Hi,
we are using cxf 2.0, we are using wsdl provided by SAP in Norway (and because 
we don't speak Norwegian and whole application is developed in english we 
have done this jaxws and jaxb binding customization).

So, we are developing client side using cxf, soap binding is document/literal 
wrapped. We are using soapui to mock the service side (it is a tool which can 
import wsdl and simply mock the service). We are logging from cxf both 
requests and response.

Jaxb binding is customized both for request and response wrapper. While 
generating request, everything is OK and problem is while handling response.

Our client is started by this code:
NoMilSapNumberLookupService service = new NoMilSapNumberLookupService(wsdlUrl, 
serviceName);
        service.getZMMMATEXISTMATNRSoapBinding().existSapNumber(
                ASKING_SYSTEM, 
                sapNumber,
                status, 
                nsn, 
                description);

shortened client stub:

@WebServiceClient(name = "ZMM_MAT_EXIST_MATNRService", targetNamespace 
= "urn:sap-com:document:sap:soap:functions:mc-style")
public class NoMilSapNumberLookupService extends Service {

public NoMilSapNumberLookupService(URL wsdlLocation, QName serviceName) {
        super(wsdlLocation, serviceName);
    }
}

see wsdl and binding customization in attachment.

On Friday 19 of October 2007 09:58:20 Jim Ma wrote:
> Hi ,
> Could you tell me more information about this issue ?
> Which version CXF did you  use ?
> How did you start  and call this service ?
>
> Cheers
>
> Jim
>
> Bc. Jiří Mikulášek wrote:
> > Hi all,
> > I have used wsdl2java with external binding file specified through -b. My
> > stubs for client have been generated correctly, but I got in trouble
> > during runtime.
> >
> > The point is, that have renamed response properties names. But it seems
> > that cxf ignores jaxb annotations when handling the response wrapper.
> >
> > More concretly
> >
> > thanks to this part of external binding file:
> >  <jaxws:bindings
> > node="wsdl:definitions/wsdl:types/xsd:[EMAIL PROTECTED]'urn:sap-co
> >m:document:sap:soap:functions:mc-style']">
> >
> >             <jaxb:bindings
> > node="xsd:[EMAIL PROTECTED]'ZBapiMaterialExistsMatnrResponse']/xsd:complexTy
> >pe/xsd:sequence/xsd:[EMAIL PROTECTED]'MaterialFinnes']"> <jaxb:property
> > name="existMark" />
> >             </jaxb:bindings>
> >
> >     </jaxws:bindings>
> >
> > this code is generated:
> >
> >  @XmlElement(name = "MaterialFinnes", required = true)
> >     protected String existMark;
> >
> > public String getExistMark() {
> >         return existMark;
> >     }
> >
> >     public void setExistMark(String value) {
> >         this.existMark = value;
> >     }
> >
> > but when trying to use this client against some mockservice generated
> > from the same wsdl I got:
> >
> > Caused by: java.lang.NoSuchMethodException:
> > cz.aura.isl.katalog.davky.control.sapnorway.sapnumberlookup.SapNumberLook
> >upResponse.getMaterialFinnes() at
> > org.apache.cxf.jaxb.WrapperHelper.getWrappedPart(WrapperHelper.java:194)
> >         at
> > org.apache.cxf.jaxws.interceptors.WrapperClassInInterceptor.handleMessage
> >(WrapperClassInInterceptor.java:136) ... 70 more



-- 
Jiri Mikulasek
---------------------------------
Developer

AURA, s.r.o.
Uvoz 499/56; 602 00 Brno
ISO 9001 certified company
AQAP 2110 (ČOS 051622)
tel./fax: +420 544 508 115
e-mail: [EMAIL PROTECTED]
http://www.aura.cz
---------------------------------
<jaxws:bindings wsdlLocation="ZMM_MAT_EXIST_MATNR.wsdl" xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"; xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"; xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
    <jaxws:package name="cz.aura.isl.katalog.davky.control.sapnorway.services"/>
    
    <jaxws:bindings node="wsdl:definitions/wsdl:[EMAIL PROTECTED]'ZMM_MAT_EXIST_MATNR']" >
        <jaxws:class name="NoMilSapNumberLookupServicePortType" />
    </jaxws:bindings>
    
    <jaxws:bindings node="wsdl:definitions/wsdl:[EMAIL PROTECTED]'ZMM_MAT_EXIST_MATNRService']" >
        <jaxws:class name="NoMilSapNumberLookupService" />        
    </jaxws:bindings>
    
    <jaxws:bindings node="wsdl:definitions/wsdl:[EMAIL PROTECTED]'ZMM_MAT_EXIST_MATNR']/wsdl:[EMAIL PROTECTED]'ZBapiMaterialExistsMatnr']" >
        <jaxws:method name="existSapNumber" />
    </jaxws:bindings>
    
    
    
    
    <jaxws:bindings node="wsdl:definitions/wsdl:types/xsd:[EMAIL PROTECTED]'urn:sap-com:document:sap:soap:functions:mc-style']">
            <jaxb:bindings node="xsd:[EMAIL PROTECTED]'ZBapiMaterialExistsMatnr']">
                <jaxb:class name="SapNumberLookupRequest" />               
            </jaxb:bindings>
    
    </jaxws:bindings>
    <jaxws:bindings node="wsdl:definitions/wsdl:types/xsd:[EMAIL PROTECTED]'urn:sap-com:document:sap:soap:functions:mc-style']">
            <jaxb:bindings node="xsd:[EMAIL PROTECTED]'ZBapiMaterialExistsMatnr']/xsd:complexType/xsd:sequence/xsd:[EMAIL PROTECTED]'AskingSystem']">                
                    <jaxb:property name="askingSystem" />
            </jaxb:bindings>    
    </jaxws:bindings>
     <jaxws:bindings node="wsdl:definitions/wsdl:types/xsd:[EMAIL PROTECTED]'urn:sap-com:document:sap:soap:functions:mc-style']">
            <jaxb:bindings node="xsd:[EMAIL PROTECTED]'ZBapiMaterialExistsMatnr']/xsd:complexType/xsd:sequence/xsd:[EMAIL PROTECTED]'MatnrIn']">                
                    <jaxb:property name="sapNumber" />
            </jaxb:bindings>    
    </jaxws:bindings>
    
    
    
    <jaxws:bindings node="wsdl:definitions/wsdl:types/xsd:[EMAIL PROTECTED]'urn:sap-com:document:sap:soap:functions:mc-style']">
            
            <jaxb:bindings node="xsd:[EMAIL PROTECTED]'ZBapiMaterialExistsMatnrResponse']">
                <jaxb:class name="SapNumberLookupResponse" />
            </jaxb:bindings>
    
    </jaxws:bindings>
    <jaxws:bindings node="wsdl:definitions/wsdl:types/xsd:[EMAIL PROTECTED]'urn:sap-com:document:sap:soap:functions:mc-style']">
            
            <jaxb:bindings node="xsd:[EMAIL PROTECTED]'ZBapiMaterialExistsMatnrResponse']/xsd:complexType/xsd:sequence/xsd:[EMAIL PROTECTED]'MaterialFinnes']">
                <jaxb:property name="existMark" />
            </jaxb:bindings>
    
    </jaxws:bindings>
    <jaxws:bindings node="wsdl:definitions/wsdl:types/xsd:[EMAIL PROTECTED]'urn:sap-com:document:sap:soap:functions:mc-style']">
            
            <jaxb:bindings node="xsd:[EMAIL PROTECTED]'ZBapiMaterialExistsMatnrResponse']/xsd:complexType/xsd:sequence/xsd:[EMAIL PROTECTED]'NsnidOut']">
                <jaxb:property name="nsn" />
            </jaxb:bindings>
    
    </jaxws:bindings>
    <jaxws:bindings node="wsdl:definitions/wsdl:types/xsd:[EMAIL PROTECTED]'urn:sap-com:document:sap:soap:functions:mc-style']">
            
            <jaxb:bindings node="xsd:[EMAIL PROTECTED]'ZBapiMaterialExistsMatnrResponse']/xsd:complexType/xsd:sequence/xsd:[EMAIL PROTECTED]'Tekst']">
                <jaxb:property name="description" />
            </jaxb:bindings>
    
    </jaxws:bindings>
    
    
    
    
    <jaxws:bindings node="wsdl:definitions/wsdl:types/xsd:[EMAIL PROTECTED]'urn:sap-com:document:sap:soap:functions:mc-style']">
            
            <jaxb:schemaBindings>
                <jaxb:package name="cz.aura.isl.katalog.davky.control.sapnorway.sapnumberlookup" />
            </jaxb:schemaBindings>
    
    </jaxws:bindings>
    
</jaxws:bindings>
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions 
targetNamespace="urn:sap-com:document:sap:soap:functions:mc-style" 
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; 
xmlns:n0="urn:sap-com:document:sap:rfc:functions" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:tns="urn:sap-com:document:sap:soap:functions:mc-style" 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
    <wsdl:types>
        <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:tns="urn:sap-com:document:sap:rfc:functions" 
targetNamespace="urn:sap-com:document:sap:rfc:functions" 
elementFormDefault="unqualified" attributeFormDefault="qualified">
            <xsd:simpleType name="char1">
                <xsd:restriction base="xsd:string">
                    <xsd:maxLength value="1"/>
                </xsd:restriction>
            </xsd:simpleType>
            <xsd:simpleType name="char18">
                <xsd:restriction base="xsd:string">
                    <xsd:maxLength value="18"/>
                </xsd:restriction>
            </xsd:simpleType>
            <xsd:simpleType name="char20">
                <xsd:restriction base="xsd:string">
                    <xsd:maxLength value="20"/>
                </xsd:restriction>
            </xsd:simpleType>
            <xsd:simpleType name="char40">
                <xsd:restriction base="xsd:string">
                    <xsd:maxLength value="40"/>
                </xsd:restriction>
            </xsd:simpleType>
            <xsd:simpleType name="char9">
                <xsd:restriction base="xsd:string">
                    <xsd:maxLength value="9"/>
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:schema>
        <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:tns="urn:sap-com:document:sap:soap:functions:mc-style" 
targetNamespace="urn:sap-com:document:sap:soap:functions:mc-style" 
elementFormDefault="unqualified" attributeFormDefault="qualified" 
xmlns:n0="urn:sap-com:document:sap:rfc:functions">
            <xsd:import namespace="urn:sap-com:document:sap:rfc:functions"/>
            <xsd:element name="ZBapiMaterialExistsMatnr">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="AskingSystem" minOccurs="0" 
type="n0:char20"/>
                        <xsd:element name="MatnrIn" minOccurs="0" 
type="n0:char18"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="ZBapiMaterialExistsMatnrResponse">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="MaterialFinnes" type="n0:char1"/>
                        <xsd:element name="NsnidOut" type="n0:char9"/>
                        <xsd:element name="Tekst" type="n0:char40"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:schema>
    </wsdl:types>
    <wsdl:message name="ZBapiMaterialExistsMatnr">
        <wsdl:part name="parameters" element="tns:ZBapiMaterialExistsMatnr"/>
    </wsdl:message>
    <wsdl:message name="ZBapiMaterialExistsMatnrResponse">
        <wsdl:part name="parameters" 
element="tns:ZBapiMaterialExistsMatnrResponse"/>
    </wsdl:message>
    <wsdl:portType name="ZMM_MAT_EXIST_MATNR">
        <wsdl:operation name="ZBapiMaterialExistsMatnr">
            <wsdl:input message="tns:ZBapiMaterialExistsMatnr"/>
            <wsdl:output message="tns:ZBapiMaterialExistsMatnrResponse"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="ZMM_MAT_EXIST_MATNRSoapBinding" 
type="tns:ZMM_MAT_EXIST_MATNR">
        <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="ZBapiMaterialExistsMatnr">
            <soap:operation soapAction=""/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="ZMM_MAT_EXIST_MATNRService">
        <wsdl:port name="ZMM_MAT_EXIST_MATNRSoapBinding" 
binding="tns:ZMM_MAT_EXIST_MATNRSoapBinding">
            <soap:address 
location="http://glfsa003.fif.mil.no:8004/sap/bc/srt/rfc/sap/ZMM_MAT_EXIST_MATNR?sap-client=116"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

Reply via email to