Handling of SOAP Faults in SOAP Clients consuming PI Web services

Hi there,
the following is in regards to SOAP fault error handling in a SOAP client that consumes a Web Service published by PI.
I have been reading a number of threads and blogs in regards to this topic and I am still left with some open questions which I hope to get some final answersclarifications through this thread.
In particular the blogs
Handling Web Service SOAP Fault Responses in SAP NetWeaver XI      - Handling Web Service SOAP Fault Responses in SAP NetWeaver XI
XI: Propagation of meaningful error information to SOAP Client     - XI: Propagation of meaningful error information to SOAP Client
have caused by attention.
Both of these threads are realating to the Fault Message type one can use to return errors back to a SOAP Client (.Net, Java, etc.).
In our scenario we published a number of Web Services through PI that provide functionality to integrate with an R3 back-end system using inbound ABAP Proxies.
The services are standardised and will be consumed by a number of .NetJava applications and systems. The reason for the use of ABAP proxies is the customer specific application logic that is executed in the backend system. The Web services are synchronous and don't use ccBPM in the middle. Transformations are performed in PI combined with various lookups to set default values before the message is passed into the ABAP Framework of the R3 back-end system. The lookups are done against the R3 back-end system using the PI RFC Lookup feature.
The inbound proxies currently return application errors as part of the response message back to the SOAP client. For more critical errors we introduced the use of Fault message types as the method to return the information back to the SOAP Client. This is all working satisfactory.
The questions I have are as follows.
1. When an error occurs at the IE level (e.g. mapping error), ABAP Proxy framework level (e.g. conversion from XML to ABAP format) or Adapter Framework level (Adapter releated error) a different SOAP fault message structure is returned to the SOAP Client than the one    used for the application errors. The SOAP fault message structure used in this case is the standard SOAP fault used by PI to return system errors back to the caller. For those SOAP fault messages there is no payload generated that could be mapped to the SOAP fault structure used for the application errors. This would be preferrable as there would be only one Fault message structure used for both inbound ABAP proxy generated fault messages and PI generated fault messages.
Also the error messages generated by PI can be quite cryptic and difficult to interpret at the client end and could be filtered     ranslated during message mapping if the payload of the PI generated SOAP fault message could be accessed in a message mapping.
Point 3 of the above thread 2759 indicates that this would be possible but doesn't outline how. Could somebody please clarify this for me as I don't believe that this is really possible ???.
My idea instead was to use the PI SOAP fault message structure to also return application errors. Therefore I would create a Fault message type that matches the PI SOAP fault structure. This would enable the SOAP Client to handle only one SOAP Fault error structure. Would that be something to look into instead ?????.
2. We have been looking at using the integrated WEB AS SOAP adapter instead of using the AF Sender SOAP adapter. While playing with this we encountered differences in the content returned through the SOAP fault generated by PI. A sample is below. Shouldn't the content of these SOAP faults be the same if the error that caused it is the same. Also the SOAP fault returned by the IE SOAP adapter is much more    useful in this particular case. Both errors below are the same, a conversion error from XML to ABAP took place in the inbound ABAP proxy framework of the back-end system.
SOAP fault returned when using SOAP Sender adapter of AF
<!see the documentation>
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP:Body>
      <SOAP:Fault>
         <faultcode>SOAP:Server</faultcode>
         <faultstring>Server Error</faultstring>
         <detail>
            <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
               <context>XIAdapter</context>
               <code>ADAPTER.JAVA_EXCEPTION</code>
               <text>com.sap.aii.af.ra.ms.api.DeliveryException: XIProxy:PARSE_APPLICATION_DATA:
     at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:455)
     at com.sap.aii.af.ra.ms.impl.core.queue.consumer.CallConsumer.onMessage(CallConsumer.java:134)
     at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:916)
     at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
     at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
     at java.security.AccessController.doPrivileged(Native Method)
     at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102)
     at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)</text>
            </s:SystemError>
         </detail>
      </SOAP:Fault>
   </SOAP:Body>
</SOAP:Envelope>
SOAP fault using integrated SOAP adapter of PI IE
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP:Body>
      <SOAP:Fault>
         <faultcode>SOAP:Server</faultcode>
         <faultstring>System Error</faultstring>
         <detail>
            <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
               <context/>
               <code>ABAP.PARSE_APPLICATION_DATA</code>
               <text>Error during XML => ABAP conversion (Request Message; error ID: CX_ST_DESERIALIZATION_ERROR; (/1SAI/TXSBE20FF604BAFEF8D990A XML Bytepos.: 564  XML Path: ns1:CreatePORequest(1)POHEADER(2)COMP_CODE(1) Error Text: Data loss occurred when converting ############################## Kernel ErrorId: CONVT_DATA_LOSS))</text>
            </s:SystemError>
         </detail>
      </SOAP:Fault>
   </SOAP:Body>
</SOAP:Envelope>
I have been reading threads for hours without being able to find one that answers questions 1 or provides a blog that outlines the approach one should take for error handling in SOAP clients that consume PI Web Services (and covers both PISystem generated faults and faults raised in Proxies).
There may already be a blog or thread and I just missed it.
Any comments are welcome.
Thanks. Dieter

Hi Dieter,
As Bhavesh already mentioned fault messages are used for application errors. The same is described in SAP XI help:
http://help.sap.com/saphelp_nw04/helpdata/en/dd/b7623c6369f454e10000000a114084/frameset.htm
In case of system error (e.g. field length too long in proxy call or error in XI/PI mapping) there seems to be no standard way of handling it and propagating the response to the consumer of webservice.
Each system error is not recognized by SOAP adapter and SOAP adapter exception is raised.
The only bizzare solution that I can see is developing an adapter module and transport wrong message to standard fault message before delivering it to adapter engine:
http://help.sap.com/saphelp_nw04/helpdata/en/a4/f13341771b4c0de10000000a1550b0/frameset.htm
Kind regards,
Wojciech
btw nice thread

Similar Messages

  • WCF client consumes JAVA web service - should I use WCF or just create a custom parser/message factory?

    We've a business partner who requires us to create a service request message with a SAML 2.0 assertion. The partner's supplied two certificates and a test harness for their JAVA webservice.
    I've created a WCF client with a `CustomBinding` to try and recreate the request and consume the service, but I'm getting so frustrated with the nuances of WCF (and the lack of intrinsic support for SAML 2.0) I'm wondering am I better off using something like
    a `WebClient` or `HttpWebRequest` and encrypting/building & signing the XML web request and doing the same for the response. I know there's a lot of work involved on this but at least I'd be in full control.
    Your advice would be very much appreciated, what I'm working with is displayed below
    **Note: I was supplied with a SoapUI Test harness for the Java service**
    **The vendor supplied me with this request (ran though SOAPUI and extracted via Fiddler)**
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
    <SOAP-ENV:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
    <wsse:Security SOAP-ENV:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <xenc:EncryptedKey Id="EncKeyId-29B98C291D1FDFB39113352984774895">
    <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
    <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <wsse:SecurityTokenReference>
    <ds:X509Data>
    <ds:X509IssuerSerial>
    <ds:X509IssuerName>CN=test_server</ds:X509IssuerName>
    <ds:X509SerialNumber>12356789</ds:X509SerialNumber>
    </ds:X509IssuerSerial>
    </ds:X509Data>
    </wsse:SecurityTokenReference>
    </ds:KeyInfo>
    <xenc:CipherData>
    <xenc:CipherValue>
    <!--Omitted -->
    </xenc:CipherValue>
    </xenc:CipherData>
    <xenc:ReferenceList>
    <xenc:DataReference URI="#EncDataId-3"/>
    </xenc:ReferenceList>
    </xenc:EncryptedKey>
    <wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="CertId-29B98C291D1FDFB39113352984773591" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><!-- Omitted --> </wsse:BinarySecurityToken>
    <ds:Signature Id="Signature-1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:SignedInfo>
    <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
    <ds:Reference URI="#id-2">
    <ds:Transforms>
    <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    </ds:Transforms>
    <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <ds:DigestValue>
    <!--Omitted -->
    </ds:DigestValue>
    </ds:Reference>
    </ds:SignedInfo>
    <ds:SignatureValue>
    <!--Omitted -->
    </ds:SignatureValue>
    <ds:KeyInfo Id="KeyId-29B98C291D1FDFB39113352984773792">
    <wsse:SecurityTokenReference wsu:Id="STRId-29B98C291D1FDFB39113352984773893" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <wsse:Reference URI="#CertId-29B98C291D1FDFB39113352984773591" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/>
    </wsse:SecurityTokenReference>
    </ds:KeyInfo>
    </ds:Signature>
    </wsse:Security>
    <saml:Assertion ID="_54d0c8395de26c3e44730df2c9e8d3e9" IssueInstant="2012-02-17T10:40:36.806Z" Version="2.0" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
    <saml:Issuer>CN=test_client</saml:Issuer>
    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
    <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
    <Reference URI="#_54d0c8395de26c3e44730df2c9e8d3e9">
    <Transforms>
    <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
    <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <DigestValue>
    <!--Omitted -->
    </DigestValue>
    </Reference>
    </SignedInfo>
    <SignatureValue>
    <!--Omitted -->
    </SignatureValue>
    <KeyInfo>
    <X509Data>
    <X509Certificate>
    <!--Omitted -->
    </X509Certificate>
    </X509Data>
    </KeyInfo>
    </Signature>
    <saml:Subject>
    <saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">[email protected]</saml:NameID>
    </saml:Subject>
    <saml:Conditions NotBefore="2012-02-17T10:40:21.806Z" NotOnOrAfter="2012-02-17T10:41:06.806Z"/>
    </saml:Assertion>
    <wsa:Action SOAP-ENV:mustUnderstand="1">http://www.xxxxxxx.xxx/ws/schemas/xxxxxx1/xxxx/xxxxxxxxxxxxxx</wsa:Action>
    <wsa:MessageID SOAP-ENV:mustUnderstand="1">uuid:bffc27ba-68d9-44e6-b1f0-e2f852df7715</wsa:MessageID>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body wsu:Id="id-2" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <xenc:EncryptedData Id="EncDataId-3" Type="http://www.w3.org/2001/04/xmlenc#Content">
    <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
    <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <wsse:SecurityTokenReference xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <wsse:Reference URI="#EncKeyId-29B98C291D1FDFB39113352984774895"/>
    </wsse:SecurityTokenReference>
    </ds:KeyInfo>
    <xenc:CipherData>
    <xenc:CipherValue>
    <!--Omitted -->
    </xenc:CipherValue>
    </xenc:CipherData>
    </xenc:EncryptedData>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    **This is as close as I've gotten with my WCF client. Issues I can immediatley is that the `<o:SecurityTokenReference>` element should contain the Issuer and Serial, instead it contains a `KeyIdentifier` element?**
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <s:Header>
    <a:Action s:mustUnderstand="1" u:Id="_3"/>
    <a:MessageID u:Id="_4">urn:uuid:fc8ef84b-dbf5-4150-a0c3-d4cc986333d1</a:MessageID>
    <ActivityId CorrelationId="a9e1fec4-32bc-4633-909e-3d601c809b3c" xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">d1909115-8922-46f3-a96c-db15bf91c599</ActivityId>
    <a:ReplyTo u:Id="_5">
    <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
    </a:ReplyTo>
    <VsDebuggerCausalityData xmlns="http://schemas.microsoft.com/vstudio/diagnostics/servicemodelsink">uIDPo27oY4/3mnBOry0YL4StqvcAAAAA0UM+eVt4fU2AOe9/B3lPDZNf/2HmAuNEvzAoW0eKVSUACQAA</VsDebuggerCausalityData>
    <a:To s:mustUnderstand="1" u:Id="_6">https://localhost:8089/ws</a:To>
    <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <u:Timestamp u:Id="uuid-e5592f06-32af-40fb-996e-a0a469c7ed5e-2">
    <u:Created>2012-04-24T20:41:50.447Z</u:Created>
    <u:Expires>2012-04-24T20:46:50.447Z</u:Expires>
    </u:Timestamp>
    <e:EncryptedKey Id="uuid-e5592f06-32af-40fb-996e-a0a469c7ed5e-1" xmlns:e="http://www.w3.org/2001/04/xmlenc#">
    <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
    <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
    <o:SecurityTokenReference>
    <o:KeyIdentifier ValueType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#ThumbprintSHA1" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">lU10DQn4lSpE4fRpE9gslm5QDt0=</o:KeyIdentifier>
    </o:SecurityTokenReference>
    </KeyInfo>
    <e:CipherData>
    <e:CipherValue>
    <!--Omitted-->
    </e:CipherValue>
    </e:CipherData>
    <e:ReferenceList>
    <e:DataReference URI="#_2"/>
    <e:DataReference URI="#_7"/>
    <e:DataReference URI="#_8"/>
    </e:ReferenceList>
    </e:EncryptedKey>
    <o:BinarySecurityToken u:Id="uuid-fad0c01f-ab4b-4a5f-bec6-93aa8c2d5a52-1" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"><!--Omitted--></o:BinarySecurityToken>
    <e:EncryptedData Id="_7" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns:e="http://www.w3.org/2001/04/xmlenc#">
    <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
    <e:CipherData>
    <e:CipherValue>
    <!--Omitted-->
    </e:CipherValue>
    </e:CipherData>
    </e:EncryptedData>
    <e:EncryptedData Id="_8" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns:e="http://www.w3.org/2001/04/xmlenc#">
    <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
    <e:CipherData>
    <e:CipherValue><!--Omitted--></e:CipherValue>
    </e:CipherData>
    </e:EncryptedData>
    </o:Security>
    </s:Header>
    <s:Body u:Id="_1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <e:EncryptedData Id="_2" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns:e="http://www.w3.org/2001/04/xmlenc#">
    <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
    <e:CipherData>
    <e:CipherValue><!--Omitted--></e:CipherValue>
    </e:CipherData>
    </e:EncryptedData>
    </s:Body>
    </s:Envelope>
    Using this configuration for the WCF CustomBinding
    <system.serviceModel>
    <bindings>
    <customBinding>
    <binding name="WSHttpBinding_IEnquiryRequest" >
    <transactionFlow />
    <security defaultAlgorithmSuite="TripleDesRsa15"
    authenticationMode="MutualCertificate"
    messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10"
    requireDerivedKeys="false"
    >
    <secureConversationBootstrap authenticationMode="CertificateOverTransport"
    messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10"
    requireDerivedKeys="false" />
    </security>
    <textMessageEncoding messageVersion="Soap11WSAddressing10" />
    <!--<mtomMessageEncoding messageVersion="Soap11WSAddressing10" />-->
    <httpsTransport requireClientCertificate="true" />
    </binding>
    </customBinding>
    </bindings>
    <behaviors>
    <endpointBehaviors>
    <behavior name="certBehaviour">
    <clientCredentials>
    <!-- clientCertificate not defaultCertificate -->
    <clientCertificate x509FindType="FindBySubjectName" storeLocation="CurrentUser" storeName="My" findValue="test_client" />
    <serviceCertificate>
    <defaultCertificate x509FindType="FindBySubjectName" storeLocation="CurrentUser" storeName="My" findValue="test_server"/>
    <authentication revocationMode="NoCheck" certificateValidationMode="None" />
    </serviceCertificate>
    </clientCredentials>
    </behavior>
    </endpointBehaviors>
    </behaviors>
    <client>
    <endpoint
    address="https://localhost:8089/pvs/ws"
    binding="customBinding"
    bindingConfiguration="WSHttpBinding_IEnquiryRequest"
    contract="XXXService.enquiryRequest"
    name="WSHttpBinding_IEnquiryRequest"
    behaviorConfiguration="certBehaviour"
    >
    <identity>
    <dns value="test_server"/>
    </identity>
    </endpoint>
    </client>
    </system.serviceModel>
    I've no idea how to insert the SAML 2.0 assertion in there before it's signed. That and the Key Issuer/serial issue above is where my main problems lie with the request.
    Any and all help appreciated
                        

    Yaron,
    Thanks a million for your response, think you hit the nail on the head there. Actually figured out the first part myself this morning, I've retrieved the SymmetricSecurityBindingElement object from the binding configured in the app.config and set it explicitly,
    just as you've defined. Couldnt figure out how to do this yesterday for some reason! Here's the code for anyone that's interested:
    //Get custom binding reference from app.config
    CustomBinding binding = new CustomBinding("bindingNameInConfig");
    // Reference the symmetric security element
    SymmetricSecurityBindingElement securityBindingElement = binding.Elements.Find<SymmetricSecurityBindingElement>();
    // Get the x509ProtectionParams from the security element
    X509SecurityTokenParameters tokenParameters = new X509SecurityTokenParameters();
    tokenParameters.X509ReferenceStyle = X509KeyIdentifierClauseType.IssuerSerial;
    tokenParameters.RequireDerivedKeys = false;
    tokenParameters.InclusionMode = SecurityTokenInclusionMode.AlwaysToInitiator;
    // Set the X509SecurityTokenParameters to point to the one's just configured. This is for symetric encryption, for asymetric this line needs to change
    securityBindingElement.ProtectionTokenParameters = tokenParameters;
    Are you sure that SAML assertion is not signed? That makes things a lot easier! Do you think the following approach will work when inserting in the SAML 2.0 assertion? :
    Create a class that inherits from IClientMessageInspector and insert the SAML as shown below
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.ServiceModel;
    using System.ServiceModel.Channels;
    using System.ServiceModel.Description;
    using System.ServiceModel.Dispatcher;
    using System.Text;
    using System.Xml;
    using Microsoft.IdentityModel.Protocols.XmlSignature;
    namespace TestClient.Application
    class Saml20Extension : IClientMessageInspector, IEndpointBehavior
    #region Implementation of IClientMessageInspector
    public object BeforeSendRequest(ref Message request, IClientChannel channel)
    MessageBuffer buffer = request.CreateBufferedCopy(int.MaxValue);
    // ** Add the SAML Assertion XML here **
    request = buffer.CreateMessage();
    return null;
    public void AfterReceiveReply(ref Message reply, object correlationState)
    MessageBuffer buffer = reply.CreateBufferedCopy(Int32.MaxValue);
    // ** REMOVE THE SAML ASSERTION HERE **
    reply = buffer.CreateMessage();
    #endregion
    #region Implementation of IEndpointBehavior
    public void AddBindingParameters(ServiceEndpoint endpoint, System.ServiceModel.Channels.BindingParameterCollection bindingParameters)
    public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
    // Add this implementation to the inspectors.
    clientRuntime.MessageInspectors.Add(this);
    public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher)
    public void Validate(ServiceEndpoint endpoint)
    #endregion
    Also, There's a second signature being inserted into my WCF request that I need to replace with the SAML insertion - how do i get rid of the second signature?? (see updated request below)
    POST https://localhost:8089/pvs/ws HTTP/1.1
    Content-Type: text/xml; charset=utf-8
    SOAPAction: ""
    Host: localhost:8089
    Content-Length: 6720
    Expect: 100-continue
    Accept-Encoding: gzip, deflate
    Connection: Keep-Alive
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <s:Header>
    <a:Action s:mustUnderstand="1" u:Id="_3"/>
    <a:MessageID u:Id="_4">urn:uuid:84dc0bb8-13fd-4e90-84c4-ed1e6e831801</a:MessageID>
    <ActivityId CorrelationId="07e0df62-d40a-4e24-aacc-12e626f80e8b" xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">40077c44-d415-4567-99a1-1ea610c41d94</ActivityId>
    <a:ReplyTo u:Id="_5">
    <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
    </a:ReplyTo>
    <VsDebuggerCausalityData xmlns="http://schemas.microsoft.com/vstudio/diagnostics/servicemodelsink">uIDPo1f0ZJ98FOxIvULl0pmGv/wAAAAAEGu5/G7VNkia/XbStJDa+ldqi+8xxdtAiBL+Y8vCqa0ACQAA</VsDebuggerCausalityData>
    <a:To s:mustUnderstand="1" u:Id="_6">https://localhost:8089/pvs/ws</a:To>
    <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <e:EncryptedKey Id="uuid-5b1de37e-ea76-4f75-b268-ebb63b554c11-1" xmlns:e="http://www.w3.org/2001/04/xmlenc#">
    <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
    <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
    <o:SecurityTokenReference>
    <X509Data>
    <X509IssuerSerial>
    <X509IssuerName>CN=test_server</X509IssuerName>
    <X509SerialNumber>123456789</X509SerialNumber>
    </X509IssuerSerial>
    </X509Data>
    </o:SecurityTokenReference>
    </KeyInfo>
    <e:CipherData>
    <e:CipherValue><!--Omitted--></e:CipherValue>
    </e:CipherData>
    <e:ReferenceList>
    <e:DataReference URI="#_2"/>
    </e:ReferenceList>
    </e:EncryptedKey>
    <o:BinarySecurityToken u:Id="uuid-d62ff21f-7e9b-460d-a0ee-d5fad221427d-1" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">MIIBpzCCARCgAwIBAgIETzKMfzANBgkqhkiG9w0BAQUFADAYMRYwFAYDVQQDDA10ZXN0X2ZhY2lsaXR5MB4XDTEyMDIwODE0NTM1MVoXDTE3MDIwODE0NTM1MVowGDEWMBQGA1UEAwwNdGVzdF9mYWNpbGl0eTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvzdwlxcpwRKGzLvpqYoS4NEbhbx/jV6Z6kyXgJ0IWLZAW20oWmxPwumsqkKr6bWX2NWbGrka6w1e9+iZFBKiBq5zzxJKusCJQtPjuYwjaTGjVTFnixHp9sKnjIEprKyarceG00WzCVdtuI1NpNp8dgemzA6FFt1ESwwELq+rKvECAwEAATANBgkqhkiG9w0BAQUFAAOBgQAokX6HZhhEj7Bfo0Z8ZeoZeYFB8pHrN5A6927cJx17EXWVv0Mwn/+fDgTAhtsN9DB68CFNejox8mM0+KewjsgT4z80YxMHGlpM13z4c8+iMiQcJ7cISScTBaTONOtDqK1WNtci8biNjnLn7+4Z4fw17jlttN0dPHC3fvGywh6TkQ==</o:BinarySecurityToken>
    <Signature Id="_0" xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
    <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/>
    <Reference URI="#_1">
    <Transforms>
    <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <DigestValue>
    <!--Omitted-->
    </DigestValue>
    </Reference>
    <Reference URI="#_3">
    <Transforms>
    <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <DigestValue>
    <!--Omitted-->
    </DigestValue>
    </Reference>
    <Reference URI="#_4">
    <Transforms>
    <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <DigestValue>
    <!--Omitted-->
    </DigestValue>
    </Reference>
    <Reference URI="#_5">
    <Transforms>
    <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <DigestValue>
    <!--Omitted-->
    </DigestValue>
    </Reference>
    <Reference URI="#_6">
    <Transforms>
    <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <DigestValue>
    <!--Omitted-->
    </DigestValue>
    </Reference>
    </SignedInfo>
    <SignatureValue>
    <!--Omitted-->
    </SignatureValue>
    <KeyInfo>
    <o:SecurityTokenReference k:TokenType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#EncryptedKey" xmlns:k="http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd">
    <o:Reference ValueType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#EncryptedKey" URI="#uuid-5b1de37e-ea76-4f75-b268-ebb63b554c11-1"/>
    </o:SecurityTokenReference>
    </KeyInfo>
    </Signature><!-- Why is this second signature here? how do i get rid of it and replace with SAML --> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
    <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
    <Reference URI="#_0">
    <Transforms>
    <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <DigestValue>
    <!--Omitted-->
    </DigestValue>
    </Reference>
    </SignedInfo>
    <SignatureValue>
    <!--Omitted-->
    </SignatureValue>
    <KeyInfo>
    <o:SecurityTokenReference>
    <o:Reference ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" URI="#uuid-d62ff21f-7e9b-460d-a0ee-d5fad221427d-1"/>
    </o:SecurityTokenReference>
    </KeyInfo>
    </Signature>
    </o:Security>
    </s:Header>
    <s:Body u:Id="_1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <e:EncryptedData Id="_2" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns:e="http://www.w3.org/2001/04/xmlenc#">
    <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
    <e:CipherData>
    <e:CipherValue>
    <!--Omitted-->
    </e:CipherValue>
    </e:CipherData>
    </e:EncryptedData>
    </s:Body>
    </s:Envelope>

  • Dynamic Invocation: Error The SOAP PA receives a SOAP Fault from SOAP serve

    Hi All,
    I am trying to run the sample code "Dynamic Invocation of Oracle9i Web Services using Oracle UDDI registry"
    I was able to run the web services, publish them, and inquiry them using local UDDI registry.
    However, while invoking any method provided by the web services using the inovk method I get the following error
    oracle.j2ee.ws.client.WebServiceProxyException: Invocation failed 5,100: The SOAP PA receives a SOAP Fault from SOAP server
    Can anybody help me please?
    Regards,
    S.Al Shamsi

    It looks like the problem is occuring on the server side. I guess you have included the stacktrace from the client, can you get hold of the server side stacktrace?

  • How to install and consume GroupWise Web Service (SOAP)

    Hello! I'm Razvan, programmer from Romnia, and I am new to GroupWise development.
    I am asking if anyone could help me with a C# Visual Studio 2010 example of how to install and consume GroupWise Web Service (SOAP).
    The documentation from novell site didn't help me, i didn't understant much of it.
    All I need is either a link to a documented GroupWise C# developer step-by-step tutorial, or some code examples.
    Can you please show me some code examples in C# with:
    1)loging in using a username and a password,
    2)retrieving contact list,
    3)retrieving appointment list,
    4)sending a mail,
    5)setting an appointment
    I don't know how to use "groupwise.wsdl" and customise it so that it points to our GroupWise server.
    Please, I really need this because I am working at a project right now which involves GroupWise integration.
    I hope I haven't disturbed anyone with my simple question.
    I know this might be a very simple question given the complexity of the other posts here, but that's why I really hope I will get an answer soon.
    Thank you very much!
    Signature:
    How old is the Orthodox faith?
    How old is the orthodox faith?

    Just a comment.
    The value for the version element should be "1.02"
    not "1.2".
    Preston
    >>> On Tuesday, March 01, 2011 at 8:06 AM,
    TheRomanian<[email protected]> wrote:
    > I have great news! After strong documentation yesterday and today, I've
    > just made a successfull example that actually connects to our GroupWise
    > server.
    >
    > I made it in PHP.
    >
    > I need an ASP.NET + C# application, but now is very simple to convert
    > it. I post the PHP code here for other people who in future might be
    > interested in finding out.
    >
    > So a simple PHP GroupWise Login code using "groupwise.wsdl" web
    > service:
    >
    >
    > require_once('./GWService/GroupwiseService.php');
    > require_once('FB.class.php');
    >
    > $classmap = array(
    > 'Authenication' => 'Authenication',
    > 'PlainText' => 'PlainText',
    > 'loginRequest' => 'loginRequest',
    > 'loginResponse' => 'loginResponse',
    > 'logoutRequest' => 'logoutRequest',
    > 'logoutResponse' => 'logoutResponse',
    > 'UserInfo' => 'UserInfo',
    > );
    >
    > $gwservice = new GroupwiseService(
    > "./WSDL/groupwise.wsdl",
    > array(
    > "location" => "http://11.150.40.78:8756/soap",
    > *Your GroupWise server IP:
    > and PORT*
    > "classmap" => $classmap,
    > "trace" => true)
    > );
    >
    > // do login
    > $pt = new PlainText();
    > $pt‑>username = *"YOUR GROUPWISE USERNAME"*;
    > $pt‑>password = *"YOUR GROUPWISE PASSWORD"*;
    >
    > $lr = new loginRequest();
    > $lr‑>auth = $pt;
    > $lr‑>language = "en";
    > $lr‑>version = "1.2";
    > $lr‑>application = "phpClient";
    >
    > $lres = $gwservice‑>loginRequest($lr);
    > //print_r($lres);
    >
    >
    > I Hope this will help others.
    >
    > ‑‑
    > Signature:
    >
    > How old is the Orthodox Faith?
    > 'How old is the orthodox faith?'
    > (http://www.orthodoxphotos.com/history.shtml)

  • Setting up the Soap Header when consuming a web service.

    Hi SDN,
    I am trying to consume a web service,where I need to pass the soap header for sending the request to the sever.
    I am using if_ws_protocol_ws_header->SET_REQUEST_HEADER to set the Username and Password to the soap header. After a lot of trouble shooting I came to conclusion that the Username and Password are not being updated in soap header.
    I want to know how to set the soap header? I have tested the web service in the SOAP UI testing tool and it works fine taking the credentials. The webservice is using HTTPS protocol.Do we have any separate config for https. Do I need to pass the nonce and date created in the soap header for sure ? And is there any thing to be configured by basis team?
    Here is what I am trying to pass:
    ' <soapenv:Header>'
          '<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">'
             '<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">'
                '<wsse:Username>XXXXXXX</wsse:Username>'
                '<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">XXXXX</wsse:Password>'
                '</wsse:UsernameToken>'
         ' </wsse:Security>'
          '/soapenv:Header>'
    Thank you.

    CONCATENATE
    '<soapenv:Header>'
    '<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"'
    'xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"'
    'xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">'
    '<wsse:UsernameToken>'
    '<wsse:Username>XXXXXX</wsse:Username>'
    '<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">XXXXXX</wsse:Password>'
    '<wsse:Nonce>' XXXXX'</wsse:Nonce>'
    '<wsu:Created>' XXXXX '</wsu:Created>'
    '</wsse:UsernameToken>'
    '</wsse:Security>'
    '</soapenv:Header>'
       INTO l_string.
    I solved my self and its working , Here is what I was passed.
    Thank you guys.

  • Building client proxies for web services with SOAP attachemtns

    Hi all.
    I'm currently building a series of web services that take SOAP attachments as
    input, but I am unable to generate the java proxies for testing the services via
    WebLogic Workshop 8.1. When I attempt to build the proxy, I get the following
    error:
    Warning: Failed to generate client proxy from WSDL definition for this service.
    Suggestion: Please verify the <types> section of the WSDL.
    Is there something I need to alter to get this to work, or does workshop not support
    client proxies for web services with DataHandler parameters?
    Thanks.
    -Brian

    Thanks for the help. This is my first web service with SOAP attachments, so it
    may have been a long time till I realized that.
    -Brian
    "Michael Wooten" <[email protected]> wrote:
    >
    Thanks Brian,
    The problem is that you are trying to use the "document" soap-style :-)
    If you change this to "rpc", you'll should be able to successfully generate
    the
    client proxy jar. The soap-style property, is at the bottom of the "protocol"
    property sheet section, for the JWS.
    Regards,
    Mike Wooten
    "Brian McLoughlin" <[email protected]> wrote:
    Sure, sorry about that. Attached is the wsdl for a sample web service
    I created
    just to test the proxy generation.
    "Michael Wooten" <[email protected]> wrote:
    Hi Brian,
    Would it be possible for you to post the WSDL, so we can see what might
    be causing
    the problem?
    Regards,
    Mike Wooten
    "Brian McLoughlin" <[email protected]> wrote:
    Hi all.
    I'm currently building a series of web services that take SOAP attachments
    as
    input, but I am unable to generate the java proxies for testing theservices
    via
    WebLogic Workshop 8.1. When I attempt to build the proxy, I get the
    following
    error:
    Warning: Failed to generate client proxy from WSDL definition for
    this
    service.
    Suggestion: Please verify the <types> section of the WSDL.
    Is there something I need to alter to get this to work, or does workshop
    not support
    client proxies for web services with DataHandler parameters?
    Thanks.
    -Brian

  • SOAP vs. XML-RPC for synchronous Web Services applications

    Hi everyone, I have to finish one project soon and I have to make a decision. Because I don't have much time I want to ask if anyone can answer me, what are the major differences bettween SOAP vs. XML-RPC for synchronous Web Services applications. I'll be very grateful if you help me!
    Thanks in advance!

    Come on guys i know you can help me, please don't hesitate to write some row

  • Consume a Web Service from a Web Page

    I had tried out the Tutorial "Consume a Web Service from a Web Page". I have encountered this error :
    ; nested exception is: java.lang.NullPointerException.
    oracle.adf.model.adapter.AdapterException: DCA-40010: The Web Service call failed. The service returned a SOAP fault with the message: [S:Receiver] EJB Exception: : java.lang.NullPointerException
         at oracle.model.freightjb.CalculateFreightBean.calculateFreightCost(CalculateFreightBean.java:23)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
         at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:55)
         at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy170.calculateFreightCost(Unknown Source)
         at oracle.model.freightjb.CalculateFreight_5vfuh6_WSOImpl.__WL_calculateFreightCost_WS(CalculateFreight_5vfuh6_WSOImpl.java:72)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    I tried to modify abit the code as i changed the web method parameter from object (BatchOrder order) to variables(eg. int) and it works. When I test the Web Services I need to select the include checkbox den it works nicely else i will also encounter this problem. Does this mean the web services can not take it object as parameter?

    Hi Paolo,
    maybe I faced the same issue. I solved it reading the thread:
    web service deployable client
    Hope this help
    Cheers
    Roberto

  • How to consume a web service provided by third party system from SAP system

    Hi Friends,
    Could any of you provide me a clear picture on how to consume a web service from SAP system and is provided by a third party system?
    Do we get an URL to create a client proxy for consuming the web service?
    Thanx in advance,
    Ram

    Hi Ram,
    of course you cannot supply the WSDL URL. Inside the WSDL (just view it in your browser) you find (usually but not necessary) towards the end something like
    <soap:address location="http://www.weather.gov/forecasts/xml/SOAP_server/ndfdXMLserver.php"/>
    which is the actual adress of the service.
    An example service can be found here:
    <a href="http://www.weather.gov/xml/">National Digital Forecast Database</a>
    containing the WSDL URL at
    <a href="http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl">this address</a>.
    You might also want to browse for the amazon webservices which allow you to embed queries against amazon into your application.
    have fun,
    anton

  • Error when consuming a web service in CF 11

    I am consuming a web service in ColdFusion what was written in .NET.  Some methods of the web service work fine, but some we get the below error.  We have identified the issue is the name of one of the properties in the web service appears to be the issue.  The property name is ID.  This is a very common property name so I would think someone has run across this before.  It appears that maybe ID is a default property for Axis?  I can dump the method that works and I see there is a getID() method with a return type of org.apache.axis.types.Id.
    If we change the name of the property to something other than ID it works, but this will cause us to refactor a lot of code.
    Here is the error I get when I try to call GetRoles method, which contains an ID property:
    Cannot perform web service invocation GetRoles. The fault returned when invoking the web service operation is:
    AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
    faultSubcode:
    faultString: org.xml.sax.SAXException: For input string: "i1"
    java.lang.NumberFormatException: For input string: "i1"
    faultActor:
    faultNode:
    faultDetail:
    {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: For input string: "i1"
    java.lang.NumberFormatException: For input string: "i1"
    at org.apache.axis.encoding.ser.BeanDeserializer.onStartElement(BeanDeserializer.java:462)
    at org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:393)
    at org.apache.axis.encoding.ser.BeanDeserializer.startElement(BeanDeserializer.java:154)
    at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java: 1048)
    at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
    at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
    at org.apache.axis.message... ''
    I am running CF 11 Update 4.

    I am not passing any parameters to the method (it has no parameters).  On the ColdFusion side I do not use i1 anywhere.  I will check with the .net developer on Monday to see if he is using it anywhere in his code.  If he is he is using in consistently as the only methods that work from his service are those that do not have an ID property.  All services with an ID property give me the same error message.

  • Consuming a Web Service with WEB AS 6.40

    Hello,
    i try to consume a Webservice from the internet. I have configured the logical port and i created the client proxy as shown in the following real good weblog from
    Thomas Jung.
    /people/thomas.jung3/blog/2004/11/17/bsp-a-developers-journal-part-xiv--consuming-webservices-with-abap
    But when i try to test the proxy in SE80 I retrieve the following error:
    <CODECONTEXT>http://www.sap.com/xml_errorcodes</CODECONTEXT>
      <CODE>SOAP:111</CODE>
      <ERRORTEXT>Unallowed RFC-XML Tag (SOAP_EINVALDOC)</ERRORTEXT>
    What's wrong here? Someone can help me?
    Thanks for your help!
    Klaus

    We had the same error message for one of our Proxy Web Service calls.
    We tried to use an RFC instead of the URL, and performed a TEST CONNECTION.  And low and behold, we received an error message that was much more helpful than the "Unallowed RFC-XML Tag (SOAP_EINVALDOC)" message.
    The problem for us was that the Server that we were trying to consume the Web service from was blocking the IP address of our Web Application Server.
    We contacted the administrator, he verified that was the case, removed the restriction, and all is good now.
    Here was the message we saw when we tested it in the RFC:
    The Web server you are attempting to reach has a list of IP addresses that are not allowed to access the Web site, and the IP address of your browsing computer is on this list.  Please try the following: Contact the Web site administrator if you believe you should be able to view this directory or page.
    Hope this helps!

  • Help with consuming a web service

    Hi guys,
    I'm trying to consume a web service but I have the following problem when I consume it:
    javax.xml.rpc.soap.SOAPFaultException: Internal Error
    at com.sun.xml.rpc.client.StreamingSender._raiseFault(StreamingSender.ja
    va:491)
    at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:307
    at qtel.tibco.transferAsset.AssetPort_Stub.transferAsset(AssetPort_Stub.
    java:67)
    at transferasset.Main.main(Main.java:34)
    I'm using NetBeans 5.0 with JDK 1.4 and the JAX-RPC 1.6
    here is my Code:
    package transferasset;
    import java.io.*;
    import javax.xml.rpc.*;
    import java.rmi.*;
    * @author Administrator
    public class Main {
        /** Creates a new instance of Main */
        public Main() {
         * @param args the command line arguments
        public static void main(String[] args) {
           try{
             System.out.println(args[0] + " " + args[1] + " " + args[2] );
             qtel.tibco.transferAsset.AssetManagementServiceServiceagent service = new qtel.tibco.transferAsset.AssetManagementServiceServiceagent_Impl();
             qtel.tibco.transferAsset.AssetPort port = service.getAssetPortEndpoint1();
             qtel.tibco.transferAsset.TransferAssetRequest req = new  qtel.tibco.transferAsset.TransferAssetRequest(args[0].toString(),args[1].toString(),args[2].toString());
             qtel.tibco.transferAsset.TransferAssetResponse result = port.transferAsset(req);
             System.out.print(result.getData().getReturnStatus());
           }catch(javax.xml.rpc.soap.SOAPFaultException e){
               //System.out.print(e.getFaultString());
               //System.out.print(e.getFaultActor());
               e.printStackTrace();
        }catch(Exception e){
                e.printStackTrace();
               System.out.println(e.getMessage());
               //System.out.println("exception");
           //return result.getData().getReturnStatus();
    }the problem is as folowwing in the command prompt when I run the following command I will have no error and the web service work fine:
    java -jar "C:\updateassetinfo\dist\updateassetinfo.jar" 1 1 1
    but the problem will appear if I send a character in the parametars like this:
    java -jar "C:\updateassetinfo\dist\updateassetinfo.jar" 12367 3456 HC-098
    So any help will be Appreciated
    thanks in advance.

    Hi guys,
    I'm trying to consume a web service but I have the following problem when I consume it:
    javax.xml.rpc.soap.SOAPFaultException: Internal Error
    at com.sun.xml.rpc.client.StreamingSender._raiseFault(StreamingSender.ja
    va:491)
    at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:307
    at qtel.tibco.transferAsset.AssetPort_Stub.transferAsset(AssetPort_Stub.
    java:67)
    at transferasset.Main.main(Main.java:34)
    I'm using NetBeans 5.0 with JDK 1.4 and the JAX-RPC 1.6
    here is my Code:
    package transferasset;
    import java.io.*;
    import javax.xml.rpc.*;
    import java.rmi.*;
    * @author Administrator
    public class Main {
        /** Creates a new instance of Main */
        public Main() {
         * @param args the command line arguments
        public static void main(String[] args) {
           try{
             System.out.println(args[0] + " " + args[1] + " " + args[2] );
             qtel.tibco.transferAsset.AssetManagementServiceServiceagent service = new qtel.tibco.transferAsset.AssetManagementServiceServiceagent_Impl();
             qtel.tibco.transferAsset.AssetPort port = service.getAssetPortEndpoint1();
             qtel.tibco.transferAsset.TransferAssetRequest req = new  qtel.tibco.transferAsset.TransferAssetRequest(args[0].toString(),args[1].toString(),args[2].toString());
             qtel.tibco.transferAsset.TransferAssetResponse result = port.transferAsset(req);
             System.out.print(result.getData().getReturnStatus());
           }catch(javax.xml.rpc.soap.SOAPFaultException e){
               //System.out.print(e.getFaultString());
               //System.out.print(e.getFaultActor());
               e.printStackTrace();
        }catch(Exception e){
                e.printStackTrace();
               System.out.println(e.getMessage());
               //System.out.println("exception");
           //return result.getData().getReturnStatus();
    }the problem is as folowwing in the command prompt when I run the following command I will have no error and the web service work fine:
    java -jar "C:\updateassetinfo\dist\updateassetinfo.jar" 1 1 1
    but the problem will appear if I send a character in the parametars like this:
    java -jar "C:\updateassetinfo\dist\updateassetinfo.jar" 12367 3456 HC-098
    So any help will be Appreciated
    thanks in advance.

  • Consuming a web service in Oracle9i with JAX-RPC calling

    Hello,
    i need to generate web service client in oracle9i db using jpublisher. And i found in this tutorial http://www.oracle.com/technology/sample_code/tech/java/jsp/callout_users_guide.htm that Oracle 9i is not supporting JAX-RPC web services calling, because of JDK 1.3.
    Is there any possibility to consume a web service using JAX-RPC instead of Oracle SOAP in Oracle 9.2 database ?

    I use utl_http pl/sql supplied package for this need - http://akdora.wordpress.com/2007/08/03/calling-a-web-service-by-plsql-utl_http/
    But I believe you may find more information with these resource -
    http://www.oracle.com/technology/sample_code/tech/java/web_services/index.html
    http://forums.oracle.com/forums/forum.jspa?forumID=97
    http://forums.oracle.com/forums/forum.jspa?forumID=99
    http://www.oracle.com/technology/sample_code/tech/java/jsp/dbwebservices.html
    Best regards.

  • Web-service client for legacy web service

    I currently access a legacy server (Lotus Domino 7) via CORBA. I thought a web service (my second) would be faster, but a whole day's research has uncovered only obsolete or trivial examples.
    The WSDL generated by the server is rpc/encoded so wsimport cannot generate the necessary "artifacts" for a web service client.
    The web service is simple: it accepts two java.lang.Strings, and returns a java.lang.String of XML. The "dynamic proxy" approach from 1.4.2 seems to have disappeared; I was hoping that approach would let me just hand-code a single "artifact" - an SEI based on the method information in the WSDL.
    1) What classes in JAX-WS will let my web service client communicate with rpc?
    2) With such a simple signature, do I need any other "artifacts" beyond an SEI?
    Thanks for any help!

    In case anyone's search leads them here, I've posted the solution at:
    *[http://www.pby.com/general.nsf/webarticles/dominowebservice01]*
    It is an exhaustive article (not "Hello World"!) that goes through several versions of the web service and client - hopefully explaining all* pieces of the puzzle:
    ~ web service code,
    ~ WSDLs
    ~ schema
    ~ thoroughly-documented clients that do and do not use JAXB
    ~ ... that use generated artifacts
    ~ ... that customize existing POJOs
    ~ the SOAP messages generated in each direction
    ~ the necessary JAXB annotations
    ~ explanations of how the code works
    ~ explanations of how namespaces affect the code
    ~ on and on and on...
    My constant goal was to write an uncomplicated solution that uses as few artifacts (two) and annotations as possible. The end result is a small, fast JAX-WS 2.0 client that uses JAXB to invoke and consume a secured Domino 7 (1.4.2 JVM + AXIS) web service, using RPC/literal SOAP messages.

  • Consume Restful Web Services

    Hi,
    I have experience consuming Soap Web Services using utl_dbws.
    Our client provides various rest web services that we need to access within the database.
    We wan't a pure pl/sql solution without any additional java components.
    Does anyone have any information on how to consume REST web services?
    Thanks

    Check out APEX_WEB_SERVICE.
    Ta,
    Trent

Maybe you are looking for

  • Fax Attachments

    Hi all, we have a problem with display of fax attachments in the view FaxDispLrg, instead in the view FaxPreview they are displayed properly. The table is always empty: i try to debug it but i can't find the problem. Has anyone ever encountered this

  • Reg. Price Control V

    Hi All, I have a material which is both Procurred and Produced inhouse. I have Material Master Price control for this material as V (Moving Average). Now when i raise a production order and do a GR for this material, my stock gets updated by the pric

  • EPMA application error

    Hi gurus, In epma application library i deleted one of the existing application and created a new application the application was deployed successfully. I need to implement partitions to this application. I have successfully defined partition(two rep

  • Trading partner in FI document

    Dear Experts, Where can i set to release the filed- trading partner ( BSEG-VBUND )to user for entrying FI document? I have checked 'Field status group' there is no trading partner can set as optional. Please advice! Thanks a lot!

  • Deploy orchestration without inbound port

    Hi  I'm using BTDF and I have one biztalk application that have an orchestration that does not have an inbound port. This is because the orchestration is callable from other orchestrations.  the orhestration however have two way ports that calls and