2015-08-29 58 views
0

打我的駱駝彈簧-WS時,在JBoss中春WS Jboss的空請求,空應答isSameNode故障問題

<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'> 
<env:Header></env:Header> 
<env:Body> 
    <env:Fault xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'> 
     <faultcode xmlns:valueNS='http://schemas.xmlsoap.org/soap/envelope/'>valueNS:Server</faultcode> 
     <faultstring xml:lang='en'>isSameNode</faultstring> 
    </env:Fault> 
</env:Body> 

同樣的戰爭是工作在不同的JBoss服務器細獲取下面的錯誤。使用

JBoss服務器:5.0

根據文檔:

返回此節點是否是同一節點的給定的一個。 該方法提供了一種方法來確定實現返回的兩個節點引用是否引用同一個對象。當兩個節點引用是對同一對象的引用時,即使通過代理,引用也可以完全互換使用,以便所有屬性具有相同的值,並且在任一引用上調用相同的DOM方法總是具有完全相同的效果。

任何人都可以告訴我這個問題是相對於jboss和spring ws。我沒有看到任何日誌。

樣品所需物品:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:off="http://services.dnb.com/OfficerProductServiceV1.0"> 
<soapenv:Header/> 
<soapenv:Body> 
    <off:OfficerSearchRequest> 
    <OfficerSearchRequestDetail> 
     <InquiryDetail> 
      <OfficerName> 
       <LastName>HAR</LastName> 
      </OfficerName> 
      <OfficerAddress> 
       <PrimaryTownName>Test</PrimaryTownName> 
      </OfficerAddress> 
      <IncludeResignedIndicator>true</IncludeResignedIndicator> 
      <OfficerType>DIS</OfficerType> 
     </InquiryDetail> 
     <InquiryReferenceDetail> 
      <!--0 to 5 repetitions:--> 
      <CustomerReferenceText>fwe2311</CustomerReferenceText> 
      <CustomerReferenceText>ad4234es</CustomerReferenceText> 
      <!--Optional:--> 
      <CustomerBillingEndorsementText>test</CustomerBillingEndorsementText> 
     </InquiryReferenceDetail> 
    </OfficerSearchRequestDetail> 
    </off:OfficerSearchRequest> 

回答

0

的問題是與JBoss故障肥皂罐子其導致空請求被髮送到彈簧-WS。

糾正問題。

添加以下bean的配置,迫使彈簧WS-servlet.xml文件

<!-- force use of Sun SAAJ implementation --> 
<bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory"> 
    <property name="messageFactory"> 
     <bean 
      class="com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl"></bean> 
    </property> 
</bean> 

的Jboss利用太陽的SAAJ實現的不從JDK 1.6拿起SAAJ。因此,您必須將以下依賴項添加到您的pom.xml文件中

<dependency> 
    <groupId>javax.xml.soap</groupId> 
    <artifactId>saaj-api</artifactId> 
    <version>1.3</version> 
    </dependency> 
    <dependency> 
    <groupId>com.sun.xml.messaging.saaj</groupId> 
    <artifactId>saaj-impl</artifactId> 
    <version>1.3</version> 
    </dependency>