cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From James Mao <james....@iona.com>
Subject Re: Problem invoking on RPC/Literal WSDL
Date Tue, 21 Nov 2006 02:18:32 GMT
Hi Seumas,

For a JaxWs server i don't think it's necessary  for a user to use the 
JaxWsServiceFactoryBean to setup a server, can you explain why?

We do have a demo under samples dir in the latest kit, and it show us 
the three well known operation, sayHi() greetMe(String)  
sendReceiveData(ComplexType)
Demo name is hello_world_RPCLit, i think the sayHi operation has no 
input as well.
But  i don't know if it's wsdl also looks same or similar.
So can you  provide the wsdl and also create a jira issue.

I also met a strange RPC/Lit problem myself when i pair with a STP guy, 
the wsdl used fine in the kit, but fail in the Eclipse.

Thanks,
James.
> I have set up a Server using the following code:
>
>         JaxWsServiceFactoryBean serviceFactory = new JaxWsServiceFactoryBean();
>         serviceFactory.setBus(bus);
>         serviceFactory.setInvoker(new JAXWSMethodInvoker(impl));
>         serviceFactory.setServiceClass(impl.getClass());
>         serviceFactory.setWsdlURL(wsdlLoc);
>
>
>         JaxWsServerFactoryBean serverFactory = new JaxWsServerFactoryBean();
>         serverFactory.setServiceFactory(serviceFactory);
>         serverFactory.setBus(bus);
>         serverFactory.setEndpointName(new QName(portName));
>         serverFactory.setAddress(address);
>         serverFactory.setServiceClass(impl.getClass());
>         serverFactory.create();
>
> The following code in BareInInterceptor is throwing an exception:
>
>             if (msgInfo != null && msgInfo.getMessageParts() != null) {
>                 assert msgInfo.getMessageParts().size() > paramNum;
>                 p = msgInfo.getMessageParts().get(paramNum);
>             } else {
>                 p = findMessagePart(exchange, ops, elName, client, paramNum);
>             }
>
>             if (p == null) {
>  ----->               throw new Fault(new org.apache.cxf.common.i18n.Message("NO_PART_FOUND",
BUNDLE, elName));
>             }
>
> The problem seems to stem from the following code in the AbstractPhaseInterceptor::findMessageParts()
call:
>
>             Collection bodyParts = msgInfo.getMessageParts();
>             if (bodyParts.size() == 0 || bodyParts.size() <= index) {
>                 itr.remove();
>                 continue;
>             }
>
> The Web service call is RPC/Literal and there are no IN parts defined in the message
defined in the WSDL, so this code passes over the correct operation that it is looking for.
>
> I have a feeling that the problem I am seeing is related to the fact that I am using
a RPC/Literal WSDL. Other WSDLs that are Doc/Literal do not seem to have this problem.
>
> Any ideas what is going on?
>
> Thanks,
> Seumas
>
>
>
>
>   


Mime
View raw message