Hello there,

I am confused on some

@WebService
public interface CustomerService  {
    @WebResult(name="customers")
    public Customers getCustomers();
}

Customers is the wrapper class for Customer. (ignore the implement class)

This is my server:

        JaxWsServerFactoryBean sf = new JaxWsServerFactoryBean();
        sf.setServiceClass(CustomerService.class);
        sf.setAddress("http://localhost:8080/soap";);
        sf.getServiceFactory().setWrapped(false);
        sf.setServiceClass(CustomerServiceImpl.class);
        sf.create();

This is my client:

        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
        factory.setAddress("http://localhost:8080/soap";);
        factory.setServiceClass(CustomerService.class);
        CustomerService service = (CustomerService) factory.create();
        service.getCustomers();

When I run the client, I got the following error:

WARNING: Interceptor for {
http://ws2.dgs.alu.com/}CustomerService#{http://ws2.dgs.alu.com/}getCustomershas
thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Unexpected wrapper element {
http://ws2.dgs.alu.com/}customers found.   Expected {
http://ws2.dgs.alu.com/}getCustomersResponse.

I noticed my server sent the following message back:

<soap:Envelope 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";><soap:Body><ns2:customers
xmlns:ns2="http://ws2.dgs.alu.com/
"><customer><id>1</id><name>John</name></customer><customer><id>2</id><name>William</name></customer></ns2:customers></soap:Body></soap:Envelope>

It looks like everything is OK. When I
sf.getServiceFactory().setWrapped(true), this problem was solved, but I want
to custom the wrapper element with <customers> not <getCustomersResponse>

Can anybody tell me how to handle this? I am really appreciated.

Thanks,
William

Reply via email to