Two thoughts:

1) Definitely upgrade to CXF 2.2.2 or at least 2.1.5.    We're going to stop 
supporting 2.0.x very soon. (July)   Also 2.1 clarified some of the namespace 
mapping/handling a bit better so that alone might fix it.

2)  In the wsdl returned from: 
http://localhost:8080/net.atos.xastory.csm.contract.CatalogueStockManagementService?wsdl
what does the schema say for the elementFormDefault?   If it says "qualified", 
then the Axis2 message is wrong.  
 
You MAY be able to get them to work together if you add a @WebParam annotation 
like:
net.atos.xastory.csm.contract.WithdrawProductOutput withdrawProducts(
        @WebParam(name = "input", targetNamespace="urn:xastory:csm:contract")
         net.atos.xastory.csm.contract.WithdrawProductInput input)

Dan


On Thu June 18 2009 9:55:12 am Jonathan Macke wrote:
> Hi,
>
> I wrote a simple service using the JAX-WS API.
>
> @WebService(targetNamespace = "urn:xastory:csm:contract")
> public interface CatalogueStockManagementService {
>
>       @WebMethod
>       net.atos.xastory.csm.contract.WithdrawProductOutput withdrawProducts(
>                       net.atos.xastory.csm.contract.WithdrawProductInput 
> input)
>                       throws net.atos.xastory.csm.contract.ServiceException;
> }
>
> Technical Environment:
> - CXF 2.0.11
> - Tomcat 5.5
> - JAXB 2.0
>
>
> I tried to used this service with a Axis2-based client using JAX-WS.
>
> @Test
> public void testAxis2Jaxws() throws Exception{
>
>       URL wsdl = new
> URL("http://localhost:8080/net.atos.xastory.csm.contract.CatalogueStockMana
>gementService?wsdl");
>
>       QName qname = new QName("http://provider.csm.xastory.atos.net/";,
> "CatalogueStockManagementServiceImplService");
>       Service service = Service.create(wsdl, qname);
>
>       CatalogueStockManagementService catalogueService =
> service.getPort(CatalogueStockManagementService.class);
>
>       WithdrawProductInput input = new WithdrawProductInput();
>
>       //fill the input object
>
>       WithdrawProductOutput output = catalogueService.withdrawProducts(input);
>
> }
>
> From the server side, input is null. I tried with a CXF-based client, I'm
> getting the input properly filled.
>
>
> Here is the SOAP request generated by the CXF client:
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
>       <soap:Body>
>             <ns1:withdrawProducts xmlns:ns1="urn:xastory:csm:contract">
>                   <arg0 xmlns="urn:xastory:csm:contract">
>                         <products>
>                              <externalReference>2</externalReference>
>                              <quantity>3</quantity>
>                              <currentPrice>
>                                    <amount>12.0</amount>
>                                    <currency>EUR</currency>
>                              </currentPrice>
>                              <taxes>
>                                    <percentage>20</percentage>
>                                    <taxType>taxType</taxType>
>                              </taxes>
>                         </products>
>                   </arg0>
>             </ns1:withdrawProducts>
>       </soap:Body>
> </soap:Envelope>
>
> Here is the SOAP request generated by the Axis2 client:
> <?xml version='1.0' encoding='UTF-8'?>
> <soapenv:Envelope
>       xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
>       <soapenv:Body>
>             <dlwmin:withdrawProducts
>                   xmlns:dlwmin="urn:xastory:csm:contract">
>                   <arg0 xmlns="">
>                         <dlwmin:products>
>
> <dlwmin:externalReference>2</dlwmin:externalReference>
>                              <dlwmin:quantity>3</dlwmin:quantity>
>                              <dlwmin:currentPrice>
>                                    <dlwmin:amount>12.0</dlwmin:amount>
>                                    <dlwmin:currency>EUR</dlwmin:currency>
>                              </dlwmin:currentPrice>
>                              <dlwmin:taxes>
>                                   
> <dlwmin:percentage>20</dlwmin:percentage>
> <dlwmin:taxType>taxType</dlwmin:taxType> </dlwmin:taxes>
>                         </dlwmin:products>
>                   </arg0>
>             </dlwmin:withdrawProducts>
>       </soapenv:Body>
> </soapenv:Envelope>
>
> In Axis2 the xmlns attribute is empty for the arg0 element. CXF seems not
> able to treat requests with an empty xmlns in the arg0 element.
>
> Do you have any idea to solve this problem?
>
>
> Jonathan

-- 
Daniel Kulp
[email protected]
http://www.dankulp.com/blog

Reply via email to