SOAP Module for receivin message

Hi,
Now I have a receiver SOAP adapter. I am sending data and before sending it I use a module. The entry is before sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean.
I also want to use a module for the message received from the adapter. Do I have to call the module after the
sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean
entry?

> I also want to use a module for the message received from the adapter. Do I have to call the module after the
> sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean
> entry?
yes.

Similar Messages

  • SOAP handler for outgoing message

    Hello,
    I am implementing a order related webservice running under WebLogic 8.1. It sometime needs to send SOAP request to other external (outside my org) webservices. Is there a way to add a handler to intercept all outgoing SOAP message from my order webservice?
    Thanks,
    PC

    > I also want to use a module for the message received from the adapter. Do I have to call the module after the
    > sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean
    > entry?
    yes.

  • Compiling a SOAP module for PHP5 in Leopard

    Hi. I thought I'd try to compile a SOAP module for the stock PHP installation in MacOSX Leopard.
    I snagged the php-5.2.5 sources from php.net, and used the compile arguments found in the "php -i" command. I only added "--with soap=shared --enable-shared", like this:
    *./configure '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--disable-dependency-tracking' '--with-apxs2=/usr/sbin/apxs' '--with-ldap=/usr' '--with-kerberos=/usr' '--enable-cli' '--with-zlib-dir=/usr' '--enable-trans-sid' '--with-xml' '--enable-exif' '--enable-ftp' '--enable-mbstring' '--enable-mbregex' '--enable-dbx' '--enable-sockets' '--with-iodbc=/usr' '--with-curl=/usr' '--with-config-file-path=/etc' '--sysconfdir=/private/etc' '--with-openssl' '--with-xmlrpc' '--with-xsl=/usr' '--with-pear' --enable-soap=shared --enable-shared*
    This builds just fine.
    Then I:
    ~ copy php_src/modules/soap.so to /usr/lib/php/extensions/no-debug-non-zts-20060613/
    ~ set extension_dir="/usr/lib/php/extensions/no-debug-non-zts-20060613/" and add extension=soap.so in /private/etc/php.ini
    If I run "php -i" now, I get
    *dyld: NSLinkModule() error*
    *dyld: Symbol not found: _OnUpdateLong*
    *Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20060613/soap.so*
    *Expected in: flat namespace*
    *Trace/BPT trap*
    I found an OnUpdateLong function in php_src/ext/zlib/zlib.c, but I don't know if that's relevant.
    What am I doing wrong?
    (Yes, I know that there are several third-party stand alone php intallations for MacOSX (MacPorts, Fink, Entropy...), but I'd really like to just make the stock PHP work.)

    Now I've tried using the php source from
    http://www.opensource.apple.com/darwinsource/Current/apachemodphp-44/
    as well. I've just added "--enable-shared --enable-soap=shared
    --enable-zlib=shared" to the Makefile and removed the mysql-related lines.
    After running make and copying soap.so and zlib.so to /usr/lib/php/extensions/no-debug-non-zts-20060613/, the results are basically the same:
    The "symbol not found: _OnUpdateLong" came from missing zlib, but zlib complains about another missing symbol: zend_ini_boolean_displayercb.
    It seems like zendini_boolean_displayercb is defined in phpsrc/Zend/zendini.c as ZENDINI_DISP(zend_ini_boolean_displayercb). I cannot compile zend as a module, since it's a core thingie.

  • Function Module for getting message details on passing message ID.

    Dear All,
    Is there any way in XI through which I can get the complete details about the message if I pass the message ID to it. I am having message ID with me but I am not able to find its all details, is there any function module available??
    Warm Regards,
    N.Jain

    HI,
    Go through the below thread for the same information
    SXMB_MONI transaction table
    In Which Database Table the Messages are Stored in XI
    Thnx
    Chirag

  • Error capturing SOAP fault for Sync Messages

    Hi
    We have a Sync interface which makes a Proxy call from ECC to PI and then PI makes Soap Sync call to Web application. We are having issues when handling Exceptions. Sender is getting misleading errors in response, even though they are application errors the proxy sender is getting error like MappingObjectNotFound.
    When debug the PI system, PI is truncating error info when it return the reponse.
    Below is the scenario of Synchronous interface:
    ECC(Proxy) -> PI(Soap Receiver Adapter) -> MasterDataApp-(Webserver)
    Below is the actual response from Webserver (Extracted via TCPGW sniffer):
    <?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
    <soapenv:Fault>
    <faultcode>soapenv:Server.userException</faultcode>
    <faultstring>*java.rmi.RemoteException: No Messages Found*</faultstring>
    <detail>
    <ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">hostname.com</ns1:hostname>
    </detail>
    </soapenv:Fault>
    </soapenv:Body>
    </soapenv:Envelope>
    But PI receives this response payload like this :
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  XML Validation Inbound Channel Response
      -->
      <ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">hostname.com</ns1:hostname>
    and then Sync Request mesasge fails with below error because of the unexpected response payload as shown above:
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Call Adapter
      -->
    - <SAP:Error SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="MAPPING">NO_MAPPINGPROGRAM_FOUND</SAP:Code>
      <SAP:P1>Object ID B0CC6B27847A368AA04F4171EF6460F4 Software Component 86524CE0304911DEAE48CC6C83461631</SAP:P1>
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:Stack>Mapping program is not available in runtime cache: Object ID B0CC6B27847A368AA04F4171EF6460F4 Software Component 86524CE0304911DEAE48CC6C83461631</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Also in the response message see this error message:
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--
    XML Validation Inbound Channel Response
      -->
    - <SAP:Error SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
      <SAP:Category>Application</SAP:Category>
      <SAP:Code area="UNKNOWN">APPLICATION_ERROR</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>application fault</SAP:AdditionalText>
      <SAP:ApplicationFaultMessage namespace="http://xml.apache.org/axis/">hostname</SAP:ApplicationFaultMessage>
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Please let me for any clues how to handle this error response.
    Thanks,
    laxman

    Hi Laxman,
    SOAP Adapter cannot handle fault responses. I understand your issue. You even want to send the errorneous response from the Webservice as a payload back to the sender. But because of application error from Webservice, you are getting an error in the response message (Mapping Not found). SOAP Adapter cannot handle application error (i.e you will not get the errorneous response in form of payload) . For details please read below:
    The receiver adapter expects a SOAP message as response. For synchrnous calls, a successful response should be returned with HTTP 200. In this case, the content of the SOAP body will be returned to the caller as the response payload. When some error occurs, the SOAP message may contain the SOAP fault element. In this case, when the fault detail element is not empty, its content will be returned as the fault payload in an application error message. For others, a system error message will be returned to the caller.
    HTTP/1.1 200 OK
    Content-Type: text/xml; charset="utf-8"
    <SOAP:Envelope
    xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Body>
    <m:GetLastTradePriceResponse xmlns:m="Some-URI">
    <Price>34.5</Price>
    </m:GetLastTradePriceResponse>
    </SOAP:Body>
    </SOAP:Envelope>
    will result in an application response message with response payload
    <m:GetLastTradePriceResponse xmlns:m="Some-URI">
    <Price>34.5</Price>
    </m:GetLastTradePriceResponse>
    HTTP/1.1 500 Internal Server Error
    Content-Type: text/xml; charset="utf-8"
    <SOAP:Envelope
    xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Body>
    <SOAP:Fault>
    <faultcode>SOAP:MustUnderstand</faultcode>
    <faultstring>SOAP Must Understand Error</faultstring>
    </SOAP:Fault>
    </SOAP:Body>
    </SOAP:Envelope>
    will result in a system error message.
    HTTP/1.1 500 Internal Server Error
    Content-Type: text/xml; charset="utf-8"
    <SOAP:Envelope
    xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Body>
    <SOAP:Fault>
    <faultcode>SOAP:Server</faultcode>
    <faultstring>Server Error</faultstring>
    <detail>
    <e:myfaultdetails xmlns:e="Some-URI">
    <message>My application didn't work</message>
    <errorcode>1001</errorcode>
    </e:myfaultdetails>
    </detail>
    </SOAP:Fault>
    </SOAP:Body>
    </SOAP:Envelope>
    will result in an application error message with fault payload
    <e:myfaultdetails xmlns:e="Some-URI">
    <message>My application didn't work</message>
    <errorcode>1001</errorcode>
    </e:myfaultdetails>
    In order to send the erroneous response as a payload to the sender, you should develop flow in below manner:
    ECC(Proxy) -> PI --> ECC(Proxy)
    In PI make a SOAP lookup. The response of the SOAP lookup will contain the response given by the WebService (it can be a vaid response or an application error in WebService). Now map this response to the proxy...In this way you can handle the application error msgs from webservice..
    I hope this helps you...
    Regards,
    Rakesh Sharma

  • How to know the function module for a message type

    hi sd gurus,
    how can i know the function modules used ( based  on message type can i know it?) in inbound idoc processing.
    can anyone  let me know where can i find it out and the related transaction codes
    Thanks&Regards
    Srini

    You can find out the Functionmodule if you know the message type.
    Go to WE20, find the message type for hte relevant partner type by clicking the partner type and then clicking one partner int hat partner type.
    Now on the right hand side, you will get a screen. Based on whether it is your outbound IDOC or ibound, click the relevant parameters, select the message type and double click.
    In the new screen open the Message control tab and fidn out the process code of the IDOC.
    Now go to WE41 if ur IDOC is outbound or WE42 for inbound IDOC.
    Search for the process code which is assigned to the message type in WE20.
    Double click the process code, you will see the relevant function module in the 3rd field.
    Hope thsi helps you
    Pls reward if it helps.

  • Function module for error message with language param

    any Function Module that has language param in it?
    thanks,

    Dear Rayann,
    Use FM FORMAT_MESSAGE.
    Thanks & Regards,
    Nagaraj Kalbavi

  • Adapter Module for SOAP Sender

    Hi,
    Any alternative way to create adapter module for soap sender?
    Regards,
    Farooq

    But I just trying to know weather it will work for simple soap or not.
    Unfortunately it wont work for the normal SOAP protocol.
    Let me try my luck.
    If you are successful, then I would waiting for a blog
    Regards,
    Abhishek.

  • Function module to create messages for Purchase order

    Hi All,
    I am writing a BDC and recording steps to create Messages for a Purchase order(ME22N).
    For an existing PO, go to Messages and create a message with output type for EDI. Already there are existing Output types for Print and Fax,
    How do I default my cursor at the 3rd record if Print, and Fax are already there, and when I run this BDC for several PO's How do I know how many messages are there and where to place cursor to create message for EDI.
    Is there any Function module or Bapi available wherein I can directly give the PO number and create the message.
    Please suggest
    Thanks-

    I have a list of PO's in the internal table, I need to put a loop and for each PO, I need to create a message with output type for EDI. as I am not sure if there are already messages available for Print, Fax, and Email. I have an issue placing the cursor on the Messages window.
    So i thought if there is any function module to create message without going to message window, I can avoid those complications.
    How to do this. any suggestions?
    Thanks-

  • Can we edit SOAP Header for an Outbound ABAP Proxy message?

    Hi,
    Can we add some information such as dynamic configuration to the SOAP header for the outbound ABAP Proxy from ABAP report in SAP Application System?
    Regards,
    Praveen Gujjeti.

    Hi Praveen, have you found soulution for this? Can you share it with me?
    From here http://help.sap.com/saphelp_nw70/helpdata/EN/d6/49543b1e49bc1fe10000000a114084/content.htm
    The help described that:
    Set logging in the message header. This means that this message is logged even if logging is deactivated explicitly in the configuration. The logging information is part of the message header:
    ¡        <SAP:Logging>1</SAP:Logging>
    Activates logging explicitly.
    ¡        <SAP:Logging>0</SAP:Logging>
    Deactivates logging explicitly.
    So it means that we can edit SOAP header for outbound ABAP proxy. But i haven't find the correct method to do that.

  • When using Lightroom Book module for Blurb book making, why do I keep getting a low image quality message if it's supposedly accessing my large raw files in my library?

    When using Lightroom Book module for Blurb book making, why do I keep getting a low image quality message if it's supposedly accessing my large raw files in my library?

    I think I've solved my problem with a Google Search. I came across a free slide show generator
    (contributions requested) that shows much higher quality slide shows than either iPhoto or Aperture 3.
    You click on a folder of jpegs and it almost immediately generates thumbnails and within a few seconds
    I can be viewing a full screen, tack sharp, slideshow of all of the files in the folder. Much sharper than
    I'm used to seeing.
    I think I'll keep the Aperture 3 and use if for the purpose it's intended for in the future. I'll also redo the
    image preview files to the small size it started with and then I'll copy all of the files I'm interested in from
    iPhoto into a separate folder on another disk. I'll use Aperture to catalog and to perform image manipulations
    on but I won't try to use it as an iPhoto replacement. I don't think I'll be using iPhoto much as an image
    viewer in the future either after I finish moving my favorite pictures to the Phoenix Slides folder.
    The name of the free program is Phoenix Slides. It's free to download and try, free to keep (though I
    think you'd want to pay the small amount requested) and fast. My pictures have never looked so good
    before.
    http://blyt.net/phxslides/
    Message was edited by: Jimbo2001

  • Function Module for message "MBGMCR" in outbound process

    Hi all,
    I want to create an IDoc via EDI when I post a material document. I use messgae type MBGMCR and IDoc type MBGMCR02 and I already configured in partner profile and all about output determination in SAP-IM.
    And now I need a function module to process outbound IDoc of posting material document but I couldn't find a function module for processing.
    Pls let me know about that.
    Thanks for your time.

    Hi,
    You need to Code your own Z Function Module for this. Copy any standard outbound FM to create your own Z FM, so as to ensure that Interfaces are correct.  
    Refer to given below threads:
    Re: Standard IDOC for Goods Receipt
    Re: Idoc type for Goods Receipt
    Goods Receipt MIGO IDOC

  • Error on SOAP Receiver for Axis

    Hi all, 
    Is there anybody to help for solution?
    Thanks.
    Error on SOAP Receiver for axis
    Error Message
    <SAP:Category>XIAdapterFramework</SAP:Category>
      <SAP:Code area="MESSAGE">GENERAL</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: javax.ejb.EJBException: Exception in getMethodReady() for stateless bean sap.com/com.sap.aii.axis.appxml|com.sap.aii.adapter.axis.ejb.jarxml|AFAdapterBean; nested exception is: com.sap.engine.services.ejb3.util.pool.PoolException: javax.ejb.EJBException: Exception raised from invocation of public void com.sap.aii.adapter.axis.modules.AFAdapterBean.ejbCreate() throws javax.ejb.CreateException method on bean instance com.sap.aii.adapter.axis.modules.AFAdapterBean@3ff5ea5d for bean sap.com/com.sap.aii.axis.appxml|com.sap.aii.adapter.axis.ejb.jarxml|AFAdapterBean; nested exception is: javax.ejb.CreateException: java.lang.NoClassDefFoundError: org/apache/axis/types/URI$MalformedURIException</SAP:AdditionalText>
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>

    We deployed com.sap.aii.af.axisproviderlib.sda to use SOAP for axis.
    We sent data from SAP to Axis, error below ocured?
    What must we do to solve problem?
    Thanks.
    Error
    <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>XIAdapterFramework</SAP:Category>
      <SAP:Code area="MESSAGE">GENERAL</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: org.apache.axis.ConfigurationException: handler is not instantiated org.apache.axis.ConfigurationException: handler is not instantiated at com.sap.aii.adapter.axis.modules.HandlerCore.process(HandlerCore.java:73) at com.sap.aii.adapter.axis.modules.HandlerBean.process(HandlerBean.java:75) at sun.reflect.GeneratedMethodAccessor360_10000.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:43) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:71) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:38) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:22) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:189) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:16) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:21) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:16) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:133) at com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:164) at $Proxy2634_10000.process(Unknown Source) at com.sap.aii.af.app.mp.ejb.ModuleProcessorBean.process(ModuleProcessorBean.java:275) 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:585) at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:43) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:71) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:38) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:22) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:189) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:16) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:21) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:16) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:133) at com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:164) at $Proxy1431_10000.process(Unknown Source) at com.sap.aii.af.app.listener.AFWListenerBean.onMessage(AFWListenerBean.java:332) 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:585) at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:43) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:71) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:38) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:22) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:189) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:16) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:21) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:16) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:133) at com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:164) at $Proxy1479_10000.onMessage(Unknown Source) at com.sap.engine.messaging.impl.spi.ServicesImpl.deliver(ServicesImpl.java:314) at com.sap.aii.adapter.xi.ms.XIEventHandler.onDeliver(XIEventHandler.java:1000) at com.sap.engine.messaging.impl.core.queue.consumer.RequestConsumer.onMessage(RequestConsumer.java:73) at com.sap.engine.messaging.impl.core.queue.Queue.run(Queue.java:921) at com.sap.engine.messaging.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:152) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:247)</SAP:AdditionalText>
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>

  • Unable to sign SOAP Kerberos Token Profile message

    I'm constructing a SOAP Kerberos Token Profile message in Java 1.6 and am unable to sign the BinarySecurityToken to send to a .NET service.
    My aim is to achieve SSO from the Windows Desktop for the user that has already logged on using a Java Client.
    (i.e. I don't want to use JAAS to ask the user to login again).
    Based on my reading so far, I'm using the javax.security.auth.useSubjectCredsOnly set to false to force the use of the underlying mechanism (in this case the windows credential cache).
    I've also configured the jaas.conf as follows:
    com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required debug=true useTicketCache=true doNotPrompt=true;
    My problem is this, in order to sign the BinarySecurityToken element, which contains the Base64 encoded Kerberos service ticket, I need to gain access to the shared session key which is embedded in the service ticket.
    Some other posts, in particular this (excellently written) one,
    http://thejavamonkey.blogspot.com/2008/05/hacking-jvm-kerberos-libraries-session.html
    demonstrate how to do this, by this assumes the use of a JAAS subject and takes advantage of the feature that the GSS-API copies the session key to the private credentials of the Subject when initiating a security context.
    However I cannot use storekey=true in combination with the above configuration, as the excerpt from the Krb5LoginModule states:
    storeKey=true useTicketCache = true doNotPrompt=true;;
    This is an illegal combination since storeKey is set to true but the key can not be obtained either by prompting the user or from the keytab.A configuratin error will occur.
    I note that when I step through the code, the session key does indeed seem to be available on the gssCredential object as a property:
    gssCredential->tempCred->sessionKey->keyBytes[16]
    which seems to be the expected session key size 16 * 8 = 128 (Basic128)
    However I cannot find any GSS API method that can obtain this key! I note another reference from the Oracle API:
    http://download.oracle.com/docs/cd/E15523_01/apirefs.1111/e10678/oracle/security/xmlsec/wss/kerberos/package-summary.html
    In particular this handy method:
    <ul><li>Sign/Encrypt using the kerberos session key
         There is no public API to get the session key, so we have provided a utility method.
         SecretKey sessionKey = KerberosUtils.getSessionKey(gssContext);
         WSSEncryptionParams eParams = new WSSEncryptionParams(XMLURI.alg_tripleDES_CBC, sessionKey, null, null, str);
         WSSecurity.encryptNoEncKey(...)
    </li>
    </ul>
    This looks like exactly what I'm after however this API seems related to Oracle 11g so I'm not sure if it is:
    - open source
    - if this is the intended usage by the GSS API developers?
    Any help on this point would be very greatly appreciated!
    Edited by: jas71 on Aug 4, 2010 8:49 AM

    Validation of the signature on the .NET server is failing with the following error:
    *The key size requirements for the 'Basic128' algorithm suite are not met by the
    'System.IdentityModel.Tokens.KerberosReceiverSecurityToken' token which has key
    size of '64'*
    I'm using the session key to create the signature value as follows:
    private static String generateSignatureValue(byte[] sessionKey, String cipherText) {
    final String mode = "HmacSHA1";
    final SecretKey key = new SecretKeySpec(sessionKey, mode);
    Mac mac;
    try {
    mac = Mac.getInstance(mode);
    mac.init(key);
    byte[] signatureValueBytes = mac.doFinal(cipherText.getBytes());
    return new String(Base64.encodeBase64(signatureValueBytes));
    The error is surprising given that the session key used in this method is actually 16 bytes long and would appear to meet the key size requirements (16 * 8 = 128 bit)?
    This appears to be the last piece in the puzzle, signing the Kerberos Token Profile SOAP request.

  • How to connect our outbound function module to the message type

    how to connect our outbound function module to the message type any transcation code exits to assign the message type with the function module .
    Thank in advance .
    A. Thiru

    Hi Thiru,
    Standard Transaction Codes, have their own Function Modules for generating Outbound/Indbound Idocs. Where these Function Modules will be configured to a particular Process Codes.
    For E.g for PO's
    Process code : ME10 - IDOC_OUTPUT_ORDERS - for creation
    In case if its a Z Function Module, It depends on the case how you use IDOC types. either directly through Z Program or through Inbound/Outbound Process  codes with respective Function modules.
    Regards,
    Anbalagan

Maybe you are looking for