Has anyone looked into this? I'm pretty sure this is a bug which makes it impossible to use an Aegis binding while using @WebFault. As mentioned in the original post this is happening because Node.class is not being checked for in AegisDatabinding.createWriter().
Any ideas? Zarar Siddiqi wrote: > > I've created a JIRA for this: > > https://issues.apache.org/jira/browse/CXF-896 > > Has anyone gotten Aegis + @WebFault to work together? > > > > > > > Zarar Siddiqi wrote: >> >> Hi, >> >> I'm getting an UnsupportedOperationException using Aegis binding and >> JAX-WS frontend. Here's my setup starting with the Spring beans: >> >> <bean id="aegisBean" >> class="org.apache.cxf.aegis.databinding.AegisDatabinding"/> >> >> <jaxws:endpoint >> id="sportsServiceEndpoint" >> implementor="#sportsService" >> address="/SportsService"> >> <jaxws:serviceFactory> >> <bean >> class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean"> >> <property name="dataBinding" ref="aegisBean"/> >> <property name="serviceConfigurations"> >> <list> >> <bean >> class="org.apache.cxf.jaxws.support.JaxWsServiceConfiguration"/> >> <bean >> class="org.apache.cxf.aegis.databinding.AegisServiceConfiguration"/> >> <bean >> class="org.apache.cxf.service.factory.DefaultServiceConfiguration"/> >> </list> >> </property> >> </bean> >> </jaxws:serviceFactory> >> </jaxws:endpoint> >> >> >> Here's the exception class: >> >> @WebFault(name="WebServiceException") >> public class WebServiceException extends RuntimeException { >> >> // constructors hidden for brevity >> >> public Object getFaultInfo() { .... } >> >> } >> >> Here's the stacktrace: >> >> java.lang.UnsupportedOperationException >> at >> org.apache.cxf.aegis.databinding.AegisDatabinding.createWriter(AegisDatabinding.java:109) >> at >> org.apache.cxf.jaxws.interceptors.WebFaultOutInterceptor.handleMessage(WebFaultOutInterceptor.java:82) >> at >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207) >> at >> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:90) >> at >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:224) >> 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:231) >> >> >> I can actually see this exception coming. In >> WebFaultOutInterceptor.handleMessage() the line >> >> DataWriter writer = service.getDataBinding().createWriter(Node.class) ; >> >> invokes AegisDatabinding.createWriter() where Node.class isn't being >> looked for: >> >> public <T> DataWriter<T> createWriter(Class<T> cls) { >> if (cls.equals(XMLStreamWriter.class)) { >> return (DataWriter<T>)new XMLStreamDataWriter(this); >> } else { >> throw new UnsupportedOperationException(); >> } >> } >> >> Any ideas how to avoid this exception? Is my configuration wrong or is >> this a bug? >> >> Thanks, >> Zarar >> > > -- View this message in context: http://www.nabble.com/UnsupportedOperationException-when-using-%40WebFault-with-Aegis-binding-tf4231074.html#a12616012 Sent from the cxf-user mailing list archive at Nabble.com.
