I'm out of my depth given the Camel connection, so I have to defer to Willem.
On Fri, Nov 14, 2008 at 12:23 PM, Marc Giger <[EMAIL PROTECTED]> wrote: > Hi Willem, > > Yes, the class itself and any service methods are annotated. > > @javax.jws.WebService(name = "SalaryDeclarationPort", serviceName = > "SalaryDeclarationService", portName = "SalaryDeclaration", > targetNamespace = > "http://www.swissdec.ch/schema/sd/20051002/SalaryDeclarationService", > endpointInterface = > "ch.swissdec.schema.sd._20051002.salarydeclarationservice.SalaryDeclarationPort") > public class SalaryDeclarationServiceImpl implements > SalaryDeclarationPort { > ... > > @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE) > @WebResult(name = "PingResponse", targetNamespace = > "http://www.swissdec.ch/schema/sd/20051002/SalaryDeclarationServiceTypes", > partName = "parameters") @WebMethod(operationName = "Ping") public > PingType ping(@WebParam(partName = "parameters", name= "Ping", > targetNamespace = > "http://www.swissdec.ch/schema/sd/20051002/SalaryDeclarationServiceTypes") > PingType parameters) { > ... > > In my case the ReflectionServiceFactoryBean tries to setup my service > although I have annotated the service: > Caused by: > org.apache.cxf.service.factory.ServiceConstructionException: Service > class > ch.itserve.lohnstandard.refapps2.receiver.ws20051002.service.SalaryDeclarationServiceImpl > method setTransformer part > {http://www.swissdec.ch/schema/sd/20051002/SalaryDeclarationService}setTransformer > cannot be mapped to schema. Check for use of a JAX-WS-specific type > without the JAX-WS service factory bean. at > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createBareMessage(ReflectionServiceFactoryBean.java:969) > at > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:343) > > Further ideas? > > Thanks > > Marc > > > On Fri, 14 Nov 2008 23:38:45 +0800 > Willem Jiang <[EMAIL PROTECTED]> wrote: > >> Hi Marc, >> >> Does the >> ch.itserve.lohnstandard.refapps2.receiver.ws20051002.service.SalaryDeclarationServiceImpl >> has any JAXWS annotation ? >> If not , camel-cxf component will using the >> RelectionServiceFactoryBean instead of JaxWsServiceFactoryBean to >> create the service. >> >> Willem >> >> Marc Giger wrote: >> > Hi Benson >> > >> > My setup (with camel-routing) :-) >> > Any ideas? >> > >> > Thank you! >> > >> > Marc >> > >> > <bean id="salaryDeclarationServiceImpl" >> > >> > class="ch.itserve.lohnstandard.refapps2.receiver.ws20051002.service.SalaryDeclarationServiceImpl"> >> > <property name="userConfig" ref="userConfig"/> >> > <property name="messageStore" ref="messageStore"/> >> > <property name="resourceLoader" >> > ref="defaultResourceLoader"/> <property name="transformer" >> > ref="xslTransformer"/> <property name="logStore" ref="logStore"/> >> > <property name="defaultUser" ref="defaultUserInstance"/> >> > <property name="wsUtils20051002" ref="wsUtils"/> >> > </bean> >> > >> > <cxf:cxfEndpoint id="routerEndpoint" >> > address="/SalaryDeclarationService" >> > serviceClass="ch.itserve.lohnstandard.refapps2.receiver.ws20051002.service.SalaryDeclarationServiceImpl"> >> > <cxf:outFaultInterceptors> <ref >> > bean="prepareMessageStoreFaultOutInterceptor"/> <ref >> > bean="messageStoreFaultOutInterceptor"/> </cxf:outFaultInterceptors> >> > </cxf:cxfEndpoint> >> > >> > <jaxws:endpoint id="salaryDeclarationServiceJAXWS" >> > implementor="#salaryDeclarationServiceImpl" >> > address="local://SalaryDeclarationServiceJAXWS"> >> > <jaxws:inInterceptors> <bean >> > class="ch.itserve.lohnstandard.refapps2.shared.webservice.server.interceptors.IDInInterceptor"/> >> > <bean >> > class="ch.itserve.lohnstandard.refapps2.shared.webservice.server.interceptors.RemoveInterceptorsInterceptor"/> >> > <ref bean="wss4jInSignatureInterceptor"/> <ref >> > bean="eivWebInInterceptor"/> </jaxws:inInterceptors> >> > <jaxws:outInterceptors> <bean >> > class="org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor"/> <ref >> > bean="wss4jOutSignatureInterceptor"/> <ref >> > bean="tamperSignatureOutInterceptor"/> <ref >> > bean="messageStoreAfterSignatureOutInterceptor"/> <ref >> > bean="wss4JOutEncryptInterceptor"/> <ref >> > bean="tamperEncryptionOutInterceptor"/> <ref >> > bean="messageStoreAfterEnctyptionOutInterceptor"/> >> > </jaxws:outInterceptors> <jaxws:outFaultInterceptors> >> > <ref bean="faultCatcherOutInterceptor"/> >> > <ref bean="prepareMessageStoreFaultOutInterceptor"/> >> > <ref bean="messageStoreFaultOutInterceptor"/> >> > </jaxws:outFaultInterceptors> >> > <jaxws:properties> >> > <entry key="schema-validation-enabled" value="true"/> >> > </jaxws:properties> >> > <jaxws:schemaLocations> >> > >> > <jaxws:schemaLocation>wsdl/SalaryDeclaration.xsd</jaxws:schemaLocation> >> > >> > <jaxws:schemaLocation>wsdl/SalaryDeclarationContainer.xsd</jaxws:schemaLocation> >> > >> > <jaxws:schemaLocation>wsdl/SalaryDeclarationServiceTypes.xsd</jaxws:schemaLocation> >> > </jaxws:schemaLocations> >> > </jaxws:endpoint> >> > >> > <cxf:cxfEndpoint id="localEndpoint" >> > address="local://SalaryDeclarationServiceJAXWS" >> > transportId="http://cxf.apache.org/transports/local" >> > wsdlURL="wsdl/wsdl/SalaryDeclarationService.wsdl" >> > serviceClass="ch.itserve.lohnstandard.refapps2.receiver.ws20051002.service.SalaryDeclarationServiceImpl" >> > endpointName="s:SalaryDeclaration" >> > serviceName="s:SalaryDeclarationService" >> > xmlns:s="http://www.swissdec.ch/schema/sd/20051002/SalaryDeclarationService"> >> > <cxf:properties> <entry >> > key="org.apache.cxf.transport.local.LocalConduit.directDispatch"> >> > <value type="java.lang.Boolean">true</value> </entry> >> > </cxf:properties> >> > </cxf:cxfEndpoint> >> > >> > >> > On Fri, 14 Nov 2008 08:14:03 -0500 >> > "Benson Margulies" <[EMAIL PROTECTED]> wrote: >> > >> >> This suggests that you are using Holder or something like it with >> >> the wrong configuration. Details? >> >> >> >> On Fri, Nov 14, 2008 at 8:10 AM, Marc Giger <[EMAIL PROTECTED]> >> >> wrote: >> >>> Hi all, >> >>> >> >>> I've tried to upgrade cxf from 2.0.7 to cxf 2.0.9 >> >>> and hit the following error on startup: >> >>> >> >>> "Message part {0} of Message {1} cannot be processed. This can be >> >>> caused by the use of JAX-WS-specific types without the JAX-WS >> >>> service factory bean." >> >>> >> >>> This new check was introduced in commit 688596. What is the >> >>> reason behind that? >> >>> >> >>> My service class has some public setter methods for spring >> >>> dependency injection, where it fails now because these methods >> >>> aren't ws-service specific methods. >> >>> >> >>> What is the correct solution now? >> >>> >> >>> Thanks! >> >>> >> >>> Marc >> >>> >> > >> > >
