It is strang, which version of camel are you using ? Can you try to set the service class to be SalaryDeclarationPort ? There may be something wrong with the ReflectionServiceFactoryBean when it is looking up the SEI. Can you submit a small unit test to a Camel JIRA[1] ? we can dig the code for the real reason.
[1]http://issues.apache.org/activemq/browse/CAMEL Willem On Sat, Nov 15, 2008 at 1:23 AM, 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<http://www.swissdec.ch/schema/sd/20051002/SalaryDeclarationService%7DsetTransformer> > 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 > > >>> > > > > > > >
