Call SOAP Adapter from CE BPM failed

Hi everyone,
i have just a problem calling a webservic on the PI 7.11 server from CE 7.2 BPM via SOAP adapter.
1. I've created a very simple scenario on the PI 7.11 Server using SOAP Adapter sender. I've gotten the WSDL URL from the Sender Agreement. It is like the following:
http://piserver:50000/dir/wsdl?p=sa/2e1cf474911939c89c0f5530b24c36f0
2. In the Service Registery of the CE server, I published this service manuelly. The SR created automactically endpoints (http,https) for me. I tested both. They worked very well. While publishing the service, I've also assigned it to the correct system, which has the type IS.
3. I've imported the wsdl into my BPM and assigned it to a automatic activity. I've also created a new service group for this service interface.
4. After deploying the BPM onto the CE server, I've created a new provider system with type IS. In the WS connectivity type, I entered the wsdl url from above again and the admin user on PI server for the Metadata User.
5. I've created a user in the "User Account Management" with connectivity type WS and entered the same user on the step 4 for the Metadata User, assigned this user to the provider system created on step 4.
6. In the "Application Communication", I assigned the provider system from step 4 to the serivce group created on the step 3.
7. Start the BPM and find out a very strange error message:
Error during SCA Processing 
[EXCEPTION]
java.rmi.RemoteException: Could not process message for operation SI_SearchSalesOrder_outbound in web service plugin module.; nested exception is:
com.sap.engine.services.webservices.espbase.client.bindings.exceptions.TransportBindingException: Invalid Response code (401). Server <http://piserver:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=SAP_CE&receiverParty=&receiverService=&interface=SI_SearchSalesOrder_outbound&interfaceNamespace=http%3A%2F%2Fconet.de%2FSalesOrder> returned message <Unauthorized>. Http proxy info:  none
I suppose that the metadata user is used to read the wsdl information form PI. For runtime processing maybe should also I provide a user. But I have no idea where I can configure the runtime user in the NWA.
Could some one give me some help on this position?
Thanks a lot in advance.
with best regards
Xiang

Hi Michal,
thanks a lot for your answer. That's also my question. I've provided user to get the meta info for the WS on the CE server. But during the runtime, the BPM on the CE should also have a user to call the soap adapter. Normally we can add the sap-user, sap-pass behind the ws endpoint. But it doesn't work on the CE. Maybe I should use the principle propagation.
thanks a lot for your reply.
with best regards.
Xiang

Similar Messages

  • How to initiate the call JDBC_Sender adapter from BPM?

    Hello,
    I have a periodicall proccess in BPM. After receiving some message in BPM  I check some fileds of the message.If condition is true I need to initiate SQL request to external DB, to receive the message and send it after transformating to SAP.
    How to initiate the call JDBC_Sender adapter from BPM? As I understand I need to use JDBC Sender adapter and once.
    How to construct the correct BPM?
    Thank You

    the message comes into BPM. You check for some conditions and if true use a send step (Sync) that would query into DB table and as a reponse retrieve the related data. After the send sync step have the transformation step and another send step to SAP.
    U would not configure sender jdbc but u wud need to config for recv jdbc. this wuld service the request and in response return the set of data from the table
    Message was edited by:
            Prabhu  S

  • Webservice call to XI Interface through SOAP Adapter from a Web application

    I  am getting  the following error, when I try to call the XI Interface using soap adapter from a web application.
    ERROR  :
    SystemError:
              <context>XIAdapter</context>
              <code>ADAPTER.JAVA_EXCEPTION</code>
              <text><![CDATA[
    com.sap.aii.af.ra.ms.api.DeliveryException: XIAdapterFramework:GENERAL:com.sap.aii.af.ra.ms.api.DeliveryException
    at some time i am getting the following error.
    faultCode: HTTP
    faultSubcode:
    faultString: (500)Internal Server Error
    faultActor:
    faultNode:
    faultDetail:
         {}:return code:  500
    &lt;SAP:Error&gt;&lt;SAP:Category&gt;XIServer&lt;/SAP:Category&gt;&lt;SAP:Code&gt;RCVR_DETERMINATION.NO_RECEIVER_CASE_BE&lt;/SAP:Code&gt;&lt;SAP:Stack&gt;No receiver could be determined&lt;/SAP:Stack&gt;&lt;/SAP:Error&gt;
         HttpErrorCode:500
    (500)Internal Server Error
    can any of  one help to resolve this.
    Thanks  in advance

    Ganie
    You are getting the exception at very first point of Pipeline Service i.e Receiver Determination, do compare the namespace, Sender Interface Name & Sender Service name with the payload you are sending from web-application, they must be exactly same.
    The best way to get the test payload is suggested in above reply.

  • Problems when calling the SOAP adapter from a Webdynpro

    Hi,
    An error occurs in the SOAP adapter when sending a message from a Webdynpro client. I have downloaded the SAP Soap Client and made the same test and that works fine.
    I had to do some debugging to finally find the stack trace found below.
    Does anybody have an idea of why the call doesn't work from Webdynpro?
    <text>com.sap.aii.af.service.cpa.CPAException: invalid channel (party:service:channel) = &lt;null&gt;
         at com.sap.aii.af.mp.soap.web.MessageServlet.getChannelID(MessageServlet.java:415)
         at com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:377)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         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:95)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160)</text>
    </s:SystemError>
    Thanks for help,
    Hans

    Hi Suraj
    First I should mention that I have imported a generated WSDL from XI to create the Model and thus the port configuration. The URL looks like this:
    http://<host>:<port>/XISOAPAdapter/MessageServlet?Version=3.0&amp;Channel=:Telia_Kundservice_portal:Sender_SOAP&amp;version=3.0&amp;Sender.Service=Telia_Kundservice_portal&amp;Interface=urn%3Aacandofrontec.se%2FTelia%2Ffaktura%5ETelia_faktura_4
    Service = Telia_Kundservice_portal
    Channel = Sender_SOAP
    I've also tried with a modified shorter version which is also the one I'm using from the SAP SOAP client.
    http://<host>:<port>/XISOAPAdapter/MessageServlet?channel=:Telia_Kundservice_portal:Sender_SOAP
    The actual call is a typical one:
    wdContext.currentRequest_Faktura().modelObject().execute();
    Before this call the Basic authentication (user/passw) is set.
    Regards,
    Hans

  • EJB Errors When Calling SOAP Adapter

    <b>Scenario</b> We are using XML Spy to call a Message Interface exposed through a SOAP Communications Channel. That is, an outbound adapter. We are running XI Version 3.0, SP9 with patches.
    <b>The location is our URL is</b>
    <soap:address location="http://sapxidev:50000/XISOAPAdapter/MessageServlet?channel=:Taxpayer:Sender_SOAP&version=3.0&Sender.Service=Taxpayer&Interface=urn%3Ador.state.fl.us%5ESUTARC_Verification_Sync_Out_MI" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
    The respone is <b>com.sap.aii.af.mp.module.ModuleException</b>
    The server logs indicate three relevant error messages:
    <b>Message 1</b>
    Failed to set up the adapter for channel c67c0ccb7f583d7693678bb1288644ff;
    caused by java.lang.Exception: Bubble configuration error: parameter 'XI.InterfaceNamespace' is missing
    <b>Message 2</b>
    the required parameter XI.InterfaceNamespace is missing
    <b>Message 3</b>
    Path to object does not exist at localejbs, the whole lookup name is ejbContexts/sap.com/com.sap.aii.af.app/ModuleProcessorBean/localejbs/sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean.
    Any ideas?
    Thanks in advance!

    HI Paul,
    did you put a default namespace and interface name in the SOAP Adapter config of the communication channel in the IB?
    It is under the Default XI Parameter in the SOAP Adapter.
    That should solve this problem, don´t ask me why it says Default if is is mandatory.
    Cheers
    Stefan

  • Adding WS Security in SOAP header for calling soap services from PI

    When i am calling a wss enabled webservice from soapui with the header parameters
    Username , Password and Password Type - PasswordText , it is able to get results. The soapui tool automatically adds the following in the soap 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 wsu:Id="UsernameToken-9368150" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
                <wsse:Username>xxxxx</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:Nonce>aOA1P6t2hJPRyuraQ/IliQ==</wsse:Nonce>
                <wsu:Created>2009-07-10T14:58:33.781Z</wsu:Created>
             </wsse:UsernameToken>
          </wsse:Security>
    However , in PI when the following configurations are made -
    Web Services Security option selected in soap receiver adapter
    In Receiver Agrrement -
    Security Standard -  http://docs.oasis ....
    Security Procedure (Request) - None
    Security Procedure (response) - None
    the user tokens don't seem to generated and it is giving an authentication error . Is there any process of generating this in the outgoing soap header from PI.
    SOAP Axis framework is not installed at present  and working on PI 7.1 SP6.
    Looking forward for your replies

    same issue for me too.
    Try using WS adapter on receiver side .
    If you are able to attach SOAP header with WSSE fields using SOAP adapter at reciever channel let me know how you did it.

  • Calling SOAP Request from XML Spy

    I have published PLSQL web service at Oracle 10g AS.
    The web service runs at http://localhost:7201/reqProcess with processRequest as method being exposed.
    This web service takes the string as input and return XMLTYPE as out parameter.
    Now When I am trying to pass SOAP XML from XMLSPY to above url I am getting folloing errors.
    1) I get http error: couldnot post the file /reqProcess/ on server 'localhost' (500)
    2) I get SOAP Error as
    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <SOAP-ENV:Body>
              <SOAP-ENV:Fault>
                   <faultcode>SOAP-ENV:Client</faultcode>
                   <faultstring>No Deserializer found to deserialize a &apos;http://wsi.nat.zz.com/2005/06/StandardHeader/:m0:standardHeader&apos; using encoding style &apos;null&apos;. [java.lang.IllegalArgumentException]</faultstring>
                   <faultactor>/reqProcess</faultactor>
              </SOAP-ENV:Fault>
         </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Please help..

    Hi Quwang ur help needed
    My requirement ...
    1) PLSQL as web service : I succesffuly deployed PLSQL Procedure as Web service at 10 10g. The PLSQL takes string (CLOB) as input convert that into XML and store in table and return XMLTYPE as output.
    When I am accesing PLSQL WS using browser I am able to send string (basically XML format) as a input and able to receive the result back (SOAP envelop)
    2)WS Invocation : After PLSQL WS published I need to pass the SOAP XML which is generated from XYX wsdl file to the PLSQL WS published above. For this req I was using XML Spy to test this. (In actual the clinet will be Sieble that will send SOAP XML to PLSQL WS).
    Initially I was generating the SOAP XML from XYZ.wsdl and was directly sending that to PLSQL URL. I was getting error as I described initially.
    Next I tried to generate the SOAP request from the PLSQL WS wsdl file and inside the parameter I am sending the SOAP XML as string to the IN paramater of PLSQL WS. This time I am getting some different errors. The first error is same as http error: couldnot post the file /balprocess/balprocess/operation?processRequest on server 'localhost' (500)
    and second error is SOAP fault as follows
    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <SOAP-ENV:Body>
              <SOAP-ENV:Fault>
                   <faultcode>SOAP-ENV:Server</faultcode>
                   <faultstring>java.sql.SQLException: ORA-31011: XML parsing failed
    ORA-19202: Error occurred in XML processing
    LPX-00210: expected &apos;<&apos; instead of &apos;"&apos;
    Error at line 1
    ORA-06512: at "SYS.XMLTYPE", line 0
    ORA-06512: at "SCOTT.BAL_A_PROCESS", line 16
    ORA-06512: at line 1
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:137)</faultstring>
                   <faultactor>/balprocess/balprocess</faultactor>
              </SOAP-ENV:Fault>
         </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    For ur reference I am pasting the PLSQL WSDL file and the SOAP request xml that I am sending to PLSQL WS URL.
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions name="bal_a_process"
    targetNamespace="http://bal.request.process/bal_a_process.wsdl"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://bal.request.process/bal_a_process.wsdl"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsd1="http://bal.request.process/bal_a_process.xsd" >
    <documentation>
    WSDL for Service: bal_a_process, generated by Oracle WSDL toolkit (version: 1.1)
    </documentation>
    <types>
    <schema targetNamespace="http://bal.request.process/bal_a_process.xsd" xmlns:tns="http://bal.request.process/bal_a_process.xsd" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dom="http://xmlns.oracle.com/2001/XMLSchema/DOM">
    <complexType name="bal_request_process_bal_a_processUser_processRequest_Out">
    <all>
    <element name="outresponsexmlOut" type="dom:org.w3c.dom.DocumentFragment"/>
    </all>
    </complexType>
    </schema>
    </types>
    <message name="processRequestOutput">
    <part name="return" type="xsd1:bal_request_process_bal_a_processUser_processRequest_Out"/>
    </message>
    <message name="processRequestInput">
    <part name="param0" type="xsd:string"/>
    </message>
    <portType name="bal_a_processPortType">
    <operation name="processRequest">
    <input message="tns:processRequestInput"/>
    <output message="tns:processRequestOutput"/>
    </operation>
    </portType>
    <binding name="bal_a_processBinding" type="tns:bal_a_processPortType">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
    <operation name="processRequest">
    <soap:operation soapAction="urn:bal-request-process-bal_a_process/processRequest"/>
    <input>
    <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:bal-request-process-bal_a_process"/>
    </input>
    <output>
    <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:bal-request-process-bal_a_process"/>
    </output>
    </operation>
    </binding>
    <service name="bal_a_process">
    <port name="bal_a_processPort" binding="tns:bal_a_processBinding">
    <soap:address location="http://localhost:7200/balprocess/balprocess"/>
    </port>
    </service>
    </definitions>
    Request I am sending to PLSLQ WS URL
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
         <SOAP-ENV:Body>
              <processRequest xmlns:m="urn:bal-request-process-bal_a_process" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
                   <param0 xsi:type="xsd:string">     "<a>"aaa"</a>"     </param0>
              </processRequest>
         </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    I above SOAP request XML i m testing "<a>"aaa"</a>" as XML string. but this is also getting failed. In actual this will be SOAP XML request from some other XYZ wsdl file.
    Quwang ur help needed urgently.
    Regards

  • How to call SOAP API from JavaScript

    Hi,
    I'm trying to call the SOAP API to get statistics about emails. Are there any examples on how to call the API from JavaScript?
    Here is a link to my original question about using the REST API. REST API URL for email statistics
    Thanks,
    Tim

    Tim,
    In order to consume a SOAP API I recommend you use something other than JavaScript.
    Any platform can offer you a good SOAP client should be OK. (.Net, Java, php, Ruby, python).
    I didn't see anyone successfully used javascript and consume the Eloqua SOAP API.
    I know you can create a SOAP client in Java script but it will be too much work to handle the Eloqua response in some cases.
    Regards,
    Daniel

  • Calling XI's SOAP Adapter from Webdynpro for java

    Hello every one,
    I have implemented a webservice scenario which involves soap message exchange,,I have checked the configuration from configuration tool -- it seems fine there -- than we had a check run from XML spy, using the WSDL generated by XI,,, that went through as well,, but now when I am trying to call the webservice through webservice adaptive model in NWDS, it returns :
    <!--  Receiver Identification
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="RCVR_DETERMINATION">NO_RECEIVER_CASE_BE</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>No receiver could be determined</SAP:Stack>
      <SAP:Retry>N</SAP:Retry>
      </SAP:Error>
    this is the response message generated and viewed in SXMB_MONI
    Now I cannot understand why its prompting error from application and not XML Spy,,
    I am using following url to send msg to XI's SOAP sender adapter:
    http://pep:8000/sap/xi/engine?type=entry&version=3.0&Sender.Service=BS_PROTOTYPE_WS_OUT&Interface=urn%3Apso%3Aws%3Abank%5ECC_CHK_ACC_SENDER&sap-user=<myuser>&sap-password=<myPwd>&sap-client=001&sap-language=EN
    any help would be highly appreciative..
    thanks

    Dear Nicholas,
    When portal server is installed, it assigns a specific port for running the portal. Normally the port is 500XX when xx is your instance number. There seems to be some problem in your case.
    Please carry out following steps to see/resolve the issue:
    1. Open the visual administrator
    2. Navigate to  Dispatcher -> Services -> HTTP Provider
    This HTTP Provider specifies the ports used by portal.
    You change the ports to something like : (Port:80,Type:http)(Port:443,Type:ssl)
    Save your settings and now open the browser and open the portal like http://<host>/irj/portal (because 80 is default port). If you specify some other port you need to enter like http://<host>:<port>/irj/portal
    This should resolve your issue:
    Enjoy
    Best Regards,
    Ravi

  • Help with merging files and calling SOAP adapter in BPM

    Hello All,
    I have a scenario, where am merging a header file and item file and calling a webservice in ECC. The requirement is that the no. of calls to the webservice depends on the no. of lines in the header file. Mapping is developed according to this rule and the operation mapping is also set for multiple messages. Testing the mapping produces required results.
    But when I run the scenario invoking BPM to merge the files with 2 lines in header records the webservice is called just once. On further analysis into SXMB_MONI_BPE, MESSAGES_OUPUT table in the mapping step has 2 messages. The instance ID of the message gone out shows a checkered flag with processed successfully status, but the second line is stuck in status "Transfer To Process Engine" .
    Any thoughts what I should be doing to push second message out automatically.
    Prashanth

    Hi Prashanth,
       to find out what has happened to the message try checking the workflow log,
    i.e., select the message with the 'Transfer to Process Engine" status in SXI_MONITOR and drill down in the outbound PE column.
    Once in the workflow log select 'List with Technical Detailsu2019'.
    Regards
    Kenny

  • PI 7.1 SOAP Adapter - Message Payload for Failed Messages - Where to find

    We are exposing a webservice through SAP PI.  Occassionaly we have customers calling our webservice and some failure occurs.  The error is usually the way that the customer is calling the webservice (missing elements, misnamed tags, bad content in the WS payload..).  Generally in these cases we can see the error in communication channel monitoring. 
    Here is an example:
    12/12/11 4:39:07 PM   com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessageFormatException: cvc-complex-type.2.4.b: The content of element 'SupplierInvoice' is not complete. One of '{"":Invoice}' is expected. at line 1, column 227
      12/12/11 4:39:06 PM   request received for a channel
    I understand the issue, but it would be extremely helpful to have the full SOAP Envelope and Payload of a request when it fails.  The communication channel will show a SUCESSFUL message payload with a link to it.  But it does not show a failed one.
    Where can I find the FAILED payload that accompanies this message?  These failures occurs before any mapping or being seen in RTWB Adapter Engine message monitoring...  I did some searching around, but did not find anything offhand.  I would greatly appreciate any pointers from anyone who has crossed this bridge.

    Hi,
    When the web service is being called by external application, the first point of contact would be the sender communication channel which converts the SOAP message into XML message and pass to integration engine ( In case of success )
    But if the web service call fails due to WSDL validation, Authentication issue, Bad content, invalid content type, you would not see the payload in the sender communication channel or in Adapter engine. You can just see error message in the sender communication channel . I have experienced this many times and i always ask the web service team to provide the SOAP message for validation/investigation purpose.

  • Error 500 calling an ES from a BPM

    Hi experts,
    I have a BPM in XI that calls an ES many times. The standard ESs called are the Create Project Create Network an Create Activity. The BPM calls first of all the create project, then calls the create network, once for each network realted to the main project and then calls the create activity once for each activity realated to each network.
    The BPM works fine for few networks and activities, but when calling many networks and activities it returns an error 500 of conection. It will be because the project object gets blocked when its called many times in a little period of time.  I think it's not due to the XML or related because if I do the same process but with a wait step between each send it works fine. Do you know how can avoid this problem?
    Regards
    Gonzalo

    ou are working with XI 3.0 or 7.0. If you have one XI installation across different network domains, host names may not be resolvable across network domains depending on your network setup. For the XI inter-component communication, URLs registered in the System Landscape Directory (SLD) are used.
    XI Tools, Integration Engine and XI Adapter Engine register their URLs in the SLD in different ways:
    XI Tools: Hostname and port used by the Tools (RWB, Integration Builder -Repository and -Directory) are stored in the Exchange Profile. During J2EE system restart they get self registered in the SLD using the values defined there.
    XI Adapter Engine: In case of the XI Adapter Engine, these URLs are automatically entered to the SLD as part of the Adapter Framework self registration process. Host and port are taken from the J2EE server.
    In most cases the host name in these URLs is not fully qualified whereas in cross-domain scenarios fully qualified host names are required.
    Solution
    The problem can be solved in most cases by forcing the XI self-registration to use fully qualified host names.
    For XI Integration Builder, Integration Engine and Runtime Workbench, you accomplish this by entering fully qualified host names in the XI Exchange Profile, then initiating a new self-registration (restarting the J2EE engine).
    For the Adapter Engine, the approach is different: Change the properties "SLD.selfregistration.httpPort", "SLD.selfregistration.httpsPort" and "SLD.selfregistration.hostName" of the J2EE service SAP XI AF CPA Cache. Enter the fully qualified host name under which the Adapter Engine can be reached from all relevant network domains. Do this in the Visual Administrator of the J2EE Engine.  Then restart the applications "com.sap.aii.af.cpa.app" and "com.sap aii.af.app", or restart the complete J2EE engine. This triggers a new Adapter Engine self-registration.
    Go in the Integration Server (IS) to transaction "SXI_CACHE -> Goto -> Adapter-Engine-Cache" and delete the old Adapter Engine cache entries. After that the cache is refreshed from SLD as soon as a new message in sent to the respective Adapter Engine.
    Check: After restart, navigate in SLD through "Content Maintenance -> XIAdapter Framework" to your Adapter Engine.  As part of the "associated instances" you find e.g. at "XI  Adapter Service XIRA -> Associated Instances -> Port for XIRA of af.<SID>.<hostname>" the new URL with the fully qualified host name.
    regards
    chandra

  • Calling web service from oracle forms fails with ORA_JAVA.JAVA_ERROR

    Problem Description:
    I'm following the steps as per the doc:
    http://www.oracle.com/technology/products/forms/htdocs/10gr2/howto/webservicefromforms/ws_10_1_3_from_forms.html
    to create a java stub to call external web service and then use java importer in oracle forms to call this web service from oracle forms.
    WSDL for external web service used is http://www.webservicex.net/CurrencyConverter.asmx?wsdl
    Calling the web service using JDeveloper works fine but from Oracle Forms returns ORA_JAVA.JAVA_ERROR; Unable to call out to Java, Invalid object type for argument 1
    The code from oracle form to call web service is as below:
    DECLARE
    jo ora_java.jobject;
    rv ora_java.jobject;
    ex ora_java.jobject;
    outString varchar2(2000);
    BEGIN
    jo:= CurrencyConvertorStub.new;
    --This will get the exchange rate from US Dollars to UK Sterling.
    rv:= CurrencyConvertorStub.ConversionRate(jo,'CAD','USD');
    message (float_.floatValue(RV));
    EXCEPTION
    WHEN ORA_JAVA.JAVA_ERROR then
    message('Unable to call out to Java, ' ||ORA_JAVA.LAST_ERROR);
    WHEN ORA_JAVA.EXCEPTION_THROWN then
    ex := ORA_JAVA.LAST_EXCEPTION;
    outString := Exception_.toString(ex);
    message(outString);
    END;
    Any help/ideas on this is greatly appreciated. Thanks.

    Yes, it is the message line - so basically this call fails => rv:= CurrencyConvertorStub.ConversionRate(jo,'CAD','USD'); and control goes in the exception block
    WHEN ORA_JAVA.JAVA_ERROR then
    message('Unable to call out to Java, ' ||ORA_JAVA.LAST_ERROR);
    Below is the code from java stub that was generated using JDeveloper by using web services stub/skeleton and associating the WSDL
    public Double ConversionRate(String FromCurrency, String ToCurrency) throws Exception
    URL endpointURL = new URL(endpoint);
    Envelope requestEnv = new Envelope();
    Body requestBody = new Body();
    Vector requestBodyEntries = new Vector();
    String wrappingName = "ConversionRate";
    String targetNamespace = "http://www.webserviceX.NET/";
    Vector requestData = new Vector();
    requestData.add(new Object[] {"FromCurrency", FromCurrency});
    requestData.add(new Object[] {"ToCurrency", ToCurrency});
    requestBodyEntries.addElement(toElement(wrappingName, targetNamespace, requestData));
    requestBody.setBodyEntries(requestBodyEntries);
    requestEnv.setBody(requestBody);
    Message msg = new Message();
    msg.setSOAPTransport(m_httpConnection);
    msg.send(endpointURL, "http://www.webserviceX.NET/ConversionRate", requestEnv);
    Envelope responseEnv = msg.receiveEnvelope();
    Body responseBody = responseEnv.getBody();
    Vector responseData = responseBody.getBodyEntries();
    return (Double)fromElement((Element)responseData.elementAt(0), java.lang.Double.class);
    }

  • Urgent: Calling web service from PL/SQl fails with XML parsing

    Hi,
    I am trying to call a web service from PL/SQL (using SOAP protocol and UTL_HTTP built in Package).I am using Oracle 9i .I am calling from pl/sql block invoking web service method created in java.
    I am getting the below response object as a SOAP protocol, but i couldn't able to parse the SOAP.
    Could you please provide the values of FirstName, LastName and ErrorDescription
    declare
    request_env varchar2(32767);
    v_xml XMLTYPE;
    l_user_first_name varchar2(100);
    l_user_last_name varchar2(100);
    l_error_value varchar2(100);
    begin
    response_env:='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
    <UserInfoObjResponse xmlns:axis2ns1="http://www.test.com/services">
    <axis2ns1:FirstName >First Name Output</axis2ns1:FirstName>
    <axis2ns1:LastName>Last Name Output</axis2ns1:LastName>
    <axis2ns1:ErrorDescription />
    </UserInfoObjResponse>
    </soapenv:Body>
    </soapenv:Envelope>';
    dbms_output.put_line('Length of Request:' || length(response_env));
    dbms_output.put_line ('Request: ' || response_env);
    v_xml := XMLTYPE(response_env);
    -- SELECT EXTRACTVALUE(v_xml, '//UserInfoObjResponse/FirstName') INTO l_user_fast_name varchar2(100); FROM DUAL;
    dbms_output.put_line ('l_user_first_name: ' || l_user_first_name);
    dbms_output.put_line ('l_user_last_name : ' || l_user_last_name);
    dbms_output.put_line ('l_error_value: ' || l_error_value);
    end;

    In Oracle 9i:
    SQL> declare
      2    response_env varchar2(32767);
      3    v_xml XMLTYPE;
      4    l_user_first_name varchar2(100);
      5    l_user_last_name varchar2(100);
      6    l_error_value varchar2(100);
      7  begin
      8    response_env:='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
      9                     <soapenv:Body>
    10                       <UserInfoObjResponse xmlns:axis2ns1="http://www.test.com/services">
    11                         <axis2ns1:FirstName >First Name Output</axis2ns1:FirstName>
    12                         <axis2ns1:LastName>Last Name Output</axis2ns1:LastName>
    13                         <axis2ns1:ErrorDescription />
    14                       </UserInfoObjResponse>
    15                     </soapenv:Body>
    16                   </soapenv:Envelope>';
    17
    18    dbms_output.put_line('Length of Request:' || length(response_env));
    19  --  dbms_output.put_line ('Request: ' || response_env);
    20
    21    v_xml := XMLTYPE(response_env);
    22
    23    select EXTRACTVALUE(v_xml,'/*:Envelope/*:Body/*:UserInfoObjResponse/*:FirstName/text()') first_name,
    24           EXTRACTVALUE(v_xml,'/*:Envelope/*:Body/*:UserInfoObjResponse/*:LastName/text()') last_name,
    25           EXTRACTVALUE(v_xml,'/*:Envelope/*:Body/*:UserInfoObjResponse/*:ErrorDescription/text()') error_description
    26      into l_user_first_name, l_user_last_name, l_error_value
    27      from dual;
    28
    29    dbms_output.put_line ('l_user_first_name: ' || l_user_first_name);
    30    dbms_output.put_line ('l_user_last_name : ' || l_user_last_name);
    31    dbms_output.put_line ('l_error_value: ' || l_error_value);
    32  end;
    33  /
    Length of Request:530
    l_user_first_name: First Name Output
    l_user_last_name : Last Name Output
    l_error_value:
    PL/SQL procedure successfully completed.In Oracle 10g:
    SQL> declare
      2    response_env varchar2(32767);
      3    v_xml XMLTYPE;
      4    l_user_first_name varchar2(100);
      5    l_user_last_name varchar2(100);
      6    l_error_value varchar2(100);
      7  begin
      8    response_env:='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
      9                     <soapenv:Body>
    10                       <UserInfoObjResponse xmlns:axis2ns1="http://www.test.com/services">
    11                         <axis2ns1:FirstName >First Name Output</axis2ns1:FirstName>
    12                         <axis2ns1:LastName>Last Name Output</axis2ns1:LastName>
    13                         <axis2ns1:ErrorDescription />
    14                       </UserInfoObjResponse>
    15                     </soapenv:Body>
    16                   </soapenv:Envelope>';
    17
    18    dbms_output.put_line('Length of Request:' || length(response_env));
    19  --  dbms_output.put_line ('Request: ' || response_env);
    20
    21    v_xml := XMLTYPE(response_env);
    22
    23    select r.*
    24      into l_user_first_name, l_user_last_name, l_error_value
    25    from XMLTABLE('/' PASSING v_xml
    26                  COLUMNS
    27                  first_name varchar2(30) PATH '/*:Envelope/*:Body/*:UserInfoObjResponse/*:FirstName/text()',
    28                  last_name varchar2(30) PATH '/*:Envelope/*:Body/*:UserInfoObjResponse/*:LastName/text()',
    29                  error_description varchar2(30) PATH '/*:Envelope/*:Body/*:UserInfoObjResponse/*:ErrorDescrition/text()'
    30                  ) r;
    31
    32    dbms_output.put_line ('l_user_first_name: ' || l_user_first_name);
    33    dbms_output.put_line ('l_user_last_name : ' || l_user_last_name);
    34    dbms_output.put_line ('l_error_value: ' || l_error_value);
    35  end;
    36  /
    Length of Request:530
    l_user_first_name: First Name Output
    l_user_last_name : Last Name Output
    l_error_value:
    PL/SQL procedure successfully completed.Max
    http://oracleitalia.wordpress.com
    Edited by: Massimo Ruocchio on Feb 14, 2010 11:55 PM
    Added the first one.

  • ClassCastException when calling SOAP adapter

    Hello,
    I created a Web service interface to an ABAP RFC
    via XI and a corresponding communication channel
    (SOAP/HTTP to a specific message interface with data
    types, message types, mappings etc. defined in the
    integration repository). Sending SOAP messages
    and receiving the correct replies works fine.
    However, when I transport the relevant objects
    from our test system to the consolidation system
    by exporting and then importing via the file system
    (all objects of the software component in the integration
    repository, all objects of the communication scenario
    in the integration directory), the
    ClassCastException given below is returned
    when sending the same SOAP messages
    to the consolidation system. Other SOAP interfaces
    work, but the one I imported does not.
    Unfortunately, the request neither shows up in
    the XmlMonitor nor in MessageMonitoring in the
    Runtime workbench, so I do not get a further
    indication what actually went wrong.
    Questions:
    - Has anyone had a similar problem or the same
      error message? If so, what was the cause?
    - Does anyone (maybe from SAP) know what exactly
      happens in the mentioned code line where the
      exception is thrown?
    - Where could I look to find further information
      about the error?
    System information:
    - SAP BASE 6.40, XI 3.0 with Service Pack 15
    Thanks + Cheers,
      Guido
    <?xml version='1.0'?>
    <!-- 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>ClassCastException</code>
              <text><![CDATA[
    java.lang.ClassCastException
         at com.sap.aii.af.mp.ejb.ModuleProcessorBean.process(ModuleProcessorBean.java:227)
         at com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0.process(ModuleProcessorLocalLocalObjectImpl0.java:103)
         at com.sap.aii.af.mp.soap.web.MessageServlet.callModuleProcessor(MessageServlet.java:159)
         at com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:383)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         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:95)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160)
              ]]></text>
            </s:SystemError>
          </detail>
        </SOAP:Fault>
      </SOAP:Body>
    </SOAP:Envelope>

    Hi,
    looking to the stack trace provided by i found this
    >>at java.security.AccessController.doPrivileged(Native >>Method)
    this means that you have defined assigned users for the business service in configuration directory.
    Make sure the client is making the webservice call using that specific user.
    cheers,
    naveen

Maybe you are looking for

  • How do I disable the update/patch notification for 9.4.4

    I am unable to install the update 9.4.4 - the error message tells me to re-install Acrobat 9 Pro as there have been changes to the original program. I imagine it is referring to the many updates I have faithfully installed previously. I am not at all

  • Downloaded iCloud and my calendars are not syncing. I have all the updated software.

    I have a Macbook Pro Mac OS X version 10.7.2  and a IPHONE 4S Version ios 5.0.1 purchased Icloud I schedule an appt on my Mac Outlook 2010  and it DOES show up on my mac ical but not on my iphone cal.  I even did a manual sync and NOW none of my outl

  • J_security_check not redirecting after authentication - in one environment

    Hi all, I have a J2EE web application developed in JDeveloper 10.1.3 which uses JAAS security with a custom authentication provider class. I can configure this is both a windows and unix based OC4J. The windows OC4J is stand alone, the unix one is pa

  • 4.1EA2 - SQL Worksheet button/dropdown - Main toolbar

    SD: 4.1.0.18.37 Java: 1.8.0_40 I have a large number of connections defined and regularly would like to be able to open a worksheet directly, without opening the connection in the connection tree view. The list that is displayed when the toolbar butt

  • Selecting in Table  from code

    hello, I have a question, you know if you show a list or a table on te screen , you can select an item by clicking on it, you actualy see what you selected because it turns blue (background). What i would like to do is the same but from my code, i se