Java Code in BPEL 2.0 to set nested variable

Hi,
Using BPEL 2.0 Java Embedding I want to copy the a value to the result element under outputVariable payload.
I am using following code
<extensionActivity>
<bpelx:exec name="Java_Embedding" language="java">
<![CDATA[try{     
         BPMWorkspaceServices WorkspaceServices = new BPMWorkspaceServices();    
         XMLElement instId = (XMLElement) getVariableData("inputVariable","payload");    
         String url = WorkspaceServices.getTaskURL("weblogic.jndi.WLInitialContextFactory", "t3://host:port", "abcde", "abcde",instId.getTextContent());    
         XMLElement elem = (XMLElement) getVariableData("outputVariable","payload");        
         elem.setTextContent(url);    
        } catch (Exception e) {     
System.out.println("**************Error Testing Test URL **************");
e.printStackTrace();
}]]>
</bpelx:exec>
</extensionActivity>
I am getting the folowing output payload:-
<outputVariable>
<part name="payload">
<processResponse>http://abcde.com</processResponse>
</part>
</outputVariable>
However I wanted the thing like
<outputVariable>
<part name="payload">
<processResponse>
<result>http://abcde.com</result>
</processResponse>
</part>
</outputVariable>
What code should I write in Java Embedding in BPEL 2.0?
Please help!
Regards,
Sam

Hello Rolando Carrasco,
Thank for responding my question. I figure out the issue. It is because we need to import the java API's what we are using in the java embedding.
Thank you,
Raj

Similar Messages

  • Error in embedding java code in Bpel process

    I am calling one of the java snippet in my process which in turn uses the files from some jars.
    But I am getting error :
    <2006-11-07 12:08:51,227> <ERROR> <default.collaxa.cube.engine.bpel> BPELExecution
    java.lang.ExceptionInInitializerError
         at bpel.p0.ExecLetBxExe0.execute(ExecLetBxExe0.java:35)
         at com.collaxa.cube.engine.ext.wmp.BPELXExecWMP.__executeStatements(BPELXExecWMP.java:52)
         at com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perform(BPELActivityWMP.java:188)
         at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:3408)
         at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1836)
         at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:75)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:166)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:252)
         at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:5438)
         at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:1217)
         at com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:511)
         at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke(CubeDeliveryBean.java:335)
         at ICubeDeliveryLocalBean_StatelessSessionBeanWrapper16.handleInvoke(ICubeDeliveryLocalBean_StatelessSessionBeanWrapper16.java:1796)
         at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:125)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at com.evermind.server.ejb.MessageDrivenBeanInvocation.run(MessageDrivenBeanInvocation.java:123)
         at com.evermind.server.ejb.MessageDrivenHome.onMessage(MessageDrivenHome.java:755)
         at com.evermind.server.ejb.MessageDrivenHome.run(MessageDrivenHome.java:928)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
         at java.lang.Thread.run(Thread.java:534)
    Caused by: java.lang.ClassCastException
         at com.misys.eqplus.framework.management.instrumentation.ManagementEvent.<clinit>(ManagementEvent.java:36)
         ... 22 more
    I am putting the jar files in my
    BPEL_INF flder
    and entering it in this in C:\OraBPELPM_1integration\orabpel\domains\default\config\domain
    properties file in C:\OraBPELPM_1\integration\orabpel\domains\default\config
    ear file in C:\OraBPELPM_1\integration\orabpel\system\appserver\oc4j\j2ee\home\applications
    Please help me

    Hello Santosh,
    Are you importing the used java classes using <bpelx:exec import="classname"/>
    Regards,
    Melvin

  • Embedding Java Code(URGENT)

    Hello,
    I'm trying to do the following, I'm trying to embed Java code into my BPEL process, I have read the tutorial that explains how to embed a java code into BPEL(http://www.oracle.com/technology/products/ias/bpel/pdf/orabpel-Training-Segment10.pdf) but unfortunately the tutorial discusses only how to call the Entity Bean but doesnt mention where in folders(directory) should the bean itself be placed, where are the imports.
    I'm going to start with a simple example, a class called Multiplier that has function square, Here is the code for the class:
    //Java Multiplier class
    public class Multiplier{
    public Multiplier(){}
    public int square(int x){
    return x*x; }
    this is code that will be placed in the EXEC(Java code snippet):
    //Java Code Snippet goes here...
    try{
    Object input= getVariableData
    ("input","payload","/JavaCode");
    String parser= input.toString();
    int in= Integer.parseInt(parser);
    Multiplier obj1= new Multiplier();
    int result= obj1.square(in);
    addAuditTrailEntry("The square of the input is:"+result);
    catch(Exception en){
    addAuditTrailEntry(en);
    Where should the multiplier class be located(in which folder in the ecplise)or how will the BPEL refer to it ?
    Shouldnt I import the Multiplier class in the EXEC(snippet) where should that line go?
    Thanks in advance
    Hussam Galal

    After going through the Forum I saw I question similar to mine, and I found out there's an example similar to what I am trying to do at C:\orabpel\samples\references\JavaExec
    I tried to make an example almost exactly like JavaExec and I edited my build.xml to be similar to build.xml of the example but I keep getting this error:
    BUILD FAILED: C:\eclipse-SDK-3.0-win32\eclipse\workspace\Calc\build.xml:28: ORABPEL-00017
    Java compilation failed.
    Failed to compile file(s) "Calc.bpel".
    Exception reported is: Calc.bpel:44: ';' expected.
    Multiplier mult= new Multiplier();
    ^
    1 error
    Please verify that file Calc.bpel is valid java file or if all required libraries are included in your classpath.
    classpath: C:\eclipse-SDK-3.0-win32\eclipse\startup.jar;C:\eclipse-SDK-3.0-win32\eclipse\startup.jar;C:\eclipse-SDK-3.0-win32\eclipse;c:\eclipse-SDK-3.0-win32\eclipse\plugins\bpelz_0.9.10\lib\orabpel-ant.jar;c:\eclipse-SDK-3.0-win32\eclipse\plugins\bpelz_0.9.10\lib\orabpel-boot.jar;c:\eclipse-SDK-3.0-win32\eclipse\plugins\bpelz_0.9.10\lib\orabpel-common.jar;c:\eclipse-SDK-3.0-win32\eclipse\plugins\bpelz_0.9.10\lib\orabpel-thirdparty.jar;c:\eclipse-SDK-3.0-win32\eclipse\plugins\bpelz_0.9.10\lib\orabpel.jar;C:\DOCUME~1\temp_ps\LOCALS~1\Temp\bpelc40446.tmp\BPEL-INF\classes
    Here's the java code in the EXEC(snippet):
    // Java code snippet goes here ...
    com.otn.samples.javaexec.Multiplier
    Multiplier mult= new Multiplier();
    Object obj1= getVariableData("input","payload","/Calc");
    String str= obj1.toString();
    int in= Integer.parseInt(str);
    int result= mult.square(in);
    addAuditTrailEntry("The result is: "+result);
    Finally here's the my build.xml:
    <?xml version="1.0"?>
    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Run cxant on this file to build, package and deploy the
    Calc BPEL process
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <project name="Calc" default="all" basedir=".">
    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Name of the domain the generated BPEL suitcase will be deployed to
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <property name="deploy" value="default"/>
    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    What version number should be used to tag the generated BPEL archive?
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <property name="rev" value="1.0"/>
         <target name="CompileJava">
         <mkdir dir="${basedir}/BPEL-INF/classes"/>
              <javac srcdir="${basedir}/src" destdir="${basedir}/BPEL-INF/classes"/>
         </target>
    <target name="Calc">
    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    the bpelc task compiles and package BPEL processes into versioned BPEL
    archives (bpel_...jar). See the "Programming BPEL" guide for more
    information on the options of this task.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <bpelc home="${home}" rev="${rev}" deploy="${deploy}"/>
    </target>
    <target name="all" depends="CompileJava, Calc"/>
    </project>

  • Error while using Java bindings in BPEL (WSIF)

    Hi,
    I have a requirement to invoke a java method from BPEL process using WSIF and get the response back from it.
    MY java method accepts an input parameter which is object of anothe class.
    When I tried to invoke the java class from BPEL, I am getting the following error:
    [email protected] : Could not invoke 'getFullName'; nested exception is: org.collaxa.thirdparty.apache.wsif.WSIFException: Class 'com.services.test.Employee' is not compatible; nested exception is: java.lang.NullPointerException
    Please find below the java class that I created:
    package com.services.test;
    import com.services.test.Employee;
    import com.services.test.EmployeeFullRecord;
    public class EmployeeRecord {
    public EmployeeRecord() {
    public static void main(String[] args) {
    EmployeeRecord employeeRecord = new EmployeeRecord();
    public EmployeeFullRecord getFullName(Employee emp) {
    String fullName = emp.getFname() + emp.getLname();
    EmployeeFullRecord emp1 = new EmployeeFullRecord();
    emp1.setFullName(fullName);
    return emp1;
    The following is the wsdl that I created with JAva bindings:
    <types>
    <schema attributeFormDefault="qualified"
    elementFormDefault="qualified"
    targetNamespace="urn:EmployeeRecord"
    xmlns="http://www.w3.org/2001/XMLSchema">
    <complexType name="Employee">
    <sequence>
    <element name="fname" type="xsd:string" />
    <element name="lname" type="xsd:string" />
    </sequence>
    </complexType>
    <complexType name="EmployeeFullRecord">
    <sequence>
    <element name="fullName" type="xsd:string" />
    </sequence>
    </complexType>
    </schema>
    </types>
    <message name="EmployeeRequestMessage">
    <part name="emp" type="tns:Employee"/>
    </message>
    <message name="EmployeeResponseMessage">
    <part name="emp1" type="tns:EmployeeFullRecord" />
    </message>
    <portType name="Employee">
    <operation name="getFullName">
    <input message="tns:EmployeeRequestMessage" />
    <output message="tns:EmployeeResponseMessage" />
    </operation>
    </portType>
    <binding name="JavaBinding" type="tns:Employee">
    <java:binding/>
    <format:typeMapping encoding="Java" style="Java">
    <format:typeMap typeName="tns:Employee" formatType="com.services.test.Employee"/>
    <format:typeMap typeName="tns:EmployeeFullRecord" formatType="com.services.test.EmployeeFullRecord"/>
    <format:typeMap typeName="xsd:string" formatType="java.lang.String" />
    </format:typeMapping>
    <operation name="getFullName">
    <java:operation methodName="getFullName" />
    <input/>
    <output/>
    </operation>
    </binding>
    <service name="Employee">
    <port name="JavaPort" binding="tns:JavaBinding">
    <java:address className="com.services.test.EmployeeRecord"/>
    </port>
    </service>
    Please let me know if I have missed out something.
    THanks in advance!!!

    Hi,
    I have created another such service as above and placed the class files in <oraclehome>/bpel/system/classes and invoked the java code from bPEL.
    Now i am getting the following error:
    com.collaxa.cube.ws.wsif.providers.java.WSIFOperation_Java@98065 : Could not invoke 'createIdentity'; nested exception is: org.collaxa.thirdparty.apache.wsif.WSIFException: Class 'com.testx.wam.services.gen.identity.CreateRequest' is not compatible; nested exception is: javax.xml.bind.UnmarshalException: unexpected element (*uri:"",* local:"createRequest"). Expected elements are <{http://services.test.com/shared/xmlschema/user/1}CreateResponse>
    My question is why am I getting URL as empty when I am actually passing the URL to the service. I have highlighted the uri which is showing as empty above.
    Please help me solve this issue.
    Thanks in advance!!!

  • Using jsp variable in java code

    Hey guys,
    I need some help hope you guys can help me.
    I've declared a variable "error" in a jsp. how do I access this variable in the java code whice resides in the same jsp page.
    I know I can use java variable in jsp code using
    <%= sVariable %>
    where sVariable was declared in the java code. but how do I access a jsp variable in java code??
    Thanks very much in advance

    Thanks for the reply.
    This is what I want to do.
    I've declared a variable "error" using <c:catch var="error">I want to check the value of this variable and suppose if it contains XYZ (error variable will have a long string so I just want to check if it contains a specific value) I want to do step1 and if the variable of error is not XYZ I want to do step 2
    Problem is I dont know how to check if error contains the XYZ in jsp thats why I thought java code would help here.
    Can you guys suggest a better way to solve my problem.
    Thanks again

  • Setting bpel variable using external java code

    Hi all
    I would like to ask if there is a way to set bpel process variable during process execution from external java code using java api without using java embedding code?!!
    Thnx in advance

    Hi, I wanna to know if it is possible at all to edit/update value of variables in a process instance via external java code?
    In fact I don't believe that we can set a variable remotely using java APIs.Am I right?
    For example,is it possible to change the value of a field in the user task form(that is sent to a user to fill and complete the task)?

  • Adding a java class code in BPEL 11g

    Hi Friends ,
    i m doing one simple example of calling a java class from bpel ,
    1. first i created a java class
    2. After that in my project i imported the jar file of the same class , and i am using JavaEmbedding
    for creating one object of that class and calling one method which return me the string result and finally i am setting the result in bpel variable.
    the application is build successfull but when i am deploying it i am getting following error
    [02:31:19 PM] Error deploying archive sca_JavaCall_rev1.0.jar to partition "OrderProcessing" on server soa_server1 [http://10.45.4.206:8006]
    [02:31:19 PM] HTTP error code returned [500]
    [02:31:19 PM] Error message from server:
    There was an error deploying the composite on soa_server1: Deployment Failed: Error occurred during deployment of component: JavaCallBPELProcess to service engine: implementation.bpel, for composite: JavaCall: ORABPEL-05250
    Error deploying BPEL suitcase.
    error while attempting to deploy the BPEL component file "/u04/FMW_HOME/user_projects/domains/Training_domain/servers/soa_server1/dc/soa_3e8c5747-aba0-49b7-91d4-56f74bec87b8"; the exception reported is: java.lang.RuntimeException: failed to compile execlets of JavaCallBPELProcess
    This error contained an exception thrown by the underlying deployment module.
    Verify the exception trace in the log (with logging level set to debug mode).
    [02:31:19 PM] Check server log for more details.
    [02:31:19 PM] Error deploying archive sca_JavaCall_rev1.0.jar to partition "OrderProcessing" on server soa_server1 [http://10.45.4.206:8006]
    [02:31:19 PM] #### Deployment incomplete. ####
    [02:31:19 PM] Error deploying archive file:/C:/JDeveloper/mywork/Trimble/JavaCall/deploy/sca_JavaCall_rev1.0.jar
    (oracle.tip.tools.ide.fabric.deploy.common.SOARemoteDeployer)
    please tell me what is the problem.

    You have to use the below value there.
    +2. After that in my project i imported the jar file of the same class ,+
    There are 2 things, if you are not going to reuse the same code, its better to use Java Embedded component.
    If you are going to reuse the same methods from the class then it make sense to import as jar file and use it.
    Thanks,
    Vijay

  • Terminate a BPEL Process using Java Code

    Hi,
    How can I achieve the forcible termination of a BPEL process via Java code??
    Thanks
    Pramod

    I guess I'll not be able to use event handlers because if I set an OnMessage, the process wont get kicked off till I receive a message, isnt it?
    My requirement is that I want the BPEL to keep executing as normal but as soon as I send a request to Stop, then it should terminate.
    Actually, is it possible to achieve the following? That is, I want to keep running a bpel process but at the same time keep monitoring for an input message(sent from another partnerlink maybe). As soon as I receive my input message, a different scope is executed and in this scope I can then put a terminate.
    Thanks
    Pramod

  • How i can set the selected item of a dropDown component from java code

    Hi
    Thank you for reading my post
    How i can set the slected item of a DropDown component from backing beans java code ?
    it is binded with a database , so one field determine its display and one other field determine its value , I want to set the selected item of this combobox
    In back code i have both value and display values to use them .
    can some one give me some help ?
    Thanks ,

    See code sample 3 at http://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/helloweb.html
    See also, the selection components row in the table under http://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/helloweb.html
    It says
    One way to preselect items is to call setSelectedValue(Object[]) or setSelectedValue(Object) from the prerender() method. You pass in the return values of the items that you want preselected. Be sure to verify that getSelected() returns null before setting the default options, or you will overwrite the user's selections on a post-back.

  • How to delete the BPEL instance in Java code

    Hi all,
    How to delete the BPEL instance which I initiate in Java code?
    Thanks
    Jayson

    Hi,
    take a look here
    http://download-uk.oracle.com/docs/cd/B31017_01/integrate.1013/b28986/toc.htm
    Interface IInstanceHandle
    void      delete()
    Delete the instance from the process domain.

  • Class Not found Exception for invoking BPEL process through the Java code

    Hi.
    The JDeveloper IDE raise the Exception From the invoking the BPEL process through the java code .Class Not Found Exception (Locator,ID.......).What is process of importing these classes from API.

    In your code (.bpel file) import the library using the bpelx:exec tag. For example the adding the following entry in your .bpel file imports the com.oracle.bpel.client.util library.
    <bpelx:exec import="com.oracle.bpel.client.util.*"/>

  • How to dynamically configure JPA setting at runtime using java code?

    Hi,
    I am new to EJB 3.0 and JPA. I am trying to help my company to deploy the use of JPA in EJB3.0. Currently, i am trying out with OpenJPA in IBM Webshpere Application Server 7.0. We have four different WAS servers running for testing, system integration testing, user testing and production respectively, and in each region, the configurations for data source, JDBC username and password, schema, etc are different. So i think i would need to configure the JPA setting during runtime using Java code that determines which is the environment. And apparently i am stuck with the limited knowledge i have.
    1) I understand that i could override the JDBC in the persistence xml by creating entity manager using entity manager factory. But is it possible that i do similar thing by using inejction of persistence context on entity manager to obtain a container managed entity manager?
    2) Alternatively, it is possible to create multiple persistence unit in the XML and inject different PU to the entity manager, am i right? But how to inject dynamically since @PersistenceContext(unitName="xxx") only accepts constant declaration.
    3) Is it possible that the JDBC username and password are read from properties file?
    Thanks for your help in advance!

    Hi
    Thanks for the reply.
    Are you saying that i have to configure the data source authentication to the backend DB2 using the JAAS-J2C? Correct me if i am mistaken. I guess i am unable to do so as the application server setup only contains one data source, and the server hosted a number of applications. Every applications has their own JDBC username and password supply to the data source (the ID supplied at the DB2 side will decide which resource can access) and thus, i have to supply the username and password at runtime. Talked to the server guy and seems that it is not feasible to have seperate datasource for each applications as considered to the volume of applications hosted inside the server.
    Any suggestion?

  • How to set schedule task in windows using java code

    Hi,
    i want to set the schedule task in windows os using the java code can any one help me on that
    can any one thinks i need to wright a dll file for that which set the schedule task for me which dll i can use in my java code.
    thanks in advance.

    Maybe this will help you?

  • How i can set dropDown item to 6th item from java code ?

    Hi
    Thank you for reading my post.
    how i can set dropDown item to 6th item from java code ?
    i have the value field of database and i can use it to set selected item of DropDown.
    so : can i use value field to set the selected item ?
    Thank u.

    Hi,
    Please go through the following thread which discusses about setting teh selected item for a dropdown:
    http://swforum.sun.com/jive/thread.jspa?forumID=123&threadID=50697
    Hope it helps
    Cheers
    Giri

  • Set classpath from java code

    Hi,
    Is it possible to set new classpath from java code? Something like System.setClasspath(String);
    Many thanks
    Miso

    You aren't the first one to wonder whether that would work, so don't call yourself stupid on that account.
    Not taking 15 minutes to set up and run a test to actually see if it works... well, if you really needed the answer, that would be different.

Maybe you are looking for