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.