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#a12037196
Sent from the cxf-user mailing list archive at Nabble.com.