Hello everybody,
I'm newbye with apache cxf, and I'm facing a problem while executing a webservice developed by cxf. It apparenrtly seems to be an error of data-binding since it's giving a marshalling error. Here are the code of the different classes and config files: Beans.xml <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.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <jaxws:endpoint id="orderProcess1" implementor="com.Test.lecarnet.services.cxfServer.WSDeleteServiceImpl" address="/OrderProcess" /> </beans> Cxf-client.xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:soap="http://cxf.apache.org/bindings/soap" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <jaxws:client id="WSClientDeleteService" serviceClass="com.Test.lecarnet.services.cxfClient.WSClientDeleteService " address="http://localhost:8080/WS_cxf-web/services/WSDeleteService?wsdl" /> <bean id="client" class="com.Test.lecarnet.services.cxfServer.WSDeleteService" factory-bean="clientFactory" factory-method="create"/> <bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"> <property name="serviceClass" value="com.Test.lecarnet.services.cxfServer.WSDeleteService"/> <property name="address" value="http://localhost:8080/WS_cxf-web/services/WSDeleteService"/> </bean> </beans> Client public boolean collaborateurDelete( com.Test.lecarnet.business.businessObjects.CollaborateurBO collaborateur) throws ApplicationException { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( new String[] { "cxf-client.xml" }); WSDeleteService client = (WSDeleteService) context.getBean("client"); try { return client.collaborateurDelete(collaborateur); } catch (Exception e) { throw new ApplicationException(e); } } Server @WebService(endpointInterface = "com.Test.lecarnet.services.cxfServer.WSDeleteService") public class WSDeleteServiceImpl implements WSDeleteService { private com.Test.lecarnet.services.ServiceCollaborateurDelete serviceImplementation = new com.Test.lecarnet.services.ServiceCollaborateurDelete(); public boolean collaborateurDelete( com.Test.lecarnet.business.businessObjects.CollaborateurBO collaborateur) throws ApplicationException { return serviceImplementation.collaborateurDelete(collaborateur); } } And here is the stack-trace of the error: INFO: Application {http://cxfServer.services.lecarnet.Test.com/}WSDeleteServiceService#{ht tp://cxfServer.services.lecarnet.Test.com/}collaborateurDelete has thrown exception, unwinding now: com.core.exception.UnexpectedException: null 4 mai 2010 15:52:32 org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging ATTENTION: Interceptor for {http://cxfServer.services.lecarnet.Test.com/}WSDeleteServiceService#{ht tp://cxfServer.services.lecarnet.Test.com/}collaborateurDelete has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: Marshalling Error: com.core.business.IBusinessObject is not known to this context at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshallException(JAXBEncoderDe coder.java:437) at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.jav a:488) at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:113) at org.apache.cxf.interceptor.ClientFaultConverter.processFaultDetail(Clien tFaultConverter.java:131) at org.apache.cxf.interceptor.ClientFaultConverter.handleMessage(ClientFaul tConverter.java:74) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC hain.java:243) at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage (AbstractFaultChainInitiatorObserver.java:96) at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMess age(CheckFaultInterceptor.java:69) at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMess age(CheckFaultInterceptor.java:34) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC hain.java:243) at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:665) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResp onseInternal(HTTPConduit.java:2160) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResp onse(HTTPConduit.java:2043) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTP Conduit.java:1941) at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66) at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:629) at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingI nterceptor.handleMessage(MessageSenderInterceptor.java:62) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC hain.java:243) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:479) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:309) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:261) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:127) at $Proxy70.collaborateurDelete(Unknown Source) at com.Test.lecarnet.services.WSClientDeleteService.collaborateurDelete(WSC lientDeleteService.java:21) at com.Test.lecarnet.mockup.presentation.webcarnet.CAfficherResultatRecherc heServiceController.collaborateurDelete(CAfficherResultatRechercheServic eController.java:55) at com.Test.lecarnet.mockup.presentation.webcarnet.CAfficherResultatRecherc heServiceControllerImpl.execute_CollabDelete(CAfficherResultatRechercheS erviceControllerImpl.java:216) at com.Test.lecarnet.mockup.presentation.webcarnet.CAfficherResultatRecherc heServiceControllerImpl.handle_LnkDelete(CAfficherResultatRechercheServi ceControllerImpl.java:181) at com.Test.lecarnet.mockup.presentation.webcarnet.CAfficherResultatRecherc heServiceControllerImpl.doService(CAfficherResultatRechercheServiceContr ollerImpl.java:163) at com.core.application.AppController.action(AppController.java:293) at com.core.application.AppController.process(AppController.java:94) at com.core.presentation.screen.bean.JsfBaseBean.handleATU(JsfBaseBean.java :45) at com.Test.lecarnet.mockup.presentation.webcarnet.CAfficherResultatRecherc he.lnk_delete_Click(CAfficherResultatRecherche.java:201) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:12 9) at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionLi stenerImpl.java:63) at javax.faces.component.UICommand.broadcast(UICommand.java:106) at javax.faces.component.UIData.broadcast(UIData.java:513) at org.ajax4jsf.framework.ajax.AjaxViewRoot.processEvents(AjaxViewRoot.java :180) at org.ajax4jsf.framework.ajax.AjaxViewRoot.broadcastEvents(AjaxViewRoot.ja va:158) at org.ajax4jsf.framework.ajax.JsfOneOneInvoker.invokeOnRegionOrRoot(JsfOne OneInvoker.java:62) at org.ajax4jsf.framework.ajax.AjaxContext.invokeOnRegionOrRoot(AjaxContext .java:176) at org.ajax4jsf.framework.ajax.AjaxViewRoot.processDecodes(AjaxViewRoot.jav a:267) at org.apache.myfaces.lifecycle.LifecycleImpl.applyRequestValues(LifecycleI mpl.java:219) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:71 ) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:137) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:188) at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLF ilter.java:96) at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.jav a:220) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:188) at com.core.persistence.HibernateSessionRequestFilter.doFilter(HibernateSes sionRequestFilter.java:32) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv e.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv e.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java :127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java :117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1 51) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:87 4) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.proc essConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint .java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow erWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool .java:689) at java.lang.Thread.run(Unknown Source) Caused by: javax.xml.bind.JAXBException: com.core.business.IBusinessObject is not known to this context at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getBeanInfo(JAXBContextImpl. java:597) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.getBeanInfo(Un marshallerImpl.java:535) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(Unma rshallerImpl.java:339) at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshallException(JAXBEncoderDe coder.java:430) ... 69 more For the IBusinessObject, it's an intreface implemented by my objects, here is its code: public interface IBusinessObject extends Serializable { public void setObjMode(String mode); public String getObjMode(); public static final String DAO_MODE = "dao"; public static final String HELPER_MODE = "helper"; } Please let me know what is wrong in my cxf implemtation. Any help is welcomed. Thanks in advance. m.ettaib
