I am using cxf 2.2.1 for my soap ws.
I have a java first approach.
*Here is the endpoint declaration:*
<jaxws:endpoint id="transactionWebService"
implementor="#transactionServiceEndpoint"
address="/TransactionService">
<jaxws:inInterceptors>
<ref bean="logInbound"/>
<bean
class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/>
<bean
class="com.soap.webservice.security.TimeStampedWSS4JInterceptor">
<constructor-arg>
<map>
<entry key="action" value="UsernameToken
Timestamp"/>
<entry key="passwordType" value="PasswordText"/>
<entry key="passwordCallbackRef">
<ref bean="authHandler"/>
</entry>
</map>
</constructor-arg>
</bean>
</jaxws:inInterceptors>
<jaxws:outInterceptors>
<ref bean="logOutbound"/>
</jaxws:outInterceptors>
<jaxws:properties>
<entry key="schema-validation-enabled" value="true"/>
</jaxws:properties>
<jaxws:schemaLocations>
<jaxws:schemaLocation>/WEB-INF/Schema.xsd</jaxws:schemaLocation>
</jaxws:schemaLocations>
</jaxws:endpoint>
*Here are snippets from my xsd:*
<xs:element name="ResolveAddressResult" type="tns:resolveAddressResult"/>
<xs:element name="resolveAddress" type="tns:resolveAddress"/>
<xs:element name="resolveAddressResponse"
type="tns:resolveAddressResponse"/>
<xs:complexType name="address">
<xs:sequence>
<xs:element minOccurs="0" name="address1" nillable="true"
type="xs:string"/>
<xs:element name="address2" type="xs:string"/>
<xs:element minOccurs="0" name="country" nillable="true"
type="xs:string"/>
<xs:element minOccurs="0" name="fullCode" nillable="true"
type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="locations"
nillable="true" type="xs:string"/>
<xs:element name="latitude" nillable="true" type="xs:double"/>
<xs:element name="longitude" nillable="true" type="xs:double"/>
<xs:element minOccurs="0" name="resolvedDate" nillable="true"
type="xs:dateTime"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="resolveAddress">
<xs:sequence>
<xs:element minOccurs="0" name="Address" type="tns:address"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="resolveAddressResponse">
<xs:sequence>
<xs:element minOccurs="0" name="ResolveAddressResult"
type="tns:resolveAddressResult"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="resolveAddressResult">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="locations"
nillable="true" type="tns:location"/>
<xs:element minOccurs="0" name="resolvedAddress"
type="tns:fullAddress"/>
<xs:element minOccurs="0" name="resultType"
type="tns:resolveAddressResultType"/>
</xs:sequence>
</xs:complexType>
*Here are some snippets from my wsdl:*
<wsdl:message name="resolveAddressResponse">
<wsdl:part name="parameters" element="tns:resolveAddressResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="resolveAddress">
<wsdl:part name="parameters" element="tns:resolveAddress">
</wsdl:part>
</wsdl:message>
<wsdl:operation name="resolveAddress">
<wsdl:input name="resolveAddress" message="tns:resolveAddress">
</wsdl:input>
<wsdl:output name="resolveAddressResponse"
message="tns:resolveAddressResponse">
</wsdl:output>
<wsdl:fault name="TransactionException"
message="tns:TransactionException">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="resolveAddress">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="resolveAddress">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="resolveAddressResponse">
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="TransactionException">
<soap:fault name="TransactionException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
*When I try to call the resolveAddress method from soapui, here is what I
pass (username and password are passed in the headers)*
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tran="http://test.webservice.com/transaction">
<soapenv:Header/>
<soapenv:Body>
<tran:resolveAddress>
<Address>
<address1>4 West Park</address1>
<address2>Irvine, CA 92612</address2>
</Address>
</tran:resolveAddress>
</soapenv:Body>
</soapenv:Envelope>
*I get the following error:*
<faultstring>wrong number of arguments while invoking public
com.soap.webservice.api.ResolveAddressResult com. soap.webservice.api.
TransactionServiceEndpoint.resolveAddress(com. soap.webservice.api.Address)
throws com. soap.webservice.api.TransactionException with params
null.</faultstring>
Am I missing anything? My wsdl is generated by cxf on the fly.
Regards,
Jasmina
--
View this message in context:
http://cxf.547215.n5.nabble.com/cxf-2-2-1-schema-validation-throws-error-tp5727471.html
Sent from the cxf-user mailing list archive at Nabble.com.