Unable to process SOAP Header child element 'wsse:Security' with 'mustUnder

Hello everyone.
In have created project in Jdeveloper. In this one i have one external reference for Siebel Service.
At composite, for external reference service(Siebel Service) i have added a security policy i.e. *"oracle_wss_username_token_client_policy"*.
[Right click on SiebelService->configure WS policies->under security tab i have selected above policy]
So apart from this i have added property for the policy
<property name="oracle.webservices.auth.username" type="xs:string"
many="false" override="may">SADMIN</property>
<property name="oracle.webservices.auth.password" type="xs:string"
many="false" override="may">SADMIN</property>
But its returning following error,
Unable to process SOAP Header child element 'wsse:Security' with 'mustUnderstand="1"'(SBL-EAI-08000)
This really pushed back me in development.
Really i am in need of help. Help me out of this issue.
Thanks in advance,
Shridhar

Unable to process SOAP Header child element 'wsse:Security' with 'mustUnderstand="1"'(SBL-EAI-08000)The problem is at Siebel side. It is not able to understand the security mechanism being used at SOA side. There are two options -
1. Use the custom policy and assertion at SOA side (please refer to metalink note - 1419373.1)
2. Write your own custom message handler class and use it at Siebel side to negotiate security gap
Regards,
Anuj

Similar Messages

  • SOAP element wsse:Security with mustUnderstand="1"(SBL-EAI-08000)

    Attempting to access Siebel (CRM On Demand) web service using Weblogic web service data control in JDeveloper, set web service security policy to "oracle/wss_username_token_client_policy", receiving the following error:
    The Web Service call failed. The service returned a SOAP fault with the message: [SOAP-ENV:MustUnderstand] Unable to process SOAP Header child element 'wsse:Security' with 'mustUnderstand="1"'(SBL-EAI-08000)
    How can I set mustUnderstand="0" in the SOAP request? (I cannot change the web service to accept mustUnderstand="1")
    Thanks!
    Edited by: user507901 on Dec 12, 2009 2:09 PM

    I am experiencing the exact same problem. From my research, it appears that the problem has to do with the namespace and WS-Security version compatibility.
    Here's some related information:
    wsse security property in partnerLinkBinding not work in 10.1.3.4 MLR3
    Re: Exception with security-enabled web service proxy
    Similar problems when connecting from Microsoft to Siebel:
    http://social.msdn.microsoft.com/Forums/en/wcf/thread/cc48f572-7082-40d1-9b6b-dcdc7223bc85
    (google cache of information that is very relevant)
    http://74.125.47.132/search?q=cache:v9gAA2zDcqgJ:soa-howto.blogspot.com/2008/04/invoking-ws-security-compliant-web.html+siebel+ws-security+oasis+2004&cd=9&hl=en&ct=clnk&gl=us&client=firefox-a
    http://74.125.47.132/search?q=cache:nIe07-zdum0J:soasol.blogspot.com/2009/06/missing-in-soap-header-when-calling.html+wsseOASIS2004Compliant&cd=3&hl=en&ct=clnk&gl=us&client=firefox-a
    Documentation from SOA Suite 10g. Search for "wsseOASIS2004Compliant":
    http://download-west.oracle.com/docs/cd/B31017_01/integrate.1013/b28982.pdf
    I've tried a number of different ways to set the "wsseOASIS2004Compliant" property to "false" for my partner link, but it simply has no effect in 11g.
    Edited by: user12107520 on Dec 15, 2009 10:36 AM

  • Error parsing envelope: Header child element must be namespace qualified

    Hey all,
    I'm creating a BPEL process that invokes a web service. The web service has an authenticate method that returns a session ID that I attempt to invoke. However, the process fails when trying to parse the response when invoking that operation. I checked the server logs and it's reporting the following: javax.xml.soap.SOAPException: Error parsing envelope: most likely due to an invalid SOAP message.: Header child element 'ID' must be namespace qualified!
    So I invoked the authenticate operation using SOAP UI, since it doesn't parse the response but merely displays it, and here's what was returned (slightly modified):
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
       <soapenv:Header>
          <ID>xxx</ID>
       </soapenv:Header>
       <soapenv:Body>
          <ns1:SessionID xmlns:ns1="http://some-namespace">
             <ns1:ID>xxx</ns1:ID>
          </ns1:SessionID>
       </soapenv:Body>
    </soapenv:Envelope>
    Indeed the ID tag in the header doesn't have a namespace prefix. Looking at the SOAP 1.1 spec it says, “A header entry is identified by its fully qualified element name, which consists of the namespace URI and the local name. All immediate child elements of the SOAP Header element MUST be namespace-qualified.”
    I was told that the code for the web service is frozen and cannot be changed. Are there any ways around this problem? Is it possible for the BPEL process to not parse the SOAP header?
    Thanks,
    Bill

    All,
    I think I might use a HeaderHandler to either strip the offending element from the header all together or modify it so that it's namespace qualified. The problem is, I can't find much documentation on it. The only thing I can find is this: Manipulating XML Data in BPEL section 3.19. It says to implement the HeaderHandler interface but doesn't give the fully qualified name of the interface. I'm guessing it's referring to com.collaxa.cube.ws.HeaderHandler. The invoke method that is defined in the interface is a little different than the one in the documentation. Mine has a signature of public void invoke(CXPartnerLink partnerLink, String operationName, Map payload, List list, Map map2)...what do these parameters represent and what key/value types do the maps have? It also says to register the handler in the bpel.xml deployment descriptor file but I can't find one - is it auto-generated? If so, where is it. If not, how do I generate it? I appreciate any information.
    Thanks,
    Bill

  • Header child element 'WSCorIDSOAPHeader' must be namespace qualified!

    I have two machines. The first machine have an OSB managed server and admin server. The second machine have a SOA managed server, admin server and enterprise manager.
    A service call in OSB is redirect do SOA Server (BPEL process).
    After the route the follow message error show in SOA Server log.
    INFO: FabricProviderServlet.stateChanged SOA Platform is running and accepting requests
    javax.xml.soap.SOAPException: Error parsing envelope: most likely due to an invalid SOAP message.: Header child element 'WSCorIDSOAPHeader' must be namespace qualified!
         at oracle.j2ee.ws.saaj.soap.AbstractSOAPImplementation.createEnvelope(AbstractSOAPImplementation.java:137)
         at oracle.j2ee.ws.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:95)
         at oracle.j2ee.ws.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:64)
         at oracle.j2ee.ws.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:1572)
         at oracle.j2ee.ws.common.soap.SoapUtils.getSOAPBodyFirstChildQName(SoapUtils.java:249)
         at oracle.j2ee.ws.server.mgmt.runtime.model.WebServiceOperationModelHelper.getOperationModelFromInputMessage(WebServiceOperationModelHelper.java:139)
         at oracle.j2ee.ws.server.provider.ProviderPort.getOperationModelFromInputMessage(ProviderPort.java:986)
         at oracle.j2ee.ws.server.mgmt.runtime.SuperServerInterceptorPipeline.handleRequest(SuperServerInterceptorPipeline.java:132)
         at oracle.j2ee.ws.server.provider.management.AbstractProviderInterceptorPipeline.executeRequestInterceptorChain(AbstractProviderInterceptorPipeline.java:563)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.executeInterceptorRequestChain(ProviderProcessor.java:921)
         at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:231)
         at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:193)
         at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:459)
         at oracle.integration.platform.blocks.soap.FabricProviderServlet.doPost(FabricProviderServlet.java:507)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:821)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
    Caused By: javax.xml.soap.SOAPException: Header child element 'WSCorIDSOAPHeader' must be namespace qualified!
         at oracle.j2ee.ws.saaj.soap.HeaderImpl.createChildElement(HeaderImpl.java:213)
         at oracle.j2ee.ws.saaj.soap.ElementImpl.createAndAppendChildElement(ElementImpl.java:827)
         at oracle.j2ee.ws.saaj.soap.StaxHandler.startElement(StaxHandler.java:222)
         at oracle.j2ee.ws.saaj.soap.StaxHandler.staxParse(StaxHandler.java:82)
         at oracle.j2ee.ws.saaj.soap.StaxHandler.staxParse(StaxHandler.java:70)
         at oracle.j2ee.ws.saaj.soap.AbstractSOAPImplementation.getStaXParsedEnvelope(AbstractSOAPImplementation.java:204)
         at oracle.j2ee.ws.saaj.soap.AbstractSOAPImplementation.createEnvelope(AbstractSOAPImplementation.java:58)
         at oracle.j2ee.ws.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:95)
         at oracle.j2ee.ws.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:64)
         at oracle.j2ee.ws.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:1572)
         at oracle.j2ee.ws.common.soap.SoapUtils.getSOAPBodyFirstChildQName(SoapUtils.java:249)
         at oracle.j2ee.ws.server.mgmt.runtime.model.WebServiceOperationModelHelper.getOperationModelFromInputMessage(WebServiceOperationModelHelper.java:139)
         at oracle.j2ee.ws.server.provider.ProviderPort.getOperationModelFromInputMessage(ProviderPort.java:986)
         at oracle.j2ee.ws.server.mgmt.runtime.SuperServerInterceptorPipeline.handleRequest(SuperServerInterceptorPipeline.java:132)
         at oracle.j2ee.ws.server.provider.management.AbstractProviderInterceptorPipeline.executeRequestInterceptorChain(AbstractProviderInterceptorPipeline.java:563)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.executeInterceptorRequestChain(ProviderProcessor.java:921)
         at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:231)
         at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:193)
         at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:459)
         at oracle.integration.platform.blocks.soap.FabricProviderServlet.doPost(FabricProviderServlet.java:507)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:821)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
    >
    What is WSCorIDSOAPHeader ???

    Remove Introscope agend configuration temporarily from yours managed servers and try call the service.
    This is the cause of your problem.
    Contact your Introscope Administration and task about the problem of Introscope + OSB + BPEL (SOA Server).
    Workaround:
    Remove Introscope agend configuration temporarily from yours managed servers and try call the service.

  • Unable to set Labelfield for child element  in List

    Hi All,
    Below is code I am trying to execute
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml" verticalGap="0" xmlns:local="*" height="500" creationComplete="init()" >
    <mx:Script>
    <![CDATA[
    private var arr:Array = [{ firstName: "Alex", children:{lastName: "Abc"}}] 
    private function init():void{list.dataProvider=arr;
    ]]>
    </mx:Script>
    <mx:List variableRowHeight="true" wordWrap="
    true" id="list" labelField="
    chidren.lastName" /></mx:Application>
    I basically want to access the children.lastName on my List. Please let me know how exactly can I do it.

A: Unable to set Labelfield for child element  in List

labelFunction is the best way to do this. The attached code also shows how to do it with an itemRenderer, though that would not be as efficient.
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
  xmlns:mx="http://www.adobe.com/2006/mxml"
  layout="horizontal"
  creationComplete="init()" >
  <mx:Script>
    <![CDATA[
      private var arr:Array = [{ firstName: "Alex", children:{lastName: "Abc"}}]
      private function init():void{
        list1.dataProvider=arr;
        list2.dataProvider=arr;
      private function createLabels(item:Object):String{
        return item.children.lastName;
    ]]>
  </mx:Script>
  <mx:List variableRowHeight="true"
    wordWrap="true" id="list1">
    <mx:itemRenderer>
      <mx:Component>
        <mx:Label text="{data.children.lastName}"/>
      </mx:Component>
    </mx:itemRenderer>
  </mx:List>
  <mx:List variableRowHeight="true"
    wordWrap="true" id="list2"
    labelFunction="createLabels"/>
</mx:Application>
If this post answers your question or helps, please mark it as such. Thanks!
http://www.stardustsystems.com
Adobe Flex Development and Support Services

labelFunction is the best way to do this. The attached code also shows how to do it with an itemRenderer, though that would not be as efficient.
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
  xmlns:mx="http://www.adobe.com/2006/mxml"
  layout="horizontal"
  creationComplete="init()" >
  <mx:Script>
    <![CDATA[
      private var arr:Array = [{ firstName: "Alex", children:{lastName: "Abc"}}]
      private function init():void{
        list1.dataProvider=arr;
        list2.dataProvider=arr;
      private function createLabels(item:Object):String{
        return item.children.lastName;
    ]]>
  </mx:Script>
  <mx:List variableRowHeight="true"
    wordWrap="true" id="list1">
    <mx:itemRenderer>
      <mx:Component>
        <mx:Label text="{data.children.lastName}"/>
      </mx:Component>
    </mx:itemRenderer>
  </mx:List>
  <mx:List variableRowHeight="true"
    wordWrap="true" id="list2"
    labelFunction="createLabels"/>
</mx:Application>
If this post answers your question or helps, please mark it as such. Thanks!
http://www.stardustsystems.com
Adobe Flex Development and Support Services

  • Split-Join, unable to set SOAP:HEADER in OSB at Invoke Service Component.

    Hi Experts,
        i created a Split-join for parallel processing and invoke third party services, but this service requires some mandatory elements in soap:header like WS-Addressing and, WSA-TO and some security infomation, but i don't know  how to pass header in invoke service step. Please help me to setup Header for Invoke services in split join.
    Please help me to resolve this issue.
    Thanks
    Ankit

    see this :https://forums.oracle.com/thread/951618
    not the most fancy way, but you can create some sort of  wrapper proxyservice in front of your business service to make it work

  • Processing soap header in ejb, help me !!!

    Could anyone tell me how can i get the soap header information in ejb to process? I have implement the headercallback in the implementation bean and add the processheader method, but when i invoke the ejb method through proxy, the exception like "you must implement headercallback.." arise. Did i leave any step undone? Thank you very much!

    netbeans.org has a lot of resources on developing EJB. Just search at netbeans.org upper-right corner:
    http://www.netbeans.org/
    One of them is a 30-min tutorial:
    http://www.netbeans.org/kb/55/ejb30.html
    You can also read JavaEE Tutorial, especially the chapter Get Started with EJB:
    http://java.sun.com/javaee/5/docs/tutorial/doc/
    -cheng

  • Add child element by name with namespace

    I'm trying to add element by name that is in namespace. This call
    mod.addAppendStep ( Exp, XmlModify.Element, Name, Text )
    fails with error:
    Error: XmlModify::addStep: Cannot create content for step
    Name in abobe call is "my_ns:elem_name", query context is linked to that namespace (I tried query context not linked to namespace as well).

    If you want to add an element in a namespace, you need to do it using an empty name, and put the element (with namespace decl). E.g.:
    mod.addAppendStep(Exp, XmlModify.Element, "", "<my_ns:elem_name xmlns:my_ns='uri_for_my_ns' />").
    The exception you're seeing is saying that it can't create the content, and the content is created by parsing what is passed in, and <my_ns:elem_name/> is not well-formed (namespace prefix hasn't been mapped).
    Regards,
    George

  • Namespace prefix for Security elements being removed from SOAP Header

    Hello, I'm seeing a strange problem when accessing a web service using two different Netbeans projects.
    If I use a Netbeans Java Application, add the Web Client Reference , add the web client code, all works fine and the wsse:Security element looks like this:
    <S:Header>
    <ns4:Security xmlns:ns2="IAMP" xmlns:ns3="urn:realops.com:amp:workflow" xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <ns4:UsernameToken>
    <ns4:Username>admin</ns4:Username>
    <ns4:Password>admin123</ns4:Password>
    </ns4:UsernameToken>
    </ns4:Security>
    However if I do a similar sort of thing but access the web service via a Web Application, the namespace prefix is removed from all child elements wsse:Security like so:
    <S:Header>
    <ns4:Security xmlns:ns2="IAMP" xmlns:ns3="urn:realops.com:amp:workflow" xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <UsernameToken>
    <Username>admin</Username>
    <Password>admin123</Password>
    </UsernameToken>
    </ns4:Security>
    Which causes an authentication exception.
    The question is, why, when the wsdl are exactly the same for both projects , is the namespace prefix removed from the web app?
    Thanks in advance,
    jsz.

    Hello, I'm seeing a strange problem when accessing a web service using two different Netbeans projects.
    If I use a Netbeans Java Application, add the Web Client Reference , add the web client code, all works fine and the wsse:Security element looks like this:
    <S:Header>
    <ns4:Security xmlns:ns2="IAMP" xmlns:ns3="urn:realops.com:amp:workflow" xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <ns4:UsernameToken>
    <ns4:Username>admin</ns4:Username>
    <ns4:Password>admin123</ns4:Password>
    </ns4:UsernameToken>
    </ns4:Security>
    However if I do a similar sort of thing but access the web service via a Web Application, the namespace prefix is removed from all child elements wsse:Security like so:
    <S:Header>
    <ns4:Security xmlns:ns2="IAMP" xmlns:ns3="urn:realops.com:amp:workflow" xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <UsernameToken>
    <Username>admin</Username>
    <Password>admin123</Password>
    </UsernameToken>
    </ns4:Security>
    Which causes an authentication exception.
    The question is, why, when the wsdl are exactly the same for both projects , is the namespace prefix removed from the web app?
    Thanks in advance,
    jsz.

  • Unable to add custom SOAP header to consumer webservice in CRM( without using PI)

    Hello Experts,
    We have a requirement to consume webservice proxy in CRM without involving PI. We have WSDL file which has many services as depicted in the first screenshot.After checking old posts, I could add custom SOAP header by using if_wsprotocol_ws_header and there is no xml parsing error for ws_header.Have used if_ixml_stream_factory to check xml parsing error for header.
    '<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" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">'
    '<wsse:UsernameToken wsu:Id="UsernameToken-2">'
                '<wsse:Username>user id</wsse:Username>'
                '<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">paswd</wsse:Password>'
                '<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">MT0B9XFzsZJXXKmVKOsj/Q==</wsse:Nonce>'
                '<wsu:Created>2015-03-30T06:29:17.407Z</wsu:Created>'
    '</wsse:UsernameToken>'
    '</wsse:Security>'
    '</soapenv:Header>' INTO l_string.
    But when my ABAP program as a whole gets executed where consumer proxy is called, then it still throws XML parsing error - undeclared namespace prefix. As mentioned, there is no parsing error for header and WSDL file as a whole in SOAP UI tool works fine,by manually adding SOAP header.
    Have configured SOAMANAGER with logical port.Or any wrong setting in SOAMANAGER can cause this issue? When I tested webservice ping, it gave me attached error but I read in a SAP note that such error can be ignored.
    I want to know if some more setting/coding is required if we manually add custom header to a payload? Is PI really required to implement this requirement? Payload mapping has to be done to add custom header and if that can be taken care by ABAP coding and how?
    Can you please help?
    BR,
    Nisha Verma

    Hello Experts,
    I have not found the solution yet.
    Can anyone provide some insight??
    BR,
    Nisha Verma

  • Set  SOAP header element while invoking WS thru ADF webservice Data control

    Experts,
    I am trying to invoke/call a webservice (using ADF web service data control ) which is expecting custom element in SOAP-Header. I want to know the steps needed to set SOAP-Header custom element when using ADF web service data control. SOAP-Header custom element will be string type, something like
    <soap:Header><element1>String</element1></soap:Header>
    Thank you,
    Ashish

    Hi,
    extend the SOAPProvider class
    import javax.xml.soap.SOAPEnvelope;
    import javax.xml.soap.SOAPException;
    import javax.xml.soap.SOAPMessage;
    import oracle.adf.model.adapter.AdapterException;
    import oracle.adfinternal.model.adapter.webservice.provider.soap.SOAPProvider;
    public class CustomSOAProvider extends SOAPProvider {
        public CustomSOAProvider() {
            super();
        //expose protected method to public
        public void handleRequest(SOAPMessage soapMessage) throws AdapterException {
            super.handleRequest(soapMessage);
        //Expose protetcted method to public
        public void handleResponse(SOAPMessage soapMessage) throws AdapterException {
            super.handleResponse(soapMessage);
        }And configure it in the DataControls.dcx file of your WS DC project
    <AdapterDataControl id="..."
    xmlns="http://xmlns.oracle.com/adfm/datacontrol">
    <Source>
    <definition xmlns="http://xmlns.oracle.com/adfm/adapter/webservice"
    name="..." version="1.0"
    provider="adf.sample.wsdc.CustomSOAProvider"
    wsdl="http://...">
    Frank

  • Creating Custom SOAP header in the Sender soap scenario

    Hello Experts,
    Currently i have a SOAP to RFC scenario . In which in the request parameter i have single input parameter. But as per the requirement we need to have some xml parameters in the soap header .
    So i want the soap request looks like below,
    <?xml version="1.0"?>
    -<SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    -<SOAP-ENV:Header>
    -<ns0:TestHeader xmlns:ns0="http://testcustomer.com">
    -<MessageDetails>
    <ServiceType/>
    <ServiceAction>String</ServiceAction>
    <MessageRole rtype=""/>
    -<MessageSource>
    <SourceName/>
    <SourceID idtype=""/>
    </MessageSource>
    -<MessageDestinations>
    -<MessageDestination>
    <DestinationID idtype=""/>
    <DestinationName/>
    </MessageDestination>
    </MessageDestinations>
    <Property Name=""/>
    </MessageDetails>
    </ns0:TestHeader>
    </SOAP-ENV:Header>
    -<SOAP-ENV:Body>
    -<m:MT_CERT_IP xmlns:m="http://mydzit.gov.sa/zakat">
    <INPUT1>102140000007</INPUT1>
    </m:MT_CERT_IP>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Kindly let me know the steps, how can i achieve this ??
    I have referred the AddSOAPHeaderBean  module but still not received the needed output.
    Best Regards,
    Amit

    Hi Amit,
    My few cents.
    You have an example in Dimitri Sannen's blog Read SOAP header information doing the mapping with XSLT.
    Also, you have an other example like Dev Noronha suggestion, in William Li's blog How to Read SOAP Header Information
    Regards.

  • Exception "main" javax.xml.ws.soap.SOAPFaultException: Missing SOAP Header

    Hi
    I need to integrate E-Business Suite with ADF using JAX-WS proxy client. When I tried to invoke a method exposed in webservices, I am getting the below error
    Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Missing in SOAP Header
    how to pass password with SOAP header?
    In a thread "https://forums.oracle.com/forums/thread.jspa?threadID=2125723", they mentioned to include "wss_username_token_client_policy" and to set override property to set user/pw from a csf key. I included that policy while generating the proxy client in "Step 7" and after then what should I do?
    Is it the only way to invoke secured webservices? if not what are the ways to do it?
    Can anyone give me good example or sample codes to invoke secured webservice through "JAX-WS Proxy client"
    Thanks

    I suppose that this is duplicate of How to pass username/password through WebService proxy client to E-BS.
    For full example check: http://www.javadb.com/using-a-message-handler-to-alter-the-soap-header-in-a-web-service-client
    Dario

  • WSRP wsse element missing in SOAP Header

    Hi
    I have a wlp 9.2.3 producer and consumer, i did set up the SAML security between these 2 domains and it was working fine. Now suddenly wsse:security section is missing in the soap headers which are being passed from consumer to producer. What could be the reason for the missing wsse ... how to add them back
    soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    *<Header xmlns="http://schemas.xmlsoap.org/soap/envelope/"/>*
    <soapenv:Body>
    <urn:initCookie xmlns:urn="urn:oasis:names:tc:wsrp:v1:types">
    <urn:registrationContext>
    <urn:registrationHandle>24002</urn:registrationHandle>
    </urn:registrationContext>
    </urn:initCookie>
    </soapenv:Body>
    </soapenv:Envelope
    Thanks
    Jesh

    The most likely cause is the user is not logged in.
    Other issues include misconfiguration of the WSDL policy or the SAML Credential Mapper in consumer's security realm.
    Hope this helps,
    Nate

  • How to add a custom element to a SOAP Header in c#

    I am new to SOAP and web-services, and not an expert on c# either so sorry if I have made an infuriatingly simple error.
    I am calling several web-services and I now need to add an element called *pcimask* to the SoapHeader in order to get a response that is PCI Compliant.
    The web-services/WSDL don't expose this property so I guess I need to add it at runtime.
    My application creates SOAP messages like the below: (the Soap Request and Response are output into a text file by a SOAP Logging class)
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Header>
    <AutHeader xmlns="http://edb.com/ws/WSCommon_v21">
    <SourceApplication>myApp</SourceApplication>
    <DestinationApplication>theirApp</DestinationApplication>
    <Function>CardCreate</Function>
    <Version>3.0.0</Version>
    <ClientContext>
    <userid>myID</userid>
    <credentials>SecureToken</credentials>
    <channel>NBA</channel>
    <orgid>123456</orgid>
    <orgunit>654321</orgunit>
    <customerid />
    <locale xsi:nil="true" />
    <ip>123.456.789.012</ip>
    </ClientContext>
    </AutHeader>
    </soap:Header>
    As I understand it, I need to add an element `pcimask="true` to the
    <ClientContext element, and it must be after the <ip>
    However the wsdl doesn't expose this as a property.
    So I have looked at the below resources:
     Bytes.com - how-add-soap-header-soap-message
     Stackoverflow: (18980689) adding-custom-soapheader-in-c-sharp-for-a-web-service-call
     Stackoverflow: (4035423) add-child-elements-to-custom-soap-header-in-spring-ws
    and I came up with a little class inside my `common.cs` as below:
    using System.Web.Services.Protocols;
    using System.Xml.Serialization;
    namespace EvryCardManagement
    [XmlRoot(Namespace = "http://edb.com/ws/WSCommon_v21")]
    [SoapHeader("EDBHeaderType", Direction = SoapHeaderDirection.In)]
    public class CardCreateEx : SoapHeader
    public string Value;
    public CardCreateEx pcimask;
    public static class Common
    public static bool closeMe { get; set; }
    public static int iMQRowID;
    public static string impNme;
    public static string impPwd;
    and I wanted to try and use it in my code that creates the SoapHeader as below:
    private EDBHeaderType wsSoapHeader()
    EDBHeaderType wsSoapHeader = new EDBHeaderType();
    /* ClientContext */
    ClientContextType clientContext = new ClientContextType();
    clientContext.userid = edb_service[0].userid;
    clientContext.credentials = Common.SOToken;
    //clientContext.pc
    clientContext.orgid = edb_service[0].orgid;
    clientContext.orgunit = edb_service[0].orgunit;
    clientContext.customerid = "";
    clientContext.channel = edb_service[0].channel;
    clientContext.ip = edb_service[0].ip;
    /* PCI MASK added to ClientContext in header; P-02925; Jan 2015 */
    CardCreateEx cardCreateExt = new CardCreateEx(); // P-02925; Jan 2015
    cardCreateExt.Value = "true";
    /* EDBHeader */
    wsSoapHeader.SourceApplication = edb_service[0].SourceApplication;
    wsSoapHeader.DestinationApplication = edb_service[0].DestinationApplication;
    wsSoapHeader.Function = edb_service[0].Function;
    wsSoapHeader.Version = edb_service[0].Version; // P-02925; Oct-Nov 2014
    wsSoapHeader.ClientContext = clientContext;
    return wsSoapHeader;
    but I get a build error:
        Attribute 'SoapHeader' is not valid on this declaration type. It is only valid on 'method' declarations.
    so what is the correct way to do this?

    Hi,
    >>Attribute 'SoapHeader' is not valid on this declaration type. It is only valid on 'method' declarations.
    Base on this situation, just as the error message says, the 'SoapHeader' attribute can only use on method, such as:
    [SoapHeader("myHeader", rection=SoapHeaderDirection.InOut)]
    //Receive any SOAP headers other than MyHeader.
    [SoapHeader("unknownHeaders",Required=false)]
    public string MyWebMethod() {
    return "Hello";
    For mire information:
    http://msdn.microsoft.com/en-us/library/system.web.services.protocols.soapheader(v=vs.110).aspx
    Besides, about Defining and Processing SOAP Headers:
    http://msdn.microsoft.com/en-us/library/77hkfhh8(v=vs.71).aspx
    http://stackoverflow.com/questions/18980689/adding-custom-soapheader-in-c-sharp-for-a-web-service-call
    Regards

  • Maybe you are looking for