Usually this issue is cause by a miss-match between the port name and what's 
in the config.  In most cases this is due to missing metadata in the 
@WebServcie annotation of  the SEI causing default names to be created which 
don't match.

You COULD try:
service.getPort(portQname, MyServiceSEI.class);

instead and pass the exact qname in that matches what's in your config.   
Another option could be to use the JaxWsProxyFactoryBean instead:


JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setWsdlLocation(wsdlLocation);
factory.setDataBinding(new JAXBDataBinding(.....));
....
factory.create(MyServiceSEI.class);


Dan



On Friday, June 08, 2012 09:44:18 AM Steffen Krause wrote:
> Hi,
> 
> This is my first post and I hope I'm not asking something that has been
> beaten to death in earlier threads so please apologize if I violate any
> rules.
> 
> I have the following problem:
> 
> My project depends on a JAR that contains a class, which handles the Web
> Service invocation. More specific, this is how it invokes the client:
> 
> ...
> URL serviceURL = new URL("http://dev.host.com/myapp/myservice?wsdl";);
> QName serviceQName = new QName("urn:my:namespace:test", "MyService");
> ...
> Service service = Service.create(serviceURL, serviceQName);
> servicePort = service.getPort(MyServiceSEI.class);
> SomethingResponse response = servicePort.doSomething(somethingRequest);
> ...
> 
> Now the "somethingRequest" object is a JAXB annotated class that is
> provided together with the MyServiceSEI class in the same package. However
> the SomethingRequest class allows for externally defined JAXB annotated
> objects to be be set. Of course the JAXBContext will not know the
> externally defined classes during the marshalling process and throws an
> exception. To solve the issue I created a cxf.xml with the following
> client configuration and added it to the META-INF of my main application
> (not the JAR that contains the client):
> 
> ...
> <jaxws:client name="{urn:my:namespace:test}MyPort" createdFromAPI="true">
>    <jaxws:dataBinding>
>       <bean class="org.apache.cxf.jaxb.JAXBDataBinding">
>          <property name="ExtraClass">
>             <list>
>               
> <value>com.my.external.package.binding.ObjectFactory</value> </list>
>          </property>
>       </bean>
>    </jaxws:dataBinding>
> </jaxws:client>
> ...
> 
> After building, deploying, and testing I still have the exception that
> states that the externally defined class is not part of the JAXBContext.
> 
> What am I missing/doing wrong?
> 
> Thanks,
> 
> Steffen
-- 
Daniel Kulp
[email protected] - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com

Reply via email to