Problem invoking BPEL process via SOAP

Hi,
I have a BPEL process which runs perfectly when invoked from the BPEL console. Now I try to invoke the BPEL process from another (Java) program and get some strange error message in the client. After enabling debug logging I can see a NullPointerException in the BPEL server log (it's Oracle BPEL server 2.1.2 build 1226).
Here the output from the console:
15:21:40,088 INFO [STDOUT] <2006-03-24 15:21:40,088> <DEBUG> <default.collaxa.cube.ws> <CXSOAPProvider::processBPELMessage> soapAction:
15:21:40,088 INFO [STDOUT] <2006-03-24 15:21:40,088> <DEBUG> <default.collaxa.cube.engine.deployment> <BPELArchive::unpack> Unpacking process 'Customer_Status', revision '1.0' from BPEL archive 'bpel_Customer_Status_1.0.jar'
15:21:40,098 INFO [STDOUT] <2006-03-24 15:21:40,098> <DEBUG> <default.collaxa.cube.engine.deployment> <BPELArchive::unpack> Extracted archive up-to-date
15:21:40,158 INFO [STDOUT] <2006-03-24 15:21:40,158> <DEBUG> <default.collaxa.cube.engine.deployment> <CubeProcessFactory::create> Creating process 'Customer_Status' (revision '1.0')
15:21:40,579 INFO [STDOUT] <2006-03-24 15:21:40,579> <DEBUG> <default.collaxa.cube.engine.deployment> <CubeProcessFactory::create> Done creating process 'Customer_Status' (revision '1.0')
15:21:40,589 INFO [STDOUT] <2006-03-24 15:21:40,579> <DEBUG> <default.collaxa.cube.ws> <WSDLManager::clear> Clearing WSDL cache for process Customer_Status1.0
15:21:40,619 INFO [STDOUT] <2006-03-24 15:21:40,619> <DEBUG> <default.collaxa.cube.ws> loaded custom WSDL Extension oracle.tip.adapter.fw.wsif.jca.JCAExtensionRegistry
15:21:40,619 INFO [STDOUT] <2006-03-24 15:21:40,619> <DEBUG> <default.collaxa.cube.ws> loaded custom WSDL Extension oracle.tip.adapter.fw.wsif.jca.PCExtensionRegistry
15:21:40,709 INFO [STDOUT] <2006-03-24 15:21:40,709> <DEBUG> <default.collaxa.cube.ws> <WSDLManager::getWSDL> registered wsdl at http://HAL9000:9700/orabpel/default/Customer_Status/1.0/Customer_Status.wsdl
15:21:40,709 INFO [STDOUT] <2006-03-24 15:21:40,709> <DEBUG> <default.collaxa.cube.ws> <WSDLManager::getWSDL> got wsdl at: http://HAL9000:9700/orabpel/default/Customer_Status/1.0/Customer_Status.wsdl
15:21:40,709 INFO [STDOUT] <2006-03-24 15:21:40,709> <DEBUG> <default.collaxa.cube.ws> <CXSOAPProvider::invoke> Error when process incoming message
java.lang.NullPointerException
at com.collaxa.cube.ws.soap.providers.CXSOAPProvider.processBPELMessage(CXSOAPProvider.java:209)
at com.collaxa.cube.ws.soap.providers.CXSOAPProvider.invoke(CXSOAPProvider.java:114)
at orabpel.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
at orabpel.apache.axis.SimpleChain.doVisiting(SimpleChain.java:152)
at orabpel.apache.axis.SimpleChain.invoke(SimpleChain.java:122)
at orabpel.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:437)
at orabpel.apache.axis.server.AxisServer.invoke(AxisServer.java:315)
at orabpel.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:698)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at orabpel.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:335)
Any suggestion?
Thanks in advance...

This sounds very similar to how my BPEL process behaves. I'm unable to post XML input into the "XML Source" region of the initiate screen unless the input is properly wrapped in the respective message type element.
Make sure your invoking client code is wrapping the input properly with the message type XML elements.

Similar Messages

  • Authorization Error  While  Invoking BPEL Process Via RMI

    Hi All,
    I have been trying to invoke BPEL Process via RMI client.
    I use the following piece of code for BPEL Process Invocation...
    public class RMIClient {
    public RMIClient() {
    public static void main(String[] args){
    Hashtable jndi = new Hashtable ();
    jndi.put (Context.PROVIDER_URL, "opmn:ormi://host:6010:oc4j_soa/orabpel");
    jndi.put (Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory");
    jndi.put (Context.SECURITY_PRINCIPAL,"oc4jadmin"); // username of Bpel Manager
    jndi.put (Context.SECURITY_CREDENTIALS,"welcome1"); //password of BPEL Manager
    Locator locator=null;
    try {
    locator = new Locator("default",jndi);
    } catch (ServerException e) {
    e.printStackTrace();
    IDeliveryService deliveryService =
    (IDeliveryService)locator.lookupService
    (IDeliveryService.SERVICE_NAME );
    // construct the normalized message and send to oracle bpel process
    NormalizedMessage nm = new NormalizedMessage( );
    String xml = "<ns1:MyFirstBPELProjectProcessRequest xmlns:ns1=\"http://xmlns.oracle.com/MyFirstBPELProject\">\n" +
    " <ns1:input></ns1:input>\n" +
    " </ns1:MyFirstBPELProjectProcessRequest>";
    nm.addPart("payload", xml );
    NormalizedMessage res=null;
    try {
    res = deliveryService.request("MyFirstBPELProject", "process", nm);
    } catch (ServerException e) {
    e.printStackTrace();
    } catch (RemoteException e) {
    e.printStackTrace();
    Map payload = res.getPayload();
    When I try to connect to my locally deployed BPEL process Manager and Invoke the same process (MyFirstBPELProjectProcess ) it works fine and creates an Instance on BPEL Process Manager Console.
    When I tried Invoking the same BPEL process (MyFirstBPELProjectProcess ) deployed on a Remote machine ,it doesnt create an Instance.
    I believe my connections settings are all correct ,since it doesnt give me an connection issue on my standalone client.
    I tried looking at the following file default_group~oc4j_soa~default_group~1.log available opmn folder under SOA Suite OAS and there
    are no errors.
    Could some body point the log files that I need to look at.
    I am sort of clueless...
    Regards
    Harish

    CAn you post the error. HAve you made sure that the remote machine has connection on the port 6010. You can test this with the folloing command from the remote machine
    telnet host 6010
    obviously replace host with the fully qualified host name of the SOA machine.
    cheers
    James

  • How to invoke BPEL process via HTTP POST (or GET)

    Hi,
    I'd like to know how to invoke BPEL process via HTTP POST (or GET), is there anyway simple to do it?
    Thank you

    Look at my blog http://orasoa.blogspot.com search for plsql
    or use SoapUI.org
    or look in the Examples directory in the BPEL directory of the installation

  • Invoke Bpel Processes via API or Web Service Proxy Clients

    Hi all,
    I was wondering if any of the felow community members have found information regarding best practices in invoking bpel processes from a user interface other than ADF Faces?
    Currently I'm using Web Service Proxy Clients to invoke my bpel processes, but I was wondering if it would be better to use the BPEL API?
    Considerations I have regarding these 2 different approaches are mostly tight integration when using the BPEL API, because this means I have to port the BPEL (Oracle Code) inside my UI-application which isn't the case when using Web Service Proxy Clients.
    What is the best way to instantiate bpel processes from a user interface, is that by using web service proxy clients or by using the bpel i
    nvocation API?
    Kind regards,
    Nathalie

    Hi Marc,
    These were my considerations as well, but I was looking for some kind of benchmarking regarding these 2 approaches. What's best practices when hooking up bpel inside UI Applications regarding performance, future-proofness (SOA Grid, SOA Composites, ...) etc.
    I think I need to discuss this with the product team to make sure I'm taking the wright decisions.
    Kind regards,
    Nathalie

  • Invoking BPEL WS via SOAP

    Hello
    I am trying to invoke a BPEL process from a non-ADF piece of code. What are the guidelines for the same? Which WS Toolkit is recommended as per the SOA standards? Are there any sample programs on the same?
    Thanks,
    AJ

    Hi,
    have you read
    http://download-uk.oracle.com/docs/cd/B31017_01/web.1013/b28974/j2eewsclient.htm#DAFHDIEH
    This is the Oracle documentation how to create a webservice client...

  • Problem while invoking Bpel Process from Browser

    server WSDL
    <definitions
         name="getOpenInvoicesService"
         targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/getOpenInvoicesService/"
         xmlns="http://schemas.xmlsoap.org/wsdl/"
         xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/db/getOpenInvoicesService/"
         xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/getOpenInvoicesService"
         xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
         xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
        >
        <types>
          <schema xmlns="http://www.w3.org/2001/XMLSchema" >
            <import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/getOpenInvoicesService" schemaLocation="getOpenInvoicesService.xsd" />
          </schema>
        </types>
        <message name="getOpenInvoicesServiceInput_msg">
            <part name="getOpenInvoicesServiceInput_msg" element="db:getOpenInvoicesServiceInput"/>
        </message>
        <message name="getOpenInvoicesServiceOutputCollection_msg">
            <part name="getOpenInvoicesServiceOutputCollection" element="db:getOpenInvoicesServiceOutputCollection"/>
        </message>
        <portType name="getOpenInvoicesService_ptt">
            <operation name="getOpenInvoicesService">
                <input message="tns:getOpenInvoicesServiceInput_msg"/>
                <output message="tns:getOpenInvoicesServiceOutputCollection_msg"/>
            </operation>
        </portType>
        <binding name="getOpenInvoicesService_binding" type="tns:getOpenInvoicesService_ptt">
        <jca:binding  />
            <operation name="getOpenInvoicesService">
          <jca:operation
              SqlString=" SELECT distinct aps.trx_number TrxNumber,       ra.purchase_order PurchaseOrder,       rl.sales_order OrderNumber,       ra.interface_header_attribute2 OrderType,       hc.account_number CustomerNumber,        rt.name TrxType,       aps.acctd_amount_due_remaining AmmountDue,       aps.trx_date TrxDate,        aps.due_date TrxDueDate    FROM ra_customer_trx_all ra     ,   ra_customer_trx_lines_all rl     ,   ar_payment_schedules_all aps     ,   ra_cust_trx_types_all rt         ,   hz_cust_accounts hc              ,   hz_parties hp                    ,   hz_cust_acct_sites_all hcasa_bill,   hz_cust_site_uses_all hcsua_bill ,   hz_party_sites hps_bill          ,   ra_cust_trx_line_gl_dist_all rct   WHERE 1                        = 1 AND ra.customer_trx_id           = rl.customer_trx_id AND ra.customer_trx_id           = aps.customer_trx_id AND ra.org_id                    = aps.org_id AND rct.customer_trx_id          = aps.customer_trx_id AND rct.customer_trx_id          = ra.customer_trx_id AND rct.customer_trx_id          = rl.customer_trx_id AND rct.customer_trx_line_id     = rl.customer_trx_line_id AND ra.complete_flag             = &apos;Y&apos; AND rl.line_type                IN (&apos;FREIGHT&apos;, &apos;LINE&apos;) AND ra.cust_trx_type_id          = rt.cust_trx_type_id AND ra.bill_to_customer_id       = hc.cust_account_id AND hc.status                    = &apos;A&apos; AND hp.party_id                  = hc.party_id AND hcasa_bill.cust_account_id   = ra.bill_to_customer_id AND hcasa_bill.cust_acct_site_id = hcsua_bill.cust_acct_site_id AND hcsua_bill.site_use_code     = &apos;BILL_TO&apos; AND hcsua_bill.site_use_id       = ra.bill_to_site_use_id AND hps_bill.party_site_id       = hcasa_bill.party_site_id AND hcasa_bill.status            = &apos;A&apos; AND hcsua_bill.status            = &apos;A&apos; AND aps.amount_due_remaining    &lt;&gt; 0 AND aps.status                   = &apos;OP&apos; AND hc.account_number= ?"
              InteractionSpec="oracle.tip.adapter.db.DBPureSQLInteractionSpec" >
          </jca:operation>
                <input/>
                <output/>
            </operation>
        </binding>
        <service name="getOpenInvoicesService">
            <port name="getOpenInvoicesService_pt" binding="tns:getOpenInvoicesService_binding">
    <!--Your runtime connection is declared in
    J2EE_HOME/application-deployments/default/DbAdapter/oc4j-ra.xml
    These mcf properties here are from your design time connection and
    save you from having to edit that file and restart the application server
    if eis/DB/sfh is missing.
    These mcf properties are safe to remove.-->
          <jca:address location="eis/DB/sfh" UIConnectionName="sfh"
              ManagedConnectionFactory="oracle.tip.adapter.db.DBManagedConnectionFactory"
              mcf.DriverClassName="oracle.jdbc.OracleDriver"
              mcf.PlatformClassName="oracle.toplink.internal.databaseaccess.Oracle9Platform"
              mcf.ConnectionString="jdbc:oracle:thin:@localhost:1526:xxxx"
              mcf.UserName="apps"
              mcf.Password="53CB0F044A0D3DD2C063679F18F89870" />
            </port>
        </service>
      <plt:partnerLinkType name="getOpenInvoicesService_plt" >
        <plt:role name="getOpenInvoicesService_role" >
          <plt:portType name="tns:getOpenInvoicesService_ptt" />
        </plt:role>
      </plt:partnerLinkType>
    </definitions>
    client.wsdl
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions
         name="getOpenInvoices"
         targetNamespace="http://xmlns.oracle.com/getOpenInvoices"
         xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
         xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
         xmlns="http://schemas.xmlsoap.org/wsdl/"
         xmlns:client="http://xmlns.oracle.com/getOpenInvoices"
         xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
        >
        <types>
            <schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/getOpenInvoices" xmlns="http://www.w3.org/2001/XMLSchema">
            <element name="getOpenInvoicesProcessResponse">
            <complexType>
            <sequence>
            <element name="result" type="string"/>
            </sequence>
            </complexType>
            </element>
            <element name="getOpenInvoicesProcessRequest">
            <complexType>
            <sequence>
            <element name="accountNumber" type="string"/>
            </sequence>
            </complexType>
            </element>
            </schema>
        </types>
        <message name="getOpenInvoicesRequestMessage">
            <part name="payload" element="client:getOpenInvoicesProcessRequest"/>
        </message>
        <message name="getOpenInvoicesResponseMessage">
            <part name="payload" element="client:getOpenInvoicesProcessResponse"/>
        </message>
        <portType name="getOpenInvoices">
            <operation name="OpenInvoices">
                <input message="client:getOpenInvoicesRequestMessage"/>
                <output message="client:getOpenInvoicesResponseMessage"/>
            </operation>
        </portType>
        <binding name="OpenInvoicebindings" type="client:getOpenInvoices">
        <http:binding verb="GET"/>
        <operation name="OpenInvoices">
        <http:operation location="/OpenInvoices"/>
        <input>
        <http:urlEncoded/>
        </input>
        <output>
        <mime:mimeXml part="Body"/>
        </output>
        </operation>
        </binding>
        <service name="OpenInvoiceService">
        <port binding="client:OpenInvoicebindings" name="OpenInvoicesport">
        <http:address location="http://sys0004:8889/httpbinding/default/getOpenInvoices"/>
        </port>
        </service>
        <plnk:partnerLinkType name="getOpenInvoices">
            <plnk:role name="getOpenInvoicesProvider">
                <plnk:portType name="client:getOpenInvoices"/>
            </plnk:role>
        </plnk:partnerLinkType>
    </definitions>
    bpel process
    <?xml version = "1.0" encoding = "UTF-8" ?>
    <!--
      Oracle JDeveloper BPEL Designer
      Created: Tue Jul 13 11:05:51 IST 2010
      Author: 
      Purpose: Synchronous BPEL Process
    -->
    <process name="getOpenInvoices"
             targetNamespace="http://xmlns.oracle.com/getOpenInvoices"
             xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
             xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
             xmlns:ns1="http://xmlns.oracle.com/pcbpel/adapter/db/getOpenInvoicesService/"
             xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
             xmlns:ns2="http://xmlns.oracle.com/pcbpel/adapter/db/getOpenInvoicesService"
             xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
             xmlns:client="http://xmlns.oracle.com/getOpenInvoices"
             xmlns:ora="http://schemas.oracle.com/xpath/extension"
             xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc">
      <!--
          PARTNERLINKS                                                     
          List of services participating in this BPEL process              
      -->
      <partnerLinks>
        <!--
          The 'client' role represents the requester of this service. It is
          used for callback. The location and correlation information associated
          with the client role are automatically set using WS-Addressing.
        -->
        <partnerLink name="client" partnerLinkType="client:getOpenInvoices"
                     myRole="getOpenInvoicesProvider"/>
        <partnerLink name="getOpenInvoicesService"
                     partnerRole="getOpenInvoicesService_role"
                     partnerLinkType="ns1:getOpenInvoicesService_plt"/>
      </partnerLinks>
      <!--
          VARIABLES                                                       
          List of messages and XML documents used within this BPEL process
      -->
      <variables>
        <!-- Reference to the message passed as input during initiation -->
        <variable name="inputVariable"
                  messageType="client:getOpenInvoicesRequestMessage"/>
        <!-- Reference to the message that will be returned to the requester-->
        <variable name="outputVariable"
                  messageType="client:getOpenInvoicesResponseMessage"/>
        <variable name="Invoke_1_getOpenInvoicesService_InputVariable"
                  messageType="ns1:getOpenInvoicesServiceInput_msg"/>
        <variable name="Invoke_1_getOpenInvoicesService_OutputVariable"
                  messageType="ns1:getOpenInvoicesServiceOutputCollection_msg"/>
      </variables>
      <!--
         ORCHESTRATION LOGIC                                              
         Set of activities coordinating the flow of messages across the   
         services integrated within this business process                 
      -->
      <sequence name="main">
        <!-- Receive input from requestor. (Note: This maps to operation defined in getOpenInvoices.wsdl) -->
        <receive name="receiveInput" partnerLink="client"
                 portType="client:getOpenInvoices" operation="OpenInvoices"
                 variable="inputVariable" createInstance="yes"/>
        <!-- Generate reply to synchronous request -->
        <assign name="Assign_1">
          <copy>
            <from variable="inputVariable" part="payload"/>
            <to variable="Invoke_1_getOpenInvoicesService_InputVariable"
                part="getOpenInvoicesServiceInput_msg"/>
          </copy>
        </assign>
        <invoke name="Invoke_1" partnerLink="getOpenInvoicesService"
                portType="ns1:getOpenInvoicesService_ptt"
                operation="getOpenInvoicesService"
                inputVariable="Invoke_1_getOpenInvoicesService_InputVariable"
                outputVariable="Invoke_1_getOpenInvoicesService_OutputVariable"/>
        <assign name="Assign_2">
          <copy>
            <from variable="Invoke_1_getOpenInvoicesService_OutputVariable"
                  part="getOpenInvoicesServiceOutputCollection"/>
            <to variable="outputVariable" part="payload"/>
          </copy>
        </assign>
        <reply name="replyOutput" partnerLink="client"
               portType="client:getOpenInvoices" operation="OpenInvoices"
               variable="outputVariable"/>
      </sequence>
    </process>the above is the server and client wsdls and Bpel process. i have created the wsdl so as to call from HTTP calling, means process is been called from Browser .... but i can't see the result ...
    http://sys0004:8889/httpbinding/default/getOpenInvoices/OpenInvoices?accountNumber=1608
    above is the link called from browser
    output in the browser ::: <getOpenInvoicesProcessResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/getOpenInvoices" />
    actually it has to fetch data from DB and show in xml format can anyone assist me where i am going wrong

    Hi Rajesh,
    Please refer \bpel\samples\tutorials\102.InvokingProcesses\jsp.
    BPEL Tutorial 7: Invoking BPEL Processes through SOAP and Java : Reference: 2004/06/14/orabpel/d5/1.0
    Hope this helps!
    Regards
    Anirudh Pucha

  • Invoking BPEL Process problem from Tomcat

    Hi, I got a problrm to invoke BPEL process through JSP.
    I think it's caused from BPEL Library.
    Where can i find com.evermind.server.rmi.RMIInitialContextFactory ?
    the error messages are below.
    javax.naming.NoInitialContextException: Cannot instantiate class: com.evermind.server.rmi.RMIInitialContextFactory [Root exception is java.lang.ClassNotFoundException: com.evermind.server.rmi.RMIInitialContextFactory]
         at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:652)
         at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
         at javax.naming.InitialContext.init(InitialContext.java:219)
         at javax.naming.InitialContext.<init>(InitialContext.java:195)
         at com.oracle.bpel.client.util.BeanRegistry.lookupDeliveryBean(BeanRegistry.java:277)
         at com.oracle.bpel.client.delivery.DeliveryService.getDeliveryBean(DeliveryService.java:250)
         at com.oracle.bpel.client.delivery.DeliveryService.post(DeliveryService.java:174)
         at com.oracle.bpel.client.delivery.DeliveryService.post(DeliveryService.java:149)
         at org.apache.jsp.invokeBPEL_jsp._jspService(invokeBPEL_jsp.java:80)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    Caused by: java.lang.ClassNotFoundException: com.evermind.server.rmi.RMIInitialContextFactory
    Thanx.
    jean.

    Hi Rajesh,
    Please refer \bpel\samples\tutorials\102.InvokingProcesses\jsp.
    BPEL Tutorial 7: Invoking BPEL Processes through SOAP and Java : Reference: 2004/06/14/orabpel/d5/1.0
    Hope this helps!
    Regards
    Anirudh Pucha

  • Problem in invoking BPEL process from jsp

    Dear Experts,
    I am trying to invoke BPEL process from simple JSP form, with guide lines of http://download.oracle.com/docs/cd/B31017_01/integrate.1013/b28981/invoke.htm. But I'm receiving the following error
    Error: JSP files must reside in the server root directory or a subdirectory beneath it
    Note: I having my JSP page inside my project folder-->output_html--> myfile.jsp
    Thanks,
    Rajesh

    Hi Rajesh,
    Please refer \bpel\samples\tutorials\102.InvokingProcesses\jsp.
    BPEL Tutorial 7: Invoking BPEL Processes through SOAP and Java : Reference: 2004/06/14/orabpel/d5/1.0
    Hope this helps!
    Regards
    Anirudh Pucha

  • Accessing BPEL processes via a proxy web service performance issues

    Hello,
    I have more BPEL processes implemented, each such a process implementing business functionality in a certain domain (generally, a domain has more business processes).
    The request was to provide a single web service for each domain. It means that all the business methods (processes) in the same domain should be accessed through the same web service. This request doesn't make possible to expose the BPEL processes themselves as web services that could be directly consumed by different clients of the application.
    The alternative will be to implement the "domain" web services through a Java class, for instance. With this approach, the Java based domain web services will expose the needed business methods to the clients. And the Java class will get the request input parameters and will call the corresponding BPEL process via SOAP. This scenario would be fine, but... this approach would imply a supplementary marshalling/unmarshalling process at the domain web service level. The data returned by the BPEL processes could be very large and in such a situation the Java based domain web service will introduce an important performance drawback.
    Is there any other solution to this case that will allow the using of a "proxy" domain web services that will not introduce any important drawback via marshalling/unmarshalling?
    Many thanks in advance!
    Regards,
    Marinel

    Hello,
    First, thank you Sandor for your answer.
    I understand that it is possible to create a BPEL process that exposes multiple operations/messages. This would be exactly what I need: a single process (web service) that will expose many operations. Could anyone, please, point me to such an example?
    So far I thought that there is possible to have only one operation exposed with a BPEL process, what is delimited between the receive/reply blocks (in the synchronous case).
    Regards,
    Marinel

  • Invoking a BPEL Process via Java Remote Client

    Hi everyone!
    I want to invoke a BPEL process from my Java Application which is not running on the same Application-Server (not the same Java RE) as the BPEL processmanager does.
    For Applications running on the same AS there is the IDeliveryService class to which you can send a XML-request in order to invoke a BPEL process.
    Is the only way to invoke a BPEL Process from an external application to use a webservice client or is there a similar class for java remote clients?
    For access to the users worklist I use
    IWorkflowServiceClient wfClient = WorkflowServiceClientFactory.getWorkflowServiceClient(WorkflowServiceClientFactory.REMOTE_CLIENT);
    it works fine an I thought there might be a similar way to invoke a bpel process via remote too.
    If anyone knows if it's possible or not please tell me ;)
    Thanks in advance
    Markus

    Hello,
    Here is the code I use:
    Properties props = new Properties();
    Locator locator = null;
    props.put("orabpel.platform", "ias_10g" );
    props.put("java.naming.factory.initial","com.evermind.server.rmi.RMIInitialContextFactory" );
    props.put("java.naming.provider.url","opmn:ormi://host:port/orabpel" );
    props.put("java.naming.security.principal", "adminuser" );
    props.put("java.naming.security.credentials", "mdp" );
    String securityCredentials = "adminuser";
    String selectedDomain = "default";
    locator = new Locator(selectedDomain,securityCredentials,props);
    IBPELProcessHandle procs[] = locator.listProcesses();
    The error is:
    Exception in thread "main" java.rmi.UnmarshalException: Error deserializing return-value: java.io.InvalidClassException: com.oracle.bpel.client.BPELProcessHandle; local class incompatible: stream classdesc serialVersionUID = 5429682712928177644, local class serialVersionUID = 8176841433835717563
    at com.oracle.bpel.client.util.ExceptionUtils.handleServerException(ExceptionUtils.java:82)
    at com.oracle.bpel.client.Locator.listProcesses(Locator.java:309)
    Thanks for help.
    Edited by: 857737 on 14 sept. 2012 10:00

  • Error invoking bpel process using axis client

    When I am trying to invoke bpel process using axis client I'am having following error:
    AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
    faultSubcode:
    faultString: org.xml.sax.SAXException: Bad envelope tag: html
    faultActor:
    faultNode:
    faultDetail:
         {http://xml.apache.org/axis/}stackTrace: org.xml.sax.SAXException: Bad envelope tag: html
         at org.apache.axis.message.EnvelopeBuilder.startElement(EnvelopeBuilder.java:109)
         at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:976)
         at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
         at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
         at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)
         at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
         at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
         at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
         at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:242)
         at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
         at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
         at org.apache.axis.client.Call.invokeEngine(Call.java:2583)
         at org.apache.axis.client.Call.invoke(Call.java:2553)
         at org.apache.axis.client.Call.invoke(Call.java:1753)
         at com.oracle.sample.ws.ArrayClient.main(ArrayClient.java:44)
    org.xml.sax.SAXException: Bad envelope tag: html
         at org.apache.axis.AxisFault.makeFault(AxisFault.java:129)
         at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:543)
         at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
         at org.apache.axis.client.Call.invokeEngine(Call.java:2583)
         at org.apache.axis.client.Call.invoke(Call.java:2553)
         at org.apache.axis.client.Call.invoke(Call.java:1753)
         at com.oracle.sample.ws.ArrayClient.main(ArrayClient.java:44)
    Caused by: org.xml.sax.SAXException: Bad envelope tag: html
         at org.apache.axis.message.EnvelopeBuilder.startElement(EnvelopeBuilder.java:109)
         at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:976)
         at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
         at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
         at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)
         at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
         at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
         at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
         at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:242)
         at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
         ... 5 more
    My client code is following:
    Service service = new Service();
    Call call = (Call) service.createCall();
    call.setTargetEndpointAddress(new java.net.URL("http://localhost:9700/orabpel/default/Array"));
    SOAPEnvelope env = new SOAPEnvelope();
    Name bodyName = env.createName("ArrayRequest", "tns", "http://localhost/");
    SOAPBodyElement request = body.addBodyElement(bodyName);
    Name childName = env.createName("input","tns","http://localhost/");
    SOAPElement input = request.addChildElement(childName);
    input.addTextNode("ORCL");
    call.invoke(env);
    MessageContext mc = call.getMessageContext();
    System.out.println("\n============= Response ==============");
    XMLUtils.PrettyElementToStream(mc.getResponseMessage().getSOAPEnvelope().getAsDOM(), System.out);
    I'am having the same error with client generated by wsdl2java.
    Regards

    Hi -
    A few things that you may want to try to troubleshoot this issue:
    1) Run our sample of calling a BPEL process from Axis, located in:
    C:\orabpel\samples\interop\axis\AXISCallingSyncBPEL
    2) Run your client through a TCP tunnel to see the specific SOAP request message that is being sent to the BPEL process and the SOAP response that is being generated. This should help you determine which side of the communication is causing the problem, as well as to rule out proxy server or other issues that are very common problems for this situation.
    Dave

  • Initiate process via SOAP

    Hi all.
    I initiate an instance of process via SOAP (Axis2) the first one works fine
    but the rest throws exception.
    When I restart the server(in JDev) the same scenario occurs
    08/02/02 16:52:51 org.apache.axis2.AxisFault: java.lang.NullPointerException
    08/02/02 16:52:51      at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:486)
    08/02/02 16:52:51      at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:343)
    08/02/02 16:52:51      at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:389)
    08/02/02 16:52:51      at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211)
    08/02/02 16:52:51      at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)

    This sounds very similar to how my BPEL process behaves. I'm unable to post XML input into the "XML Source" region of the initiate screen unless the input is properly wrapped in the respective message type element.
    Make sure your invoking client code is wrapping the input properly with the message type XML elements.

  • Invoke BPEL process with the webservice interface

    I'm using Oracle BPEL PM 10.1.2.x.
    Follow the example comes with the BPEL PM, i can invoke the BPEL process in a J2EE project (with the webservice interface). The example named "UseStockReviewSheet".
    Then i tried to invoke the BPEL process i designed with Eclipse BPEL Designer. The version of BPEL designer for Eclipse is 0.9.13.
    I failed and got following errors:
    09/03/17 16:55:53 com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.
    xmlsoap.org/ws/2003/03/business-process/}selectionFailure}
    messageType: {null}
    parts: {{summary=<summary>变量/表达式结果为空.
    尝试读取/复制第 50 行的 xpath 变量/表达式 "bpws:getVariableData('input','payload
    ','/tns:CreditFlowRequest/tns:input')" 时, 发现为空。.
    请确保变量/表达式结果 "bpws:getVariableData('input','payload','/tns:CreditFlowRe
    quest/tns:input')" 非空。.
    </summary>}}
    09/03/17 16:55:53 at com.collaxa.cube.engine.ext.wmp.BPELAssignWMP.checkEx
    pressionFromValue(BPELAssignWMP.java:972)
    09/03/17 16:55:53 at com.collaxa.cube.engine.ext.wmp.BPELAssignWMP.evalFro
    mValue(BPELAssignWMP.java:504)
    09/03/17 16:55:53 at com.collaxa.cube.engine.ext.wmp.BPELAssignWMP.__execu
    teStatements(BPELAssignWMP.java:122)
    09/03/17 16:55:53 at com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perfo
    rm(BPELActivityWMP.java:188)
    09/03/17 16:55:53 at com.collaxa.cube.engine.CubeEngine.performActivity(Cu
    beEngine.java:3408)
    09/03/17 16:55:53 at com.collaxa.cube.engine.CubeEngine.handleWorkItem(Cub
    eEngine.java:1836)
    09/03/17 16:55:53 at com.collaxa.cube.engine.dispatch.message.instance.Per
    formMessageHandler.handleLocal(PerformMessageHandler.java:75)
    09/03/17 16:55:53 at com.collaxa.cube.engine.dispatch.DispatchHelper.handl
    eLocalMessage(DispatchHelper.java:166)
    09/03/17 16:55:53 at com.collaxa.cube.engine.dispatch.DispatchHelper.sendM
    emory(DispatchHelper.java:252)
    09/03/17 16:55:53 at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEng
    ine.java:5438)
    09/03/17 16:55:53 at com.collaxa.cube.engine.CubeEngine.createAndInvoke(Cu
    beEngine.java:1217)
    09/03/17 16:55:53 at com.collaxa.cube.engine.delivery.DeliveryService.hand
    leInvoke(DeliveryService.java:511)
    09/03/17 16:55:53 at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.han
    dleInvoke(CubeDeliveryBean.java:335)
    09/03/17 16:55:53 at ICubeDeliveryLocalBean_StatelessSessionBeanWrapper16.
    handleInvoke(ICubeDeliveryLocalBean_StatelessSessionBeanWrapper16.java:1796)
    09/03/17 16:55:53 at com.collaxa.cube.engine.dispatch.message.invoke.Invok
    eInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
    09/03/17 16:55:53 at com.collaxa.cube.engine.dispatch.DispatchHelper.handl
    eMessage(DispatchHelper.java:125)
    09/03/17 16:55:53 at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.
    process(BaseScheduledWorker.java:70)
    09/03/17 16:55:53 at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage
    (WorkerBean.java:86)
    09/03/17 16:55:53 at com.evermind.server.ejb.MessageDrivenBeanInvocation.r
    un(MessageDrivenBeanInvocation.java:123)
    09/03/17 16:55:53 at com.evermind.server.ejb.MessageDrivenHome.onMessage(M
    essageDrivenHome.java:755)
    09/03/17 16:55:53 at com.evermind.server.ejb.MessageDrivenHome.run(Message
    DrivenHome.java:928)
    09/03/17 16:55:53 at com.evermind.util.ReleasableResourcePooledExecutor$My
    Worker.run(ReleasableResourcePooledExecutor.java:186)
    09/03/17 16:55:53 at java.lang.Thread.run(Thread.java:534)
    <2009-03-17 16:55:53,640> <ERROR> <default.collaxa.cube.xml> com.oracle.bpel.cli
    ent.BPELFault: faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-proce
    ss/}selectionFailure}
    messageType: {null}
    parts: {{summary=<summary>变量/表达式结果为空.
    尝试读取/复制第 50 行的 xpath 变量/表达式 "bpws:getVariableData('input','payload
    ','/tns:CreditFlowRequest/tns:input')" 时, 发现为空。.
    请确保变量/表达式结果 "bpws:getVariableData('input','payload','/tns:CreditFlowRe
    quest/tns:input')" 非空。.
    </summary>}}
    I can invoke my BPEL process in BPEL console, not in J2EE project. bpws:getVariableData('input','payload','/tns:CreditFlowRequest/tns:input')" is null.
    The error message contains some Chineses word. I'm new to BPEL, hope someone can give me a hint on how to solve this problem.
    Thanks a billion!
    --Sunny 2009-3-18

    Following is the java class invoking BPEL process with the webservice interface.
    package com.otn.samples;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.JAXRPCException;
    import javax.xml.rpc.ParameterMode;
    import javax.xml.rpc.Service;
    import javax.xml.rpc.ServiceException;
    import javax.xml.rpc.ServiceFactory;
    import javax.xml.rpc.encoding.XMLType;
    import javax.xml.rpc.soap.SOAPFaultException;
    import org.apache.axis.client.Call;
    * @version 2.0 $Date: 07-mar-2005.05:07:45 $
    * @author Copyright (c) 2004 by Oracle. All Rights Reserved.
    public class CreditFlowClient
    private static QName SERVICE_NAME;
    private static QName PORT_TYPE;
    private static QName OPERATION_NAME;
    private static String SOAP_ACTION;
    private static String STYLE;
    private static String THIS_NAMESPACE = "http://samples.otn.com";
    private static String PARAMETER_NAMESPACE = "http://samples.otn.com";
    private String location;
    static
    SERVICE_NAME = new QName(THIS_NAMESPACE,"CreditFlow");
    PORT_TYPE = new QName(THIS_NAMESPACE,"CreditFlow") ;
    OPERATION_NAME = new QName(THIS_NAMESPACE,"creditFlowRequest");
    SOAP_ACTION = "initiate";
    STYLE = "wrapped";
    public void setLocation(String location)
    this.location = location;
    public void initiate(String ssn)
    try
    /* Create Service and Call object */
    ServiceFactory serviceFactory = ServiceFactory.newInstance();
    Service service = serviceFactory.createService( SERVICE_NAME );
    Call call = (Call)service.createCall( PORT_TYPE );
    /* Set all of the stuff that would normally come from WSDL */
    call.setTargetEndpointAddress( location );
    call.setProperty(Call.SOAPACTION_USE_PROPERTY, Boolean.TRUE);
    call.setProperty(Call.SOAPACTION_URI_PROPERTY, SOAP_ACTION);
    call.setProperty( Call.OPERATION_STYLE_PROPERTY , STYLE );
    call.setOperationName(OPERATION_NAME);
    call.addParameter(new QName(PARAMETER_NAMESPACE,"ssn"), XMLType.XSD_STRING, ParameterMode.IN);
    Object[] params = new Object[1];
    params[0] = ssn;
    /* Invoke the service */
    call.invokeOneWay(params);
    System.out.println( "CreditFlow BPEL process initiated" );
    catch (SOAPFaultException e)
    System.err.println("Generated fault: ");
    System.out.println (" Fault Code = " + e.getFaultCode());
    System.out.println (" Fault String = " + e.getFaultString());
    catch (JAXRPCException e)
    System.err.println("JAXRPC Exception: " + e.getMessage());
    catch (ServiceException e)
    System.err.println("Service Exception: " + e.getMessage());
    public static void main(String[] args)
    String ssn = "12-123-126";
    String location = "http://localhost:9700/orabpel/default/CreditFlow";
    CreditFlowClient client = new CreditFlowClient();
    if(args.length == 1)
         ssn = args[0];
    else if(args.length ==2)
    location = args[0];
    ssn = args[1];
    client.setLocation( location );
    client.initiate( ssn );
    -------------------------------------------------------------------

  • Null Pointer exception while invoking BPEL process

    Hi all,
    I am getting following exception when I am invoking a BPEL process1 (deployed in 10.1.3.1) from another BPEL Process 2 (deployed in 10.1.3.3)
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header/>
    <env:Body>
    <env:Fault xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <faultcode>env:Server</faultcode>
    <faultstring>java.lang.NullPointerException</faultstring>
    <faultactor/>
    </env:Fault>
    </env:Body>
    </env:Envelope>
    BPEL Process 1 is working fine when given manual input (testing through console). But when invoked using BPEL Process 2, it gives the above error. I also tried invoking BPEL Process 1 (and many other webservices deployed in 10.1.3.1) using TCPMON tool and got the same error.
    Am I missing something here in configuration of 10.1.3.1 or any other issue? Please help as it is really urgent.

    Contact [email protected]
    Slava Imeshev wrote:
    Hi Ramu,
    "Ramu" <[email protected]> wrote in message
    I have just upgraded to service pack #13 on WLS 5.1 from service pack #6.I am using the same code as it was with SP #6. When I invoke finder method
    on entity bean, I get null pointer exception. The primary key object for the
    entity bean has equals() method.
    javax.ejb.FinderException: Exception executing finder:java.lang.NullPointerException
    atweblogic.ejb.internal.StatefulEJBCache.getFinderContext(StatefulEJBCache.jav
    a:264)
    atweblogic.ejb.internal.StatefulEJBCache.getEJBContext(StatefulEJBCache.java:3
    54)
    Check if equals() method can handle null parameter.
    Regards,
    Slava Imeshev--
    Rajesh Mirchandani
    Developer Relations Engineer
    BEA Support

  • Invoking BPEL Process through pl/sql is failing

    Hi all,
    I am trying to invoke BPEL process through PL/SQL and its throwing following error.
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><env:Fault xmlns="http://xmlns.oracle.com/pcbpel/adapter/file/ReadFile/"><faultcode xmlns="">null:Read_ptt</faultcode><faultstring xmlns="">Cannot figure out operation name. Bad SOAPAction or wsa:Action.</faultstring><faultactor xmlns="">initiate</faultactor></env:Fault></env:Body></env:Envelope>
    Following is code I am using to invoke BPEL PROCESS
    declare
    soap_request varchar2(30000);
    soap_respond varchar2(30000);
    http_req utl_http.req;
    http_resp utl_http.resp;
    begin
    soap_request:='<?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header/>
    <soap:Body xmlns:ns1="http://xmlns.oracle.com/pcbpel/adapter/file/ReadFile/">
    --<ns1:Read_plt><ns1:input>leeg</ns1:input></ns1:Read_plt>
    </soap:Body>
    </soap:Envelope>';
    http_req:= sys.utl_http.begin_request('http://localhost/orabpel/default/BPELProcess1/v2007_12_03__65618','POST','HTTP/1.1' );
    sys.utl_http.set_header(http_req, 'Content-Type', 'text/xml') ;
    sys.utl_http.set_header(http_req, 'Content-Length', length(soap_request)) ;
    sys.utl_http.set_header(http_req, 'SOAPAction', 'initiate');
    sys.utl_http.write_text(http_req, soap_request) ;
    http_resp:= sys.utl_http.get_response(http_req) ;
    sys.utl_http.read_text(http_resp, soap_respond) ;
    sys.utl_http.end_response(http_resp) ;
    dbms_output.put_line(soap_respond);
    end;
    Any help would be appriciated.
    Thanks,
    Vipul

    Hi,
    Switching on or off a bpel is an admin job.
    u can stop an application but not one bpel.
    I doubt if there is any way to do it programatically.
    Let us get other opinons
    Regards

Maybe you are looking for

  • Creation NA object for fired person

    Hello. We have the next problem. It is necessary to create an object NA for fired person. Nowadays there are only two objects for him: P and CP (and there is no BP). The report HRALXSYNC does not create an object NA without BP and it is not understan

  • Stock & Non-stock material

    Hi experts,   How to find which material is stock and nonstock from the internal goods/services list in SRM frontend Thanks in advance Kala

  • Using Physical Databse In Human Task Of A BPEL Process

    Hello Fnds, I am Bhanu Teja,While creating a Human Task,we get a dialog box,"Identity lookup dialog",I want to get list of users from Database.....I want to know is this is possible,if so can anyone guide me how to do it.I am using 10.1.3.1 version o

  • Audio Cuts Out During Slideshow Transitions

    Hi- In my iDVD6 slideshow I have embedded audio. It cuts out during each transition. Do I have to not use transitions to keep that from happening? Are there some transitions that don't make the audio cut out, or is it something else entirely? Thanks

  • BlackBerry World disobeys device language settings

    My copy of BlackBerry World plays smartass and displays Indonesian while I explicitly specify English as my language in device settings. Even worse is the fact that it's incomplete: there are still English phrases left in BlackBerry World here and th