Hello All, I'm trying to call a web service with Spring+CXF. The result is a
exception java.lang.ClassCastException: org.apache.cxf.message.XMLMessage
cannot be cast to org.apache.cxf.binding.soap.SoapMessage. My configuration
is:


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans";
    xmlns:jaxws="http://cxf.apache.org/jaxws"; xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance";
    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-extension-http-binding.xml"
/>
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

    <bean id="wsclient" class="org.tempuri.IStock" factory-bean="wsFactory"
        factory-method="create" />

    <bean id="wsFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
        <property name="serviceClass" value="org.tempuri.IStock" />
        <property name="address"
            value="http://wss.aduanas.gub.uy/LuciaWsSecurity/Stock.svc"; />
        <property name="outInterceptors">
            <list>
                <bean
class="org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor" />
                <ref bean="wss4jOutInterceptor" />
            </list>
        </property>
        <property name="bindingId" value="http://apache.org/cxf/binding/http";
/>
        <property name="transportId" value="
http://schemas.xmlsoap.org/wsdl/soap/http"; />
    </bean>

    <bean id="wss4jOutInterceptor"
class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor">
        <constructor-arg>
            <map>
                <entry key="action" value="Signature Timestamp" />
                <entry key="signaturePropFile"
value="Client_Sign.properties" />
                <entry key="user"
value="le-60dca1be-6392-48b3-bbc2-0dfb1ab41d25" />
                <entry key="passwordCallbackRef">
                    <ref bean="signaturePwdCallback" />
                </entry>
            </map>
        </constructor-arg>
    </bean>

    <bean id="signaturePwdCallback" class="org.jpp.ws.client.ClientCallback"
/>
</beans>


Somebody knows the reason? There are some example/tutorial to avoid the
error?


Thanks!!




WARNING: Interceptor for {
http://tempuri.org/}IStockService#{http://tempuri.org/}MensajeStock has
thrown exception, unwinding now
java.lang.ClassCastException: org.apache.cxf.message.XMLMessage cannot be
cast to org.apache.cxf.binding.soap.SoapMessage
    at
org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor.handleMessage(SAAJOutInterceptor.java:70)
    at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:247)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:516)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
    at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
    at $Proxy36.mensajeStock(Unknown Source)
    at org.jpp.ws.client.Client.main(Client.java:65)
Dec 15, 2010 4:19:51 PM org.apache.cxf.phase.PhaseInterceptorChain unwind
WARNING: Exception in handleFault on interceptor
org.apache.cxf.binding.soap.saaj.saajoutintercep...@57f7cdc7
java.lang.ClassCastException: org.apache.cxf.message.XMLMessage cannot be
cast to org.apache.cxf.binding.soap.SoapMessage
    at
org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor.handleFault(SAAJOutInterceptor.java:70)
    at
org.apache.cxf.phase.PhaseInterceptorChain.unwind(PhaseInterceptorChain.java:411)
    at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:294)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:516)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
    at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
    at $Proxy36.mensajeStock(Unknown Source)
    at org.jpp.ws.client.Client.main(Client.java:65)
Exception in thread "main" javax.xml.ws.http.HTTPException
    at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:138)
    at $Proxy36.mensajeStock(Unknown Source)
    at org.jpp.ws.client.Client.main(Client.java:65)
Caused by: java.lang.ClassCastException: org.apache.cxf.message.XMLMessage
cannot be cast to org.apache.cxf.binding.soap.SoapMessage
    at
org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor.handleFault(SAAJOutInterceptor.java:70)
    at
org.apache.cxf.phase.PhaseInterceptorChain.unwind(PhaseInterceptorChain.java:411)
    at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:294)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:516)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
    at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
    ... 2 more

Reply via email to