2013-06-26 7 views
5

का उपभोग करने में सक्षम नहीं है मेरे पास एक डब्ल्यूसीएफ वेब सेवा है जिसे डब्ल्यूसीएफ क्लाइंट और जावा द्वारा उपभोग किया जा रहा है। .NET क्लाइंट ठीक काम कर रहा है लेकिन जावा क्लाइंट नीचे की त्रुटि को संवाद और फेंकने में सक्षम नहीं है।जावा क्लाइंट डब्ल्यूसीएफ सेवा

<s:Fault> 
    <faultcode xmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none" xmlns="">a:ActionNotSupported</faultcode> 
    <faultstring xml:lang="en-US" xmlns="">The message with Action '' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).</faultstring> 
</s:Fault> 

मैंने दोनों अनुरोधों पर कब्जा कर लिया है लेकिन वास्तविक समस्या को समझने में सक्षम नहीं है।

यह अनुरोध .net क्लाइंट द्वारा भेजा गया अनुरोध है।

<MessageLogTraceRecord> 
    <HttpRequest xmlns="http://schemas.microsoft.com/2004/06/ServiceModel/Management/MessageTrace"> 
    <Method>POST</Method> 
    <QueryString></QueryString> 
    <WebHeaders> 
     <Connection>Keep-Alive</Connection> 
     <Content-Length>277</Content-Length> 
     <Content-Type>text/xml; charset=utf-8</Content-Type> 
     <Expect>100-continue</Expect> 
     <Host>devint</Host> 
     <VsDebuggerCausalityData>uIDPoz4EUGTdY91Co1FESc2IENsAAAAAfpHU4m1Iok+wSxmrwkiWZ9iNzD51RjZMnpnEBbceBDcACQAA</VsDebuggerCausalityData> 
     <SOAPAction>"http://tempuri.org/Test/IsPilotUser"</SOAPAction> 
     <X-Forwarded-For>xx.xxx.xxx.xxx</X-Forwarded-For> 
     <X-Optier-Context-Address>43143760</X-Optier-Context-Address> 
    </WebHeaders> 
    </HttpRequest> 
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
    <s:Header> 
     <To s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://service url here</To> 
     <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://tempuri.org/Test/IsPilotUser</Action> 
    </s:Header> 
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
     <IsPilotUser xmlns="http://tempuri.org/"> 
     <UserID>AA</UserID> 
     </IsPilotUser> 
    </s:Body> 
    </s:Envelope> 
</MessageLogTraceRecord> 

नीचे जावा द्वारा उत्पन्न अनुरोध ग्राहक है

<MessageLogTraceRecord> 
    <HttpRequest xmlns="http://schemas.microsoft.com/2004/06/ServiceModel/Management/MessageTrace"> 
    <Method>POST</Method> 
    <QueryString></QueryString> 
    <WebHeaders> 
     <Cache-Control>no-cache</Cache-Control> 
     <Connection>keep-alive</Connection> 
     <Pragma>no-cache</Pragma> 
     <Content-Length>1414</Content-Length> 
     <Content-Type>text/xml; charset=utf-8</Content-Type> 
     <Accept>text/xml, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2</Accept> 
     <Host>devint</Host> 
     <User-Agent>Java/1.6.0_25</User-Agent> 
     <SOAPAction>""</SOAPAction> 
     <X-Optier-Context-Address>43526520</X-Optier-Context-Address> 
    </WebHeaders> 
    </HttpRequest> 
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> 
    <SOAP-ENV:Header xmlns:hdr="http://xml.example.com/ns/appmw/soap/1.0/header"> 
     <hdr:RequestID xmlns:hdr="http://xml.example.com/ns/appmw/soap/1.0/header">287933.1372254929205.341301</hdr:RequestID> 
     <hdr:Timestamp xmlns:hdr="http://xml.example.com/ns/appmw/soap/1.0/header">1372254929205</hdr:Timestamp> 
     <hdr:Principal xmlns:hdr="http://xml.example.com/ns/appmw/soap/1.0/header"> 
     <saml:Assertion xmlns:saml="http://xml.example.com/ns/appmw/soap/1.0/saml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Issuer="PingFederate SiteMinder SOAP Connector" xsi:type="saml:AuthenticationAssertionType"> 
      <saml:Subject> 
      <saml:NameIdentifier> 
       <saml:SecurityDomain>KerberosID</saml:SecurityDomain> 
       <saml:Name>None</saml:Name> 
      </saml:NameIdentifier> 
      <saml:SubjectConfirmation> 
       <saml:AuthenticationMethod>Netegrity</saml:AuthenticationMethod> 
       <saml:SubjectConfirmationData>None</saml:SubjectConfirmationData> 
      </saml:SubjectConfirmation> 
      </saml:Subject> 
     </saml:Assertion> 
     </hdr:Principal> 
     <To SOAP-ENV:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://service url here</To> 
    </SOAP-ENV:Header> 
    <SOAP-ENV:Body> 
     <pf:AttributesRequest xmlns:pf="http://xml.ms.com/ns/webinfra/pingfederate/sso-attributes"> 
     <pf:Data> 
      <pf:HumanNo></pf:HumanNo> 
      <pf:Originator>None</pf:Originator> 
      <pf:UniqueID>None</pf:UniqueID> 
     </pf:Data> 
     <pf:Attribute> 
      <pf:Name>IsPilotUserResult</pf:Name> 
     </pf:Attribute> 
     </pf:AttributesRequest> 
    </SOAP-ENV:Body> 
    </SOAP-ENV:Envelope> 
</MessageLogTraceRecord> 

मैं तो किसी भी मदद की सराहना की होगी जावा से परिचित नहीं हूँ।

उत्तर

5

आपका जावा ग्राहक इस HTTP हेडर भेजता है:

SOAPAction="" 

नेट यह एक भेजता है जबकि:

SOAPAction="http://tempuri.org/Test/IsPilotUser" 

जावा ग्राहक बाध्य करें सही मान भेजने के लिए।

संबंधित मुद्दे