Problem in Java Embedding

Hi all,
I am new to BPEL and iam using Java Embedding Activity in my BPEL.
I am using getVariableData and setVariableData in my Java code and i don't know whether that syntax is correct or not. BPEL also Deployed and executed successfully.
But I not able to see the Output in the BPEL Console.. I include my Jar file in my Directory ........
Java code in JavaEmbedding Activity:
try{
Class cls = Class.forName("bpel.javabpel.Employee");
bpel.javabpel.Employee obj = (bpel.javabpel.Employee)cls.newInstance();
String firstName = (String)getVariableData("inputVariable","payload","/client:JavaEmbeddingProcessRequest/client:input");
addAuditTrailEntry("InputString is"+firstName);
String sConcatString = obj.concatString("firstName");
addAuditTrailEntry("OutputString is"+sConcatString);
setVariableData("outputVariable","payload","/client:JavaEmbeddingProcessResponse/client:result","sConcatString");
} catch (Exception e){
e.printStackTrace();
Any one help me where to see few basic examples of JavaEmbedding and what is actually the parameters in getVariableData and setVariableData.
Please help on this....
-Ashok

Duplicate post. See other Thread: Where I can see the few basic examples of Java Embedding in BPEL

Similar Messages

  • Problem trying to run java embedded in Xscale -PXA270

    Hi all,
    I have a Arcom Zeus (Xscale -PXA270, ARMv5, 5TE), and I'm trying to install java embedded for armv5 (headless). My system is debian/linux, gcc (), kernel 2.6.16-28 (cannot upgrade) and glibc (). My /proc/cpuinfo is:
    Processor : XScale-PXA270 rev 7 (v5l)
    BogoMIPS : 517.73
    Features : swp half thumb fastmult edsp
    CPU implementer : 0x69
    CPU architecture: 5TE
    CPU variant : 0x0
    CPU part : 0x411
    CPU revision : 7
    Cache type : undefined 5
    Cache clean : undefined 5
    Cache lockdown : undefined 5
    Cache format : Harvard
    I size : 32768
    I assoc : 32
    I line length : 32
    I sets : 32
    D size : 32768
    D assoc : 32
    D line length : 32
    D sets : 32
    Hardware : Arcom ZEUS
    Revision : 0000
    Serial : 0000000000000000
    My /proc/meminfo is:
    MemTotal: 127684 kB
    MemFree: 13532 kB
    Buffers: 4688 kB
    Cached: 70400 kB
    SwapCached: 0 kB
    Active: 71760 kB
    Inactive: 32680 kB
    HighTotal: 0 kB
    HighFree: 0 kB
    LowTotal: 127684 kB
    LowFree: 13532 kB
    SwapTotal: 0 kB
    SwapFree: 0 kB
    Dirty: 0 kB
    Writeback: 0 kB
    Mapped: 39200 kB
    Slab: 7036 kB
    CommitLimit: 63840 kB
    Committed_AS: 161180 kB
    PageTables: 848 kB
    VmallocTotal: 319488 kB
    VmallocUsed: 66072 kB
    VmallocChunk: 253116 kB
    I think all system requirements are respected!
    I have installed the package but when I try to execute "java", using "./java", it state that the file is not found, which typically means (when the file exists :D), that it is not compiled for the system in question. So, I have compiled a simple helloworld in C and compile it, to compare the output of the file command, between my program and the "java" executable:
    * a.out: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.6.12, dynamically linked (uses shared libs), for GNU/Linux 2.6.12, not stripped
         * java: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.14, dynamically linked (uses shared libs), for GNU/Linux 2.6.14, not stripped
    The only two differences are "version 1 (ARM)" or "version 1 (SYSV) - can it be the EABI? - and Kernel version 2.6.12 to 2.6.14.
    Can someone help me understand what is the problem and if it can be solved by modifying my system (but not the kernel version)?.
    Thanks in advance!

    Hi,
    forgot to state libc6 version = 2.7-18;
    and gcc version = 4.4.3
    thanks!

  • Problem with socket connection through Java Embedding...

    We are trying to create a simple socket connection to a socket server through BPEL PM using the Java Embedding component.
    BPEL Process : Client makes an asynchronous request. Passes an input variable. The input variable is sent to the Server Program through a socket connection through the Java embedding component.
    Server: We are running a simple Socket Server program from command prompt.
    The code below works fine as long as we do not try to receive a response from the server (Commented Code).
    If we uncomment the code and try to receive a response, it refuses to create an instance for the BPEL Process. And sometimes restarts the BPEL Server.
    Client Code:
    String msg="NONE";
    try{
    org.w3c.dom.Element input = (org.w3c.dom.Element) getVariableData("inputVariable","payload","/client:clientProcessRequest/client:input");
    msg = input.getNodeValue();
    Socket clientsoc=new Socket("ServerIP",1000);
    PrintWriter out1=new PrintWriter(clientsoc.getOutputStream());
    out1.write(msg);
    out1.flush();
    BufferedReader cin1=new BufferedReader(new InputStreamReader(clientsoc.getInputStream()));
    msg=cin1.readLine();
    setVariableData("outputVariable","payload","/client:result",new String(msg));
    clientsoc.close();
    catch(UnknownHostException e)
    System.err.println("Don't know about host: dev.");
    System.exit(1);
    catch (IOException e)
    System.err.println("Couldn't get I/O for "+ "the connection to: dev.");
    System.exit(1);
    }

    Repost

  • Java Embedding Activity Problem

    Hi,
    Can any one please suggest me i am getting an error message while using java embedding activity.I am getting the error message in server logs.
    Caused by: java.lang.NullPointerException
         at oracle.xml.binxml.BinXMLEncoderImpl.writeElementAttr(BinXMLEncoderImpl.java:2091)
         at oracle.xml.binxml.BinXMLEncoderImpl.startElement(BinXMLEncoderImpl.java:1007)
         at oracle.xml.binxml.BinXMLInfosetWriter.save(BinXMLInfosetWriter.java:206)
         at oracle.xml.parser.v2.XMLElement.writeNodeInfo(XMLElement.java:2959)
         at oracle.xml.parser.v2.XMLNode.writeChildNodes(XMLNode.java:3056)
         at oracle.xml.parser.v2.XMLElement.writeNodeInfo(XMLElement.java:2962)
         at oracle.xml.parser.v2.XMLNode.writeChildNodes(XMLNode.java:3056)
    oracle.fabric.common.FabricInvocationException: java.lang.NullPointerException
         at oracle.integration.platform.instance.InstanceManagerImpl.persistReferenceInstanceBean(InstanceManagerImpl.java:1153)
         at oracle.integration.platform.blocks.adapter.AbstractAdapterBindingComponent.createAndPersistBindingInstance(AbstractAdapterBindingComponent.java:504)
         at oracle.integration.platform.blocks.adapter.AdapterReference.createAndPersistBindingInstance(AdapterReference.java:356)
         at oracle.integration.platform.blocks.adapter.AdapterReference.post(AdapterReference.java:273)
    Thanks,
    Srinivas.

    Use System.out.println() in between your java statements and check the value in the logs. Alternatively, you can use addAuditTrailEntry(), that works similarly as System.out.println() but this prints on Activity itself on BPELConsole.

  • Using Java Embedding Unzip Code and a Trigger File in a BPEL Process

    Hello,
    Thanks in advance to anyone that contributes with any insight.  It is much appreciated.  Having said that I will get to the crux of my problem.
    I am currently using Oracle 11g.  I have created a SOA composite application that incorporates BPEL and Java.  I have the code needed to unzip and extract compressed folders.  However, when this was first built out using BPEL it automatically created a web service in the "exposed service" lane and not a file adapter which I believe is needed in order to trigger the process via a start.txt file for example.  Based on what I know ... this web service automatically connecting to the BPEL process was simply due to the order of operations, etc.  So by creating a 'read' file adapter first and then creating the BPEL process and selecting the template "Define Service Later", it does not automatcially connect the web service to the BPEL process and it will allow me to connect a file adapter to this BPEL process instead ... great.  When opening up the BPEL file I then connect a recieve component to this file adapter and configure appropriately.
    Essentially, my objective in setting up a trigger to start this unzip process is due to the BPEL process before that outputs or writes the .zip folder to the same directory that I want to poll and/or trigger via a start.txt file.  I can get this process to work with a webservice connecting to the BPEL process and by using a Java Embedded in BPEL file, which in turns calls the package/ class that has the java code needed to unzip.
    For some reason whenever I try to use a file adapter instead of the native web service that gets created (as mentioned above) it doesn't work.  It seems to build or compile just fine however, I am getting errors when I try to deploy.
    Note:  The Java code contains all the paths where the zip file is to be taken from and extracted to.  So because this is in the code I don't need the file adapter to handle this.  I just want to use the file adapter so that I can trigger the process via start.txt or something of that nature.
    Thanks to anyone that has any suggestions.
    Kind Regards,
    Kevin
    Errors when attempting to deploy are as follows:
    [04:12:54 PM] Error deploying archive sca_Job2_UnZip_rev1.0.jar to partition "default" on server soa_server1 [http://WN017A.homedepot.com:8001]
    [04:12:54 PM] HTTP error code returned [500]
    [04:12:54 PM] Error message from server:
    There was an error deploying the composite on soa_server1: Deployment Failed: Error occurred during deployment of component: BPELProcess1 to service engine: implementation.bpel, for composite: Job2_UnZip: ORABPEL-05250
    Error deploying BPEL suitcase.
    error while attempting to deploy the BPEL component file "H:\Oracle\Middleware\user_projects\domains\Dev_Acorde\servers\soa_server1\dc\soa_d78eb301-314c-422a-a748-bcfe7d0906e8"; the exception reported is: java.lang.RuntimeException: failed to compile execlets of BPELProcess1
    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).
    [04:12:54 PM] Check server log for more details.
    [04:12:54 PM] Error deploying archive sca_Job2_UnZip_rev1.0.jar to partition "default" on server soa_server1 [http://WN017A.homedepot.com:8001]
    [04:12:54 PM] ####  Deployment incomplete.  ####
    [04:12:54 PM] Error deploying archive file:/C:/JDeveloper/mywork/Job2_UnZip/Job2_UnZip/deploy/sca_Job2_UnZip_rev1.0.jar
    (oracle.tip.tools.ide.fabric.deploy.common.SOARemoteDeployer)

    Just wanted to provide a screenshot of the BPEL file as supporting documentation to better illustrate my issue.
    Thanks so much,
    Kevin

  • Throwing Exception in java embedding to BPEL

    Hi,
    My requirement is that all exceptions needs to be thrown to BPEL so that the BPEL exception handler can handle it.I am using some classes through BPEL's java embedding. So any exception in them, i wud like to be propagated to BPEL. The Exception is thrown to the java embedding activity but i am not able to throw it to BPEL after that. I have to catch and handle it there itself, else the BPEL gives a compilation error.
    Can anybody please gimme a sol for this problem
    Thanks
    Ashish

    Hi,
    My requirement is that all exceptions needs to be thrown to BPEL so that the BPEL exception handler can handle it.I am using some classes through BPEL's java embedding. So any exception in them, i wud like to be propagated to BPEL. The Exception is thrown to the java embedding activity but i am not able to throw it to BPEL after that. I have to catch and handle it there itself, else the BPEL gives a compilation error.
    Can anybody please gimme a sol for this problem
    Thanks
    Ashish

  • Java embedding error

    Hello all
    I'm using bpel 10.1.3.1.0, and I'm experiencing the following problem: I'm am not able to use the JAVA EMBEDDING in a process which polls for records using the db adapter.
    Steps to reproduce the problem:
    - I create a very simple bpel process which poll for records in a table.
    - I deploy it, write manually a record in the polled table and the process start.
    - I can see the record picked up through the visual flow in the console
    - everything looks ok and the process ends correctly
    - now I add a java embedding activities just after the receive
    - getting the data through getVariableData() and replacing the special characters and then again setting into the same variable.
    - redeploy, write a record in the polled table and the process start.
    - but the process ends in error with the following message "XMLDOMException has been thrown. invalid namespace for prefix xmlns". This is the only output from the instance. Even polling and other tasks are not executing with JAVA EMBEDDING activity.
    Below is the snippet...
    *<bpelx:exec name="Java_Embedding_encode_special_chars" language="java"*
    version="1.4">
    *<![CDATA[java.lang.String temp = (String) getVariableData("niku_xog_project_write_xml_as_string");*         
    *System.out.println("===================================String before manipulation: " + temp);*         
    *temp = temp.replaceAll("&", "&amp;amp;").replaceAll("\"", "&quot;quot;");*          
    *System.out.println("==================================String after manipulation: " + temp);*         
    *setVariableData("niku_xog_project_write_xml_as_string", temp);]]>*
    *</bpelx:exec>*
    I am not using any import statement because the same snippet is working in another project having no polling. According to other thread it is bug 5664594. But I am not able to download this patch from metalink because of not having the credentials. If it can fix the problem then can anybody give me another link for downloading this patch other than metalink?

    Brian,
    Thanks for the reply. For your questions:
    1. A firewall between your process and the rest of the cluster.
    I run Weblogic and Coherence server on the same development laptop, so no firewall here.
    2. Mis/different configuration between your process and the cluster.
    I did not use any customized configuration files, all configs are straight from coherence.jar.
    3. A classloader issue leading to the wrong cache configuration being picked up.
    Since I use the same jar in Coherence server and weblogic server, and confgurations are from the jar, so they are the same.
    4. Using different and incompatible versions of Coherence between your process and the cluster.
    See answer to 3.
    I do not see the process from BPEL join the coherence server from the server console.
    I am wondering if Weblogic server block coherence multicast messages, if that's the case, what other choices I can have to communicate to coherence server? is Coherence-extend the right direction to explore?
    Thanks
    George

  • Add & use custom jars in "Java embedding" component

    I need to generate pdf file in process.
    So I included "Java embedding" component, and write my code. For clarity example:
    com.itextpdf.text.Document document = new com.itextpdf.text.Document( 
                        com.itextpdf.text.PageSize.A4, 50, 50, 50, 50); 
              try { 
                   com.itextpdf.text.pdf.PdfWriter pdf = com.itextpdf.text.pdf.PdfWriter 
                             .getInstance(document, new java.io.FileOutputStream("c:\\text.pdf")); 
                   document.open(); 
                   document.add(new com.itextpdf.text.Paragraph("This is test message")); 
                   catch (com.itextpdf.text.DocumentException de) { System.err.println(de.getMessage());  }
                   catch (Exception de) { System.err.println(de.getMessage());}
              document.close();Im using external jar file, of course I add it to classpath (right click soa project -> properties -> libraries and classpath ->add jar).
    But I get folowing error (no during compilation, but during deploying):
    Failed to compile bpel generated classes.
    failure to compile the generated BPEL classes for BPEL process "SimpleProcess" of composite "default/SOAProject!1.0*soa_9f8e80a4-346d-424e-9e12-1b69e2024e58"
    The class path setting is incorrect.
    Ensure that the class path is set correctly. If this happens on the server side, verify that the custom classes or jars which this BPEL process is depending on are deployed correctly. Also verify that the run time is using the same release/version.
    [04:35:23 PM] Check server log for more details.
    [04:35:23 PM] Error deploying archive sca_SOAProject_rev1.0.jar to soa_server1 [[fe80:0:0:0:5968:cb45:2001:f6ce]:8001] 
    [04:35:23 PM] ####  Deployment incomplete.  ####
    [04:35:23 PM] Error deploying archive file:/C:/Projects/SOAProject/deploy/sca_SOAProject_rev1.0.jar
    (oracle.tip.tools.ide.fabric.deploy.common.SOARemoteDeployer)where ist the problem???
    Edited by: user1175491 on Nov 2, 2010 4:39 PM

    Ajaykumar, can u please write me what exactly append to bpel:exec part (which classes include?)? it looks now:
    <bpelx:exec name="GeneratePDF" version="1.5" language="java">
    <![CDATA[
                  com.itextpdf.text.Document document = new com.itextpdf.text.Document(  
                        com.itextpdf.text.PageSize.A4, 50, 50, 50, 50);  
              try {  
                   com.itextpdf.text.pdf.PdfWriter pdf = com.itextpdf.text.pdf.PdfWriter  
                             .getInstance(document, new java.io.FileOutputStream("c:\\text.pdf"));  
                   document.open();  
                   document.add(new com.itextpdf.text.Paragraph("This is test message"));  
                   catch (com.itextpdf.text.DocumentException de) {System.err.println(de.getMessage());}
                   catch (java.lang.Exception de) {System.err.println(de.getMessage());}  
              document.close();]]>
    </bpelx:exec>Edited by: user1175491 on Nov 2, 2010 5:07 PM
    Edited by: user1175491 on Nov 2, 2010 5:08 PM

  • How to include Java embedding in BPEL to connect with Siebel On Demand

    Hi,
    I am trying to integrate Siebel on Demand with BPEL using the instructions given in the Best practices page http://www.oracle.com/technology/tech/fmw4apps/siebel/ofm-siebel-blog-postings.html.
    The code used in the Java embedding does not send a response back. I have increased the timeout period but still i get a time out error.
    Please let me know if anyone is aware of a work aorund for this
    Thanks.

    jamiguel77 wrote:
          1) i have a file .java with some great functions,
    If that is one Java file only I really doubt that those functions are "great" from a technical point of view...
    this functions i need use in all projects, then what is the easy by moment i start a project, and copy this file to project..
      is possible have only 1 file with these utilities functions? (if yes how to declare or use in all projects?)
    Note these utilkities file i want use on JAVA desktop(swinf and javafx), on JSP webpages and in the futhurer on the mobile.
    There is a  common approach to this problem which is a dependency repository. Various build tools address the dependency resolution problem. Most common are maven and greadle. Place your Jar file on a location you can reach from your various developement environments (eg. a share on a server in your network) Then configure your build tool to know about your repository.
    A better solution that a naked net share is a nexus server, which will not only hanlde dependencies you namually placed on your share but also dependencies available on public repositories.
    In your project you simply declare the (direct) dependencies of the Code you're writing. For maven you need an aditional file in your project: the pom.xml. maven (or greadle) will handle all the transient dependencies for you (as long as the pom.xml of the dependency also declares its own dependencies and those other dependencies are reachable for maven too).
    bye
    TPD

  • Calling java classes using bpelx:exec (Java Embedding) Erorr

    I try to add java embedding activity.
    So, I add code in this activity:
    <bpelx:exec name="Java_Embedding_1" language="Java" version="1.4"><![CDATA[Element ele=(Element)getVariableData("/StringForSubject");
    ]]>
    </bpelx:exec>
    where ("/StringForSubject") is local variable of scope activity, where situated java embedding activity.
    Try to compile, but JDeveloper show error message:
    Error: Java compilation failed. Failed to compile file(s) "test.bpel". Exception reported is: test.bpel:1156: Class bpel.p0.Element not found. Element ele=(Element)getVariableData("/StringForSubject"); ^ test.bpel:1156: Class bpel.p0.Element not found. Element ele=(Element)getVariableData("/StringForSubject"); ^ 2 errors Please verify that file test.bpel is valid java file or if all required libraries are included in your classpath.
    How can i solve this problem.
    Thank You!!!!

    add an import at the top of the process .. or specify the package ..
    org.w3c.dom.Element
    hth clemens

  • Java Embedding setVariableData not working - Urgent

    Hi Guys,
    I tried a simple HelloWord/Echo Kinda example, accessing input variable using getVariableData and assigning it to output variable using setVariable data in Java Embedding. It's throwing an error.
    JavaEnbedCode :
    String xmlData = ((oracle.xml.parser.v2.XMLElement) getVariableData("inputVariable","payload","/client:HelloJavaEmbedBPELProcessRequest/client:input")).getFirstChild().getNodeValue();
    setVariableData("outputVariable","payload","/client:HelloJavaEmbedBPELProcessResponse/client:result",xmlData);
    Imports:
    <bpelx:exec import="java.util.*"/>
    <bpelx:exec import="java.lang.*"/>
    <bpelx:exec import="java.rmi.RemoteException"/>
    <bpelx:exec import="javax.naming.NamingException"/>
    <bpelx:exec import="org.w3c.dom.Element"/>
    <bpelx:exec import="java.math.*"/>
    <bpelx:exec import="java.io.*"/>
    <bpelx:exec import="java.net.*"/>
    Error:
    <selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"><part name="summary"><summary>faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure}
    messageType: {}
    parts: {{summary=&lt;summary>XPath query string returns zero node.
    According to BPEL4WS spec 1.1 section 14.3, The assign activity &amp;amp;lt;to&amp;amp;gt; part query should not return zero node.
    Please check the BPEL source at line number "" and verify the &amp;amp;lt;to&amp;amp;gt; part xpath query.
    &lt;/summary>
    </summary>
    </part></selectionFailure>
    I am using Jdev 10.1.3.3 and SOA Suite 10.1.3.3
    Thanks in adavance.

    I gave up trying to reference elements, especially those that are accessed through the input and output messages and leave that up to BPEL Assigns. So my inline Java looks like this and it works in 10.1.3.3.
    Hopefully the forum leaves enough of the formatting intact for you to get the idea.
    /*Write your java code below e.g.
         System.out.println("Hello, World");
    try{                                                              
    String in = (String)getVariableData("Input_Value");
    addAuditTrailEntry("You Entered: " + in);
    int InvalidCharsFound = 0;
    String ValidChars="0123456789.";
    String FilteredChars="$ ,";
    String TempChar="";
    String Tempstring="";
    int innum;
    double inval;
    innum=in.length();//get string length
    for (int i=0;i<innum;i++){         
    TempChar = in.substring(i,i+1);
    if (ValidChars.contains(TempChar)){         
    Tempstring+=TempChar;
    else {         
    if (FilteredChars.contains(TempChar)){   
    //filtered char was found
    addAuditTrailEntry("A filtered character was found such as: " + FilteredChars);
    else{   
    //invalid chars
    InvalidCharsFound = 1;
    addAuditTrailEntry("An invalid character was found");
    if (InvalidCharsFound == 0){  
    //clean number input was detected so proceed.
    inval = Double.valueOf(Tempstring).doubleValue();
    inval *= 100;//multiply by 100
    addAuditTrailEntry("Times 100 is: " + inval);
    double out = Math.rint(inval);
    addAuditTrailEntry("Rounded is: " + out);
    out /= 100;
    addAuditTrailEntry("Divided by 100 is: " + out);
    DecimalFormat myFormatter = new DecimalFormat("###.00");
    String output = myFormatter.format(out);
    addAuditTrailEntry("Formated is: " + output);
    setVariableData("Output_Value",output);
    else
    // The number input was not a good clean number
    setVariableData("Output_Value","ERROR the input was not a number");
    catch(Exception e){                                                                    
    addAuditTrailEntry(e);
    If you actually find this Java example that I made usefull keep in mind the Math.rint
    function incorrectly rounds 100.5 to 100 instead of 101. Or in other words with this program if you try to round 100.245 it will produce 100.24. This is not a problem for what I'm using it for as I'm simply trying to correct small inaccuracies found when adding 2 currency numbers using BPEL see Bug No. 6451541
    As far as the Math.rint "bug" I have found this same issue duscussed on the sun java forums and as far as I can tell someone who is mathematically brilliant (compared to me) decided that this was the correct way to round. I'm glad I'm not in school any more.
    Oh the complete BPEL source looks like this (I probably should have included this instead)
    <?xml version = "1.0" encoding = "UTF-8" ?>
    <!--
    Oracle JDeveloper BPEL Designer
    Created: Tue Sep 04 10:45:03 PDT 2007
    Author: RTaylor
    Purpose: Synchronous BPEL Process
    -->
    <process name="BPEL_Round_Currency"
    targetNamespace="http://xmlns.oracle.com/BPEL_Round_Currency"
    xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    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:ldap="http://schemas.oracle.com/xpath/extension/ldap"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    xmlns:client="http://xmlns.oracle.com/BPEL_Round_Currency"
    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:BPEL_Round_Currency"
    myRole="BPEL_Round_CurrencyProvider"/>
    </partnerLinks>
    <!--
    VARIABLES
    List of messages and XML documents used within this BPEL process
    -->
    <variables>
    <!-- Reference to the message passed as input during initiation -->
    <!-- Reference to the message that will be returned to the requester-->
    <variable name="inputVariable"
    messageType="client:BPEL_Round_CurrencyRequestMessage"/>
    <variable name="outputVariable"
    messageType="client:BPEL_Round_CurrencyResponseMessage"/>
    <variable name="Input_Value" type="xsd:string"/>
    <variable name="Output_Value" type="xsd:string"/>
    </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 BPEL_Round_Currency.wsdl) -->
    <receive name="receiveInput" partnerLink="client"
    portType="client:BPEL_Round_Currency" operation="process"
    variable="inputVariable" createInstance="yes"/>
    <!-- Generate reply to synchronous request -->
    <assign name="Copy_Input">
    <copy>
    <from variable="inputVariable" part="payload"
    query="/client:BPEL_Round_CurrencyProcessRequest/client:input"/>
    <to variable="Input_Value"/>
    </copy>
    <copy>
    <from variable="inputVariable" part="payload"
    query="/client:BPEL_Round_CurrencyProcessRequest/client:input"/>
    <to variable="Output_Value"/>
    </copy>
    </assign>
    <bpelx:exec import="java.text.DecimalFormat"/>
    <bpelx:exec name="Round_Output" language="java" version="1.3">
    <![CDATA[/*Write your java code below e.g.                                       
         System.out.println("Hello, World");                                      
    try{                                                              
       String in = (String)getVariableData("Input_Value");                                                                   
       addAuditTrailEntry("You Entered: " + in);  
       int InvalidCharsFound = 0;  
       String ValidChars="0123456789.";   
       String FilteredChars="$ ,";   
       String TempChar="";         
       String Tempstring="";         
       int innum;         
       double inval;         
       innum=in.length();//get string length         
       for (int i=0;i<innum;i++){         
              TempChar = in.substring(i,i+1);         
              if (ValidChars.contains(TempChar)){         
                  Tempstring+=TempChar;         
    else {         
    if (FilteredChars.contains(TempChar)){   
    //filtered char was found
    addAuditTrailEntry("A filtered character was found such as: " + FilteredChars);
    else{   
    //invalid chars
    InvalidCharsFound = 1;
    addAuditTrailEntry("An invalid character was found");
    if (InvalidCharsFound == 0){  
    //clean number input was detected so proceed.
    inval = Double.valueOf(Tempstring).doubleValue();
    inval *= 100;//multiply by 100
    addAuditTrailEntry("Times 100 is: " + inval);
    double out = Math.rint(inval);
    addAuditTrailEntry("Rounded is: " + out);
    out /= 100;
    addAuditTrailEntry("Divided by 100 is: " + out);
    DecimalFormat myFormatter = new DecimalFormat("###.00");
    String output = myFormatter.format(out);
    addAuditTrailEntry("Formated is: " + output);
    setVariableData("Output_Value",output);
    else
    // The number input was not a good clean number
    setVariableData("Output_Value","ERROR the input was not a number");
    catch(Exception e){                                                                    
    addAuditTrailEntry(e);
    }]]>
    </bpelx:exec>
    <assign name="Copy_Output">
    <copy>
    <from variable="Output_Value"/>
    <to variable="outputVariable" part="payload"
    query="/client:BPEL_Round_CurrencyProcessResponse/client:result"/>
    </copy>
    </assign>
    <reply name="replyOutput" partnerLink="client"
    portType="client:BPEL_Round_Currency" operation="process"
    variable="outputVariable"/>
    </sequence>
    </process>

  • BPEL: invalid namespace error with DB adapter polling and java embedding

    Hello
    I'm using bpel 10.1.3.1.0, and I'm experiencing the following problem: I'm am not able to use the SetTitle() function in a process which polls for records using the db adapter.
    Steps to reproduce the problem:
    - I create a very simple bpel process which poll for records in a table.
    - I deploy it, write manually a record in the polled table and the process start.
    - I can see the record picked up through the visual flow in the console
    - everything looks ok and the process ends correctly
    - now I add a java embedding activities just after the receive
    - I set the instance title like this: setTitle("Go");
    - redeploy, write a record in the polled table and the process start.
    - but the process ends in error with the following message "XMLDOMException has been thrown. invalid namespace for prefix xmlns"
    And there is no way to make it work. Consider:
    If I put the same java embedding activity in another process, for example a simple asynchronous process which just copy the input to the output, and I run from the console, the instance title is set as I want ("Go")
    If I remove the three lines from the polling process
    <bpelx:exec name="Java_Embedding_1" language="java" version="1.3">
    <![CDATA[setTitle("Go");]]>
    </bpelx:exec>
    then the process is executed correctly again. I add them again and then namespace error.
    Whatever statement I put in the java embedding activity (for example a string concatenation or even just a comment I have the same result: invalid namespace for prefix xmlns.
    Does anybody has a suggestion to evercome the problem? I need to set the title because its a mess to find out which instance processed a specific record.
    Thanks by
    Paolo

    I made a lot of further tests, and I can say the problem is related only to the database adapter polling mechanism.
    If I create an asynchronous process, with any kind of database activity (for example select) I can set the title normally.
    If I create a process which start with database table polling, then I cannot use the java embedding.
    try this:
    - create BPEL empty project
    - drop a database adapter service and follow the wizard:
    - select a connection (I tried both oracle or sqlserver connection)
    - select "poll for new or changed record"
    - select any table empty or with few record inside (1 or 2)
    - press next 4 times
    - chose delete record after read (press next)
    - chose order by "no ordering" in polling options (press next 2 times)
    - now drop a receive activity on the process, and connect with the polling partner link
    - drop a java embedding and write any valid java statement
    - deploy; if the table is empty, write a recod in the table
    - the process is instantiated, but the it fails in the --> receive <-- activity with "invalid namespace" error

  • Restricting actions in "Java Embedding" BPEL component

    While playing around with BPEL processes in Oracle SOA Suite 11g, I found that a System.exit(1) in the Java Embedding component actually shuts down the weblogic server. Are there means to restrict similar code from executing (such as by assigning specific security policies)?
    I'd assume that if the implementation of Java Embedding forks a new JVM to execute the embedded code, this problem wouldn't have occurred. Is there some way in SOA suite to specify this behavior?
    Appreciate your response,
    ~Raman

    What is the variable type of configData? if this is simple type string then you can assign the value directly else if the variable of type xsd element or message type the syntax looks as below
    setVariableData("variablename","partname","xpath",data);
    e.g
    setVariableData("outputVariable","payload","/client:HelloJavaEmbedBPELProcessResponse/client:result",xmlData);
    Mark the posting appropriately as "helpful" or "correct answer", if your issue is solved.
    Regards
    Albin I
    [http://www.albinsblog.com/]

  • PB With Java Embedded Server! Pls Help

    I'm trying to install the Java Embedded Server Framework and I did it like this! I extracted setup.class into g:\jes2.0. My jdk is installed in "G:\winnt\jdk\bin".
    I add "g:\jes2.0" to my environment variable based on the help file
    "Make sure your CLASSPATH environment variable contains . (the current directory) at the beginning of the list."
    Is this correct?
    Then when I type this in the Command Prompt, this happens :
    G:\>cd jes2.0
    G:\jes2.0>java setup
    Exception in thread "main" java.lang.NullPointerException
    at java.io.RandomAccessFile.open(Native Method)
    at java.io.RandomAccessFile.<init>(RandomAccessFile.java:98)
    at setup.loadOffsetTable(ArchiveClassLoader.java:344)
    at setup.instantiateArchiveReader(ArchiveClassLoader.java:155)
    at setup.<init>(ArchiveClassLoader.java:136)
    at setup.main(ArchiveClassLoader.java:1079)

    [omnigunk],
    May we suggest that you post your question under the topic 'Embedded Server' of "Consumer and Commerce" section. This section is dedicated to discussions on Java Embedded Server and thus you might get the correct audience to assist you with your problem.
    HTH.
    Allen Lai
    Developer Technical Support
    SUN Microsystems
    http://www.sun.com/developer/support/

  • JAVA embeds an IE Activex Object

    hi,
    My Java Class --> JNative.java embeds IE Active Object. (It starts Internet Explorer successfully)
    Now IE loads an HTML Page called MyPage.html
    MyPage.html has an applet called MyApplet.java embedded into it.
    MyApplet.class is in the same directory as MyPage.html.
    But, MyPage.html cannot find MyApplet.class.
    What directory do I place MyApplet.class ?
    If I start Internet Explorer externally & load MyPage.html there is no problem.
    Best Wishes,
    Gaurav.

    How is the Design strange, Pls explain ?
    ActiveX Bridge Technology:
    The ActiveX Bridge allow a component based on JavaBeans(TM) component architecture ("bean") to be effectively packaged as an ActiveX control, thereby allowing it to be used as a functional component in an ActiveX container.
    As I intrepret..........
    Activex Container --> Canvas embedding IE Object
    Component -> Html page containing Applet
    Am I correct ????
    As IE loads an HTML Page with Applet in it..
    I want my Application to load the same HTML Page ...
    What all do I need to do ?
    Thanks for everything.

Maybe you are looking for