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.

Reply via email to