Hi Brad, Any chance you could at least attach your complete spring configuration? I think the config you outlined should work, but I would like to see more. Of course a test case would be welcome too :-)
- Dan On 7/27/07, Brad Harper <[EMAIL PROTECTED]> wrote: > > The snapshot and adding @ResponseWrappers solved my service issues as long > as I use a client other than CXF. I've testing utilities I can use for > now. My main issue is when I enable my transaction advice. Simply > enabling > this section in my config causes 4 of my 10 services to fail with the > exception listed below: > > <aop:config> > <aop:advisor id="serviceTx" advice-ref="txAdvice" > pointcut="execution(* *..service..*.*(..))" order="0"/> > </aop:config> > > > <tx:advice id="txAdvice"> > <tx:attributes> > <tx:method name="find*" read-only="true"/> > <tx:method name="*"/> > </tx:attributes> > </tx:advice> > > > All of the services are configured identically.... which is puzzling why > the > certain 4 fail. > > INFO: Interceptor has thrown exception, unwinding now > org.apache.cxf.interceptor.Fault: Marshalling Error: > com.gdservices.model.thirdparty.TpMat is not known to this context > at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall( > JAXBEncoderDecoder.java:170) > at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java > :42) > at > org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts( > AbstractOutDatabindingInterceptor.jav > a:92) > at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage( > BareOutInterceptor.java:68) > at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept( > PhaseInterceptorChain.java:207) > at > org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage > (OutgoingChainInterceptor.java:73) > at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept( > PhaseInterceptorChain.java:207) > at org.apache.cxf.transport.ChainInitiationObserver.onMessage( > ChainInitiationObserver.java:73) > at org.apache.cxf.transport.servlet.ServletDestination.doMessage( > ServletDestination.java:78) > at > org.apache.cxf.transport.servlet.ServletController.invokeDestination( > ServletController.java:224) > at org.apache.cxf.transport.servlet.ServletController.invoke( > ServletController.java:137) > at org.apache.cxf.transport.servlet.CXFServlet.invoke( > CXFServlet.java:271) > at org.apache.cxf.transport.servlet.CXFServlet.doPost( > CXFServlet.java:249) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:290) > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:206) > at org.apache.catalina.core.StandardWrapperValve.invoke( > StandardWrapperValve.java:230) > at org.apache.catalina.core.StandardContextValve.invoke( > StandardContextValve.java:175) > at org.apache.catalina.core.StandardHostValve.invoke( > StandardHostValve.java:128) > at org.apache.catalina.valves.ErrorReportValve.invoke( > ErrorReportValve.java:104) > at org.apache.catalina.core.StandardEngineValve.invoke( > StandardEngineValve.java:109) > at org.apache.catalina.connector.CoyoteAdapter.service( > CoyoteAdapter.java:261) > at org.apache.coyote.http11.Http11Processor.process( > Http11Processor.java:844) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process( > Http11Protocol.java:581) > at org.apache.tomcat.util.net.JIoEndpoint$Worker.run( > JIoEndpoint.java:447) > at java.lang.Thread.run(Thread.java:595) > Caused by: javax.xml.bind.MarshalException > > > Any suggestions on how to handle my transactions? Should my config above > work? > > One key I've found is for List<Object> return types on my service > interface, > the ResponseWrapper classname attribute value needed to be the Object type > of the list... like below. > > @WebMethod(operationName = "getAllProducts") > @ResponseWrapper(targetNamespace = " > http://catalogService.service.gdservices.com", > className = "com.gdservices.service.thirdparty.ProductSummary > ") > @WebResult(targetNamespace = " > http://catalogService.service.gdservices.com", > name = "products") > List<ProductSummary> getAllProducts(Long userId, Integer detailLevel) > throws ServiceException; > > This may be in the docs, but I may have overlooked it... may help somebody > out though. > > Thanks for your time. > > > On 7/27/07, Daniel Kulp <[EMAIL PROTECTED]> wrote: > > > > On Friday 27 July 2007 11:36, Brad Harper wrote: > > > CXF:wsdl2java creates the client side version of this object... what > > > am I missing so that it'll unmarshalled correctly? > > > > This is probably also fixed in the latest SNAPSHOT (or by using the > > wrappers objects). > > > > -- > > J. Daniel Kulp > > Principal Engineer > > IONA > > P: 781-902-8727 C: 508-380-7194 > > [EMAIL PROTECTED] > > http://www.dankulp.com/blog > > > -- Dan Diephouse Envoi Solutions http://envoisolutions.com | http://netzooid.com/blog
