Thanks for the reply. Here is the spring logging for the service: Aug 29, 2007 1:10:38 PM org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass INFO: Creating Service {http://metadata.soap.quaris.com/}MetadataService from class com.quaris.soap.metadata.Metadata
There is also this bit, could this be relevant? INFO: Bean 'cxf' is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) Aug 29, 2007 1:10:37 PM org.springframework.context.support.AbstractApplicationContext$BeanPostProcessorChecker postProcessAfterInitialization INFO: Bean 'org.apache.cxf.bus.spring.BusExtensionPostProcessor' is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) The spring configuration is the following: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schema/jaxws.xsd"> <bean id="Metadata" class="com.quaris.soap.metadata.Metadata" factory-bean="MetadataFactory" factory-method="create"/> <bean id="MetadataFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"> <property name="serviceClass" value="com.quaris.soap.metadata.Metadata"/> <property name="address" value="http://localhost:8080/qproxy/Metadata"/> </bean> </beans> Daniel Kulp wrote: > Chris, > > You didn't by any chance use a wsdlLocation or similar in the spring > config? Check the INFO level logging when running with spring and see > if it says: > INFO: Creating Service {http://metadata.soap.quaris.com/}Metadata > from class com.quaris.soap.metadata.Metadata > or "from WSDL". (you didn't include the spring config fragment) > > It looks like since a WSDL isn't available, it's using the default code > first stuff, which with the simple frontend, names the args arg##. The > error suggests the server got arg00, but was expecting something else. > > Dan > > > > On Wednesday 29 August 2007, Chris Campbell wrote: >> I am sure I am misunderstanding something here, but if I setup a >> client with spring, all seems to be well. If I setup a client with >> ClientProxyFactoryBean, I think I am missing some settings, but >> cannot tell what. >> >> ClassPathXmlApplicationContext context = new >> ClassPathXmlApplicationContext(new String[] >> {"com/quaris/soap/sample/client-beans.xml"}); >> Metadata client = (Metadata)context.getBean("Metadata"); >> NGramList list = client.getNGrams(); >> >> all is fine... However, now I cannot figure out how to change the >> settings in client-beans.xml programatically, like the address of >> the service, or username/password. So I try ClientProxyFactoryBean >> as in the examples and I get this error: >> >> >> ClientProxyFactoryBean factory = new ClientProxyFactoryBean(); >> factory.setServiceClass(Metadata.class); >> factory.setAddress("http://localhost:8080/qproxy/Metadata"); >> Metadata client = (Metadata) factory.create(); >> NGramList list = client.getNGrams(); >> >> INFO: Creating Service {http://metadata.soap.quaris.com/}Metadata >> from class com.quaris.soap.metadata.Metadata >> Exception in thread "main" org.apache.cxf.binding.soap.SoapFault: >> Parameter {http://metadata.soap.quaris.com/}arg00 does not exist! >> at >> org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handl >> eMessage(Soap11FaultInInterceptor.java:69) at >> org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handl >> eMessage(Soap11FaultInInterceptor.java:36) at >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto >> rChain.java:206) at >> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessa >> ge(AbstractFaultChainInitiatorObserver.java:86) at >> org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleM >> essage(ReadHeadersInterceptor.java:178) at >> org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleM >> essage(ReadHeadersInterceptor.java:57) at >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto >> rChain.java:206) at >> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:399) at >> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRe >> sponse(HTTPConduit.java:1830) at >> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HT >> TPConduit.java:1698) at >> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66 >> ) at >> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndin >> gInterceptor.handleMessage(MessageSenderInterceptor.java:62) at >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto >> rChain.java:206) at >> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:253) at >> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:204) at >> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) at >> org.apache.cxf.frontend.ClientProxy.invoke(ClientProxy.java:68) at >> $Proxy19.getNGrams(Unknown Source) >> at com.quaris.soap.sample.Client2.main(Client2.java:16) > > >