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
> > >>>
> > >
> > >
>

Reply via email to