Willem,

Thanks. After setting up this on server side, I encountered several problems
for the client setup - so, I was trying few different options:

1. I setup my client configuration to be wsdl first as follow:
        <simple:client id="helloClient" 
    serviceClass="com.comp.HelloWorld"
    address="http://localhost:8080/apps/xml/xhello";
    serviceName="s:HelloWorldService"
    xmlns:s="http://comp.com/";
    wsdlLocation="xhello.wsdl" 
    bindingId="http://cxf.apache.org/bindings/xformat";>    
   </simple:client> 

with this setup, on test execution, I get following error:
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'queryXmlClient': Instantiation of bean failed; nested exception
is org.springframework.beans.factory.BeanDefinitionStoreException: Factory
method [public java.lang.Object
org.apache.cxf.frontend.ClientProxyFactoryBean.create()] threw exception;
nested exception is
org.apache.cxf.service.factory.ServiceConstructionException: Could not find
a matching method for operation {http://comp.com/}sayHi
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException:
Factory method [public java.lang.Object
org.apache.cxf.frontend.ClientProxyFactoryBean.create()] threw exception;
nested exception is
org.apache.cxf.service.factory.ServiceConstructionException: Could not find
a matching method for operation {http://comp.com/}sayHi
Caused by: org.apache.cxf.service.factory.ServiceConstructionException:
Could not find a matching method for operation {http://comp.com/}sayHi
        at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeWSDLOperations(ReflectionServiceFactoryBean.java:324)
        at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:214)


Upon looking at the cxf source code for DefaultServiceConfiguration.java,
seems following lines of code is an issue in getOperationName() method:
if (service.getOperation(name) == null) {
            return name;
        }
seems instead of check for "==null", it should check for "!= null"? Else if
this code is correct, not sure what configuration setup I am missing to make
this work.


2. Since above setup for client didn't work, I tried following in my Test
code directly:

JaxWsProxyFactoryBean sf = new JaxWsProxyFactoryBean();
      sf.setServiceClass(HelloWorld.class);
      sf.getServiceFactory().setWrapped(false);
     
sf.getClientFactoryBean().setBindingId("http://cxf.apache.org/bindings/xformat";);
      sf.setAddress("http://localhost:8080/apps/xml/xhello";);
      sf.setWsdlLocation("xhello.wsdl");
      HelloWorld cs = (HelloWorld)sf.create();

I get following error:
Caused by: org.apache.cxf.BusException: No binding factory for namespace 
registered.
        at
org.apache.cxf.binding.BindingFactoryManagerImpl.getBindingFactory(BindingFactoryManagerImpl.java:82)
        at
org.apache.cxf.frontend.AbstractEndpointFactory.createEndpoint(AbstractEndpointFactory.java:100)
        at
org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:50)

It seems the namespace it is looking for is empty string? What do I need to
do to make the client work but still do wsdl first - meaning set the
WsdlLocation on service factory?

Thanks.


-- 
View this message in context: 
http://www.nabble.com/cxf-plain-xml-http-configuration-using-simple-frontend-tf4591639.html#a13146975
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to