2015-01-08 288 views
1

我正在致力於IBM Sterling V 9.3。我已經使用知識中心提供的步驟在Jboss 4.2.3應用服務器上公開了服務作爲JAX-WS網絡服務。 EAR文件已成功部署,應用服務器正常啓動。我可以看到爲Web服務生成的WSDL文件。java.lang.ClassCastException:org.jboss.ws.core.soap.TextImpl無法轉換爲javax.xml.soap.SOAPElement

當我嘗試從soapUI工具(版本3.5.1)訪問WSDL時,出現響應消息中的以下錯誤。我搜索了相同的和發現,我們應該有以下罐子JBOSS_HOME下\ LIB \贊同文件夾:

•JBoss的,沒有saaj.jar

•的jboss-jaxws.jar

•的jboss-JAXRPC的.jar

•JAXB的API-2.1.9.jar

•xercesImpl.jar

•xalan.jar

•serializer.jar

我已經添加了上面的jar但仍然得到相同的錯誤。如果需要,可以分享更多細節。請幫忙。

錯誤消息:

<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文件:

<?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> 

回答

1

我能解決這個問題。我不得不從請求中刪除所有的空格,註釋和問號(?)(如果有的話)。

之後,它工作正常。我認爲,由於請求中有空格,soapUI將它視爲某種請求元素/值,並且無法轉換爲SOAPElement。

希望這會對其他人有所幫助!

1

在請求屬性下,將「刪除空格」設置爲true。這必須爲每個新的請求完成。我沒有找到一種方法來默認設置爲true。 問題標記是您的請求中必須提供的參數的佔位符。

相關問題