Java.lang.ClassCastException: org.jboss.ws.core.soap.TextImpl ne peut pas être converti en javax.XML.savon.SOAPElement


Je travaille sur IBM Sterling V 9.3. J'ai exposé un Service en tant que JAX-WS web service en utilisant les étapes fournies dans le centre de connaissances avec succès sur Jboss 4.2.3 app server. Le fichier EAR a été déployé avec succès et le serveur d'applications a bien démarré. Je pouvais voir le fichier WSDL généré pour le service Web.

Lorsque j'ai essayé d'accéder au WSDL à partir de SoapUI tool (version 3.5.1), j'obtiens l'erreur suivante dans le message de réponse. J'ai cherché le même chose et a découvert que nous devrions avoir les pots suivants sous le dossier JBOSS_HOME\lib \ endorsed:

• jboss-saaj.jar

• jboss-jaxws.jar

• jboss-jaxrpc.jar

• jaxb-api-2.1.9.jar

• xercesImpl.jar

• xalan.jar

• sérialiseur.jar

J'ai ajouté les pots ci-dessus mais j'obtiens toujours la même erreur. Peut partager plus de détails si nécessaire. S'il vous plaît aider.

Message d'Erreur:

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
   <env:Header/>
   <env:Body>
      <env:Fault>
         <faultcode>env:Server</faultcode>
         <faultstring>java.lang.ClassCastException: org.jboss.ws.core.soap.TextImpl cannot be cast to javax.xml.soap.SOAPElement</faultstring>
      </env:Fault>
   </env:Body>
</env:Envelope>

WSDL fichier:

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="SearsBeansService"
    targetNamespace="http://webservices.sears.com/"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns="http://webservices.sears.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <types>
        <xsd:schema>
            <xsd:import
                namespace="http://webservices.sears.com/documentation/SearsGetOrderListForWSCService/searsGetOrderListForWSCService/output" schemaLocation="SearsBeansService_schema1.xsd"/>
        </xsd:schema>
        <xsd:schema>
            <xsd:import
                namespace="http://webservices.sears.com/documentation/SearsGetOrderListForWSCService/searsGetOrderListForWSCService/input" schemaLocation="SearsBeansService_schema2.xsd"/>
        </xsd:schema>
        <xsd:schema>
            <xsd:import
                namespace="http://webservices.sears.com/documentation/SearsGetOrderDetailsForWSCService/searsGetOrderDetailsForWSCService/output" schemaLocation="SearsBeansService_schema3.xsd"/>
        </xsd:schema>
        <xsd:schema>
            <xsd:import
                namespace="http://webservices.sears.com/documentation/SearsGetOrderDetailsForWSCService/searsGetOrderDetailsForWSCService/input" schemaLocation="SearsBeansService_schema4.xsd"/>
        </xsd:schema>
        <xsd:schema>
            <xsd:import namespace="http://webservices.sears.com/" schemaLocation="SearsBeansService_schema5.xsd"/>
        </xsd:schema>
        <xsd:schema>
            <xsd:import
                namespace="http://www.sterlingcommerce.com/documentation/types" schemaLocation="yfctype.xsd"/>
        </xsd:schema>
    </types>
    <message name="searsGetOrderDetailsForWSCService">
        <part element="tns:searsGetOrderDetailsForWSCService" name="parameters"/>
    </message>
    <message name="searsGetOrderDetailsForWSCServiceResponse">
        <part element="tns:searsGetOrderDetailsForWSCServiceResponse" name="parameters"/>
    </message>
    <message name="XBeanWSException">
        <part element="tns:XBeanWSException" name="fault"/>
    </message>
    <message name="searsGetOrderListForWSCService">
        <part element="tns:searsGetOrderListForWSCService" name="parameters"/>
    </message>
    <message name="searsGetOrderListForWSCServiceResponse">
        <part element="tns:searsGetOrderListForWSCServiceResponse" name="parameters"/>
    </message>
    <portType name="SearsBeans">
        <operation name="searsGetOrderDetailsForWSCService">
            <input message="tns:searsGetOrderDetailsForWSCService"/>
            <output message="tns:searsGetOrderDetailsForWSCServiceResponse"/>
            <fault message="tns:XBeanWSException" name="XBeanWSException"/>
        </operation>
        <operation name="searsGetOrderListForWSCService">
            <input message="tns:searsGetOrderListForWSCService"/>
            <output message="tns:searsGetOrderListForWSCServiceResponse"/>
            <fault message="tns:XBeanWSException" name="XBeanWSException"/>
        </operation>
    </portType>
    <binding name="SearsBeansPortBinding" type="tns:SearsBeans">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="searsGetOrderDetailsForWSCService">
            <soap:operation soapAction=""/>
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
            <fault name="XBeanWSException">
                <soap:fault name="XBeanWSException" use="literal"/>
            </fault>
        </operation>
        <operation name="searsGetOrderListForWSCService">
            <soap:operation soapAction=""/>
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
            <fault name="XBeanWSException">
                <soap:fault name="XBeanWSException" use="literal"/>
            </fault>
        </operation>
    </binding>
    <service name="SearsBeansService">
        <port binding="tns:SearsBeansPortBinding" name="SearsBeansPort">
            <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
        </port>
    </service>
</definitions>
Author: Vishal Agrahari, 2015-01-08

2 answers

Je suis en mesure de résoudre ce problème. J'ai dû supprimer tous les espaces blancs, commentaires et points d'interrogation (?) à partir de la demande (le cas échéant).

Après cela, cela fonctionnait bien. Je pense qu'en raison des espaces blancs dans la demande, SoapUI le traitait comme une sorte d'élément/valeur de demande et n'était pas en mesure de le convertir en SOAPElement.

J'espère que cela serait utile pour les autres !

 1
Author: Vishal Agrahari, 2015-02-06 13:09:38

Sous Propriétés de la demande, définissez "Espaces blancs de bande" sur true. Ceci doit être fait pour chaque nouvelle demande. Je n'ai pas trouvé de moyen de définir true par défaut. Les points de questions sont des espaces réservés pour les paramètres qui doivent être fournis dans votre demande.

 1
Author: Pablo Jorge Madril, 2015-07-30 12:51:26