BPEL process Import
Hi Experts,
Is it possible to convert/import the ORACLE/BIZTALK/BEA BPEL process into XI without any modification?
The below link document assures that, its possible from ARIS. Could you please tell me for the other platform?
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3c58e011-0b01-0010-1e88-b42e01bb961a
Regards
Sara
Have a look at SAP Note 709650 and this
http://help.sap.com/saphelp_nw04/helpdata/en/9f/7a7440036f6d1de10000000a1550b0/frameset.htm
Regards,
Prateek
Similar Messages
-
BPEL process blue print not importable by JDeveloper
Hi
I have a troublesome BPEL process that is not being imported into JDeveloper. Others work fine and the closed loop process change management works great.
However, this particular one is annoying.
On selecting the process, JDeveloper downloads the required information. I click 'Next' and/or 'Finish' and it starts 'Creating Project'. That's all it does. Eventually it finishes and nothing has been added to the project.
Has anyone seen this before, or know where a log may be of the process to debug it?
Any help most appreciated.
I am using 10.1.3.4 BPA Suite and 10.1.3.3 JDev
Cheers
ChrisAha
I get the following exception occuring.
## download =C:\DOCUME~1\cbell\LOCALS~1\Temp\bpaserver_download20348.zip
## download =C:\DOCUME~1\cbell\LOCALS~1\Temp\bpaserver_download20349.zip
java.io.IOException
at oracle.ide.net.URLFileSystem.copy(URLFileSystem.java:297)
at oracle.tip.tools.ide.common.bpeldesigner.util.Helper.copyFiles(Helper.java:130)
at oracle.tip.tools.ide.pm.projectwizard.JDevProjectBuilder.createExistingBluePrintProject(JDevProjectBuilder.java:144)
at oracle.tip.tools.ide.pm.projectwizard.JDevProjectBuilder.createIDEProject(JDevProjectBuilder.java:71)
at oracle.tip.tools.ide.pm.projectwizard.BPELProjectWizard.handleFinish(BPELProjectWizard.java:57)
at oracle.tip.tools.ide.common.graph.wizard.JWizard$1.run(JWizard.java:400)
at java.lang.Thread.run(Thread.java:595)
Think I may raise an SR.
Cheers
Chris -
How to convert\import eEPC model to BPEL Process and used it in JDeveloper?
Hello All,
Can any buddy please help me,
I need to import EPC model from Oracle BPA architecture 11g, to BPEL Process in JDeveloper 11g,
i am using Oracle BPA Suite 11g with Oracle 11g Backend database, and i have installed JDeveloper 11g
Thanks
MilindCreate a new SOA application, then create a project inside it, type should be SOA.
Give Composite a name and select "Composite from BPA template" as Composite template.
In the next window, you will see your BPA Server( otherwise create a new BPA connection) ,explore to your EPC model and double click to import it.
thanks -
Error Occured while Invoking a BPEL Process from JAVA
Hi.....
When initiating a BPEL process from JAVA the code is working fine and the Process is getting initiated.But while using that code in J2EE project as a java code and while calling that method Error is occuring.....
Here by i am attaching my JAVA Code which runs as an applicateion and package which runs in Server....
JSP and Java Method Used:
JSP Code:
===============
<%@ page import=" bo.callbpel" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>FEATT - I30</title>
</head>
<body>
<%
String input=request.getParameter("dnvalue");
callbpel p=new callbpel();
String Output=p.Initiate(input);
out.print("The Input Given to the BPEL Process is : "+input);
%>
<BR><BR><BR><BR><BR><BR>
<%
out.print("The Reply from BPEL Process is : "+Output);
%>
</body>
</html>
Java Code:
package bo;
import com.oracle.bpel.client.Locator;
import com.oracle.bpel.client.NormalizedMessage;
import com.oracle.bpel.client.delivery.IDeliveryService;
import java.util.Map;
import java.util.Properties;
import oracle.xml.parser.v2.XMLElement;
/*import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; */
//import java.util.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class callbpel {
public String Initiate(String value){
String replyText=null;
String input = value;
System.out.println(input);
String xmlInput= "<ns1:AccessDBBPELProcessRequest xmlns:ns1=\"http://xmlns.oracle.com/AccessDBBPEL\"><ns1:input>"+input+"</ns1:input></ns1:AccessDBBPELProcessRequest>";
String xml="<ns1:BPELProcess1ProcessRequest xmlns:ns1=\"http://xmlns.oracle.com/BPELProcess1\">";
xml=xml+"<ns1:input>"+input+"</ns1:input>";
xml=xml+"</ns1:BPELProcess1ProcessRequest>";
try{
Properties props=new Properties();
props.setProperty("orabpel.platform","ias_10g");
props.setProperty("java.naming.factory.initial","com.evermind.server.rmi.RMIInitialContextFactory");
props.setProperty("java.naming.provider.url","opmn:ormi://157.227.132.226:6003:home/orabpel");
props.setProperty("java.naming.security.principal","oc4jadmin");
props.setProperty("java.naming.security.credentials","oc4jadmin");
props.setProperty("dedicated.rmicontext", "true");
Locator locator = new Locator("default", "bpel", props);
String uniqueBpelId = com.collaxa.cube.util.GUIDGenerator.generateGUID();
//System.out.println(uniqueBpelId);
//java.util.Map msgProps = new HashMap();
System.out.println("After creating the locator object......");
IDeliveryService deliveryService =(IDeliveryService)locator.lookupService(IDeliveryService.SERVICE_NAME);
System.out.println("Before creating the NormalizedMessage object......");
NormalizedMessage nm = new NormalizedMessage();
System.out.println("After creating the NormalizedMessage object.*.*.*...");
//msgProps.put("conversationId",uniqueBpelId);
//nm.setProperty("conversationId",uniqueBpelId);
nm.addPart("payload", xml);
System.out.println("Before creating response object......");
NormalizedMessage res = deliveryService.request("BPELProcess1", "process", nm);
System.out.println("After calling the BPELProcess1 .*.*.*...");
Map payload = res.getPayload();
System.out.println("BPEL called");
XMLElement xmlEl=(oracle.xml.parser.v2.XMLElement)payload.get("payload");
replyText=xmlEl.getText();
System.out.println("Reply from BPEL Process>>>>>>>>>>>>> "+replyText);
catch (Exception e) {
System.out.println("Exception : "+e);
e.printStackTrace();
return replyText;
While Creating and Object for the Class callbpel and Whilw Calling that Method
callbpel p=new callbpel();
String Output=p.Initiate(input);
Its throwing an Error:
Error Occured is:
After creating the locator object......
Before creating the NormalizedMessage object......
After creating the NormalizedMessage object.*.*.*...
Before creating response object......
Apr 24, 2008 9:12:00 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.NoClassDefFoundError: javax/ejb/EJBException
at com.oracle.bpel.client.util.ExceptionUtils.handleServerException(ExceptionUtils.java:76)
at com.oracle.bpel.client.delivery.DeliveryService.getDeliveryBean(DeliveryService.java:254)
at com.oracle.bpel.client.delivery.DeliveryService.request(DeliveryService.java:83)
at com.oracle.bpel.client.delivery.DeliveryService.request(DeliveryService.java:53)
at bo.callbpel.Initiate(callbpel.java:55)
at org.apache.jsp.output_jsp._jspService(output_jsp.java:55)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
For Running JSP i am Using Eclipse 3.2.0 and apache-tomcat-5.5.25
Please Provide me a Solution......
Thanks in Advance.....
Regards,
Suresh KHave got the same problem. Scenario at my end is little different though.
I am trying to invoke a BPEL process from an ESB Service.
I am trying to look into it..
However, would be grateful, if someone can give some insight into this since many are running into this issue without being able to fix.
Ashish. -
Not able to get the data from synchronous Webservice To BPEL process
Hi All,
My requirement is : Third party has some webservice.They are pushing data to that Webservice(Wsdl).
Third part WSDL example : http://ipaddress:port/name/Service.svc?wsdl ( This is just example format of their WSDL)
After that I need to get that data into my BPEL process and update my system.
When I built My Snchronous BPEL process I imported third party WSDL(http://ipaddress:port/name/Service.svc?wsdl) through 'import WSDL' in dialog.After that I automatically got the (request and response schema elements) parameters from that WSDL.I gave input and output of the BPEL process from those elements.
I pasted that third party URL iin SOAPUI and I got their operations and schemas.Based on that I had choosen the elements for 'input' and 'output' of the BPEL processes.I am also getting the schema structures in 'Assign' or 'Transform' activity.
I built the whole process.
I have the Process.
Now Client is pushing data to their WSDL(http://ipaddress:port/name/Service.svc?wsdl) as it is their data pushing interface.But that data is not coming to my BPEL process and instance is not being created in EM console.
As I have imported their WSDL into my BPEL process,I need to get the data.But I am not getting the data.
Is there any problem in MY BPEL process?
(or)
DO I need to use 'Webservice' Adapter in 'Exposed Services' Swimlane in Composite Editor to have the third party URL, so that they Can push the data to that WSDL in turn that data comes into my BPEL process?
Can anybody help me this case?
once again my requirement is :
Client pushes the data through their WSDL url -----> I need to get that data into MY BPEL process --> I have my own WSDl to take that details into my system.I will explain the requirement in small paragraph:
There are two applications.One is our application(X) and another one is third party application(Y).
I need to update in my application(X) based on data coming from application(Y).
I am using SOA as a middle tier to have communication between Y and X.
(Ex: if they send some info like event type 'event1' from Y ,I need to update that 'event1' data in my X application)
The work at third party application is :
According their info,They will push data from their end to their WSDL( http://ipaddress:port/name/Service.svc?wsdl ).
They are telling they can only send the data to their WSDL( http://ipaddress:port/name/Service.svc?wsdl ).
They will not consume our BPEL process(I think they might be wrong at this point of time).They have one WSDL to send or push the data from their end.
The work at from our side(SOA & X application)
From that point ,our BPEL process has to receive that data and update that data into my application(X).
I hope You understand my requirement.
Can you guide me through how to achieve this task as they are telling they have to use their WSDL to push the data?
(or)
Do I need to take 'Webservice' adapter into Exposed Services Swimlane in Jdeveloper to have their webservice(third party WSDL),If it is So Can you tell me the details how to take 'input' and 'output' for BPEL process?
(or)
Can YOu suggest me to talk to them to consume my BPEL process directly?
Thanks
Edited by: 899283 on Aug 17, 2012 4:55 AM -
How to use multiple WSDL operations in One BPEL process Recieve Activity ?
Is there anyway to attach multiple WSDL operations with a Single BPEL process ? How ?
Thanks Melvin for your quick respond.
When I create a BPEL process, It asks me to give the XSD as an Input. When I import the XSD it asks me to select an operation not more than one. Let suppose I select addRequest and finish the wizard.
Now what I can see, It create Recieve activity with an Input msg of Add operation. Well what I understand from your statement is that, I remove the recieve activity and put the Pick activity.
Now my question is How to mention the other operations like update and delete ? And how to test them ?? The link provided by you is just tell me what Pick activity can do for me, But its not telling me how to use it ?? and how the give the operation to it. Where should I need to change in the BPEL ??? -
How to make sure one instance of BPEL process runs at a time.
Hello,
we have a BPEL web service and would like to run the BPEL processes serially. below is our senario
Process "A" kicks of ( 100's of them via file polling)
at some activity (not at the beginning) the BPEL process should check if there are any other BPEL instances of same Process "A" are running? If so then it should wait until the process completes.
is there an API to check what other instances are running and if so if they completed or not?Have a look at metalink note 779136.1, you have to be on
10.1.3.3.1 MLR#14 or above
10.1.3.4 MLR1
There is a note saying model on a synchronous pattern. There is no instructions on how to do this you need to create a new message definition to the wsdl
<message name ="Dummy">
<part xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Dummy_element" type="xsd:string"/>
</message>
in the port type add an output definition
<portType name="Read_ptt">
<operation name="Read">
<input message="tns:payload_msg"/>
<output message="dummy_output"/>
</operation>
</portType>
here is an example
<definitions
name="GetFile"
targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/file/GetFile/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/file/GetFile/"
xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
xmlns:pns1="http://xmlns.oracle.com/ComplexFile/correlationset"
xmlns:pc="http://xmlns.oracle.com/pcbpel/"
xmlns:imp1="http://TargetNamespace.com/GetFile"
xmlns:hdr="http://xmlns.oracle.com/pcbpel/adapter/file/"
>
<import namespace="http://xmlns.oracle.com/ComplexFile/correlationset" location="ComplexFile_Properties.wsdl"/>
<import namespace="http://xmlns.oracle.com/pcbpel/adapter/file/" location="fileAdapterInboundHeader.wsdl"/>
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://TargetNamespace.com/GetFile" schemaLocation="sample_1.xsd"/>
</schema>
</types>
<message name="payload_msg">
<part name="payload" element="imp1:payload"/>
</message>
<message name="dummy_msg">
<part name="dummy_string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" type="xsd:string"/>
</message>
<portType name="Read_ptt">
<operation name="Read">
<input message="tns:payload_msg"/>
<output message="tns:dummy_msg"/>
</operation>
</portType>
<binding name="Read_binding" type="tns:Read_ptt">
<pc:inbound_binding/>
<operation name="Read">
<jca:operation PhysicalDirectory="c:\temp\inbound\ComplexFile" ActivationSpec="oracle.tip.adapter.file.inbound.FileActivationSpec"
DeleteFile="true" IncludeFiles=".*\..*" PollingFrequency="10" MinimumAge="0"
Sorter="oracle.tip.adapter.file.inbound.listing.TimestampSorterDescending"
OpaqueSchema="false"/>
<input>
<jca:header message="hdr:InboundHeader_msg" part="inboundHeader"/>
</input>
<output/>
</operation>
</binding>
<service name="GetFile">
<port name="Read_pt" binding="tns:Read_binding">
<jca:address location="eis/FileAdapter" UIincludeWildcard="*.*"/>
</port>
</service>
<plt:partnerLinkType name="Read_plt">
<plt:role name="Read_role">
<plt:portType name="tns:Read_ptt"/>
</plt:role>
</plt:partnerLinkType>
</definitions>
cheers
James -
Error in deploying BPEL Process with Embedded Java code
Hi all,
I am trying to do a simple sample BPEL Process which invokes a Java class.i have placed the jar file in the classpath and the Process compiles and builds in the BPELDesigner,but when deployed it shows the below error in the BPEL console.The beauty here is it show a success message in the BPEL Designer after deployment.
<2007-07-19 05:03:07,640> <INFO> <production.collaxa.cube.compiler> validating "C:\OraHome_1\integration\orabpel\domains\production\tmp\.bpel_Employee_1.0.jar\Employee.bpel" ...
<2007-07-19 05:03:09,187> <ERROR> <production.collaxa.cube.engine.deployment> <CubeProcessFactory::generateProcessClass>
Process "Employee" (revision "1.0") compilation failed.
<2007-07-19 05:03:09,187> <ERROR> <production.collaxa.cube.engine.deployment> <CubeProcessLoader::create> Failed to compile classes.
Failed to compile the generated BPEL classes for "Employee".
<2007-07-19 05:03:09,187> <ERROR> <production.collaxa.cube.engine.deployment> Process "Employee" (revision "1.0") load FAILED!!
<2007-07-19 05:03:09,203> <ERROR> <production.collaxa.cube> <BaseCubeSessionBean::logError> Error while invoking bean "domain manager": Error while loading process.
The process domain encountered the following errors while loading the process "Employee" (revision "1.0"): Failed to compile classes.
Failed to compile the generated BPEL classes for "Employee".
If you have installed a patch to the server, please check that the bpelcClasspath domain property includes the patch classes.
ORABPEL-05215
Error while loading process.
The process domain encountered the following errors while loading the process "Employee" (revision "1.0"): Failed to compile classes.
Failed to compile the generated BPEL classes for "Employee".
If you have installed a patch to the server, please check that the bpelcClasspath domain property includes the patch classes.
at com.collaxa.cube.engine.deployment.CubeProcessHolder.bind(CubeProcessHolder.java:1269)
at com.collaxa.cube.engine.deployment.CubeProcessHolder.loadAndBind(CubeProcessHolder.java:882)
at com.collaxa.cube.engine.deployment.CubeProcessHolder.loadArchive(CubeProcessHolder.java:824)
at com.collaxa.cube.engine.CubeEngine.loadProcessArchive(CubeEngine.java:939)
at com.collaxa.cube.ejb.impl.BPELDomainManagerBean.loadProcessArchive(BPELDomainManagerBean.java:390)
at IBPELDomainManagerBean_StatelessSessionBeanWrapper34.loadProcessArchive(IBPELDomainManagerBean_StatelessSessionBeanWrapper34.java:2157)
at com.collaxa.cube.engine.deployment.CubeProcessMonitorWork.run(CubeProcessMonitorWork.java:130)
at oracle.tip.adapter.fw.jca.work.WorkerJob.go(WorkerJob.java:51)
at oracle.tip.adapter.fw.common.ThreadPool.run(ThreadPool.java:267)
at java.lang.Thread.run(Thread.java:534)
<2007-07-19 05:03:09,234> <ERROR> <production.collaxa.cube.engine.deployment> <CubeProcessMonitorWork::run> Error while loading process archive C:\OraHome_1\integration\orabpel\domains\production\deploy\bpel_Employee_1.0.jar
ORABPEL-05215
Error while loading process.
The process domain encountered the following errors while loading the process "Employee" (revision "1.0"): Failed to compile classes.
Failed to compile the generated BPEL classes for "Employee".
If you have installed a patch to the server, please check that the bpelcClasspath domain property includes the patch classes.
at com.collaxa.cube.engine.deployment.CubeProcessHolder.bind(CubeProcessHolder.java:1269)
at com.collaxa.cube.engine.deployment.CubeProcessHolder.loadAndBind(CubeProcessHolder.java:882)
at com.collaxa.cube.engine.deployment.CubeProcessHolder.loadArchive(CubeProcessHolder.java:824)
at com.collaxa.cube.engine.CubeEngine.loadProcessArchive(CubeEngine.java:939)
at com.collaxa.cube.ejb.impl.BPELDomainManagerBean.loadProcessArchive(BPELDomainManagerBean.java:390)
at IBPELDomainManagerBean_StatelessSessionBeanWrapper34.loadProcessArchive(IBPELDomainManagerBean_StatelessSessionBeanWrapper34.java:2157)
at com.collaxa.cube.engine.deployment.CubeProcessMonitorWork.run(CubeProcessMonitorWork.java:130)
at oracle.tip.adapter.fw.jca.work.WorkerJob.go(WorkerJob.java:51)
at oracle.tip.adapter.fw.common.ThreadPool.run(ThreadPool.java:267)
at java.lang.Thread.run(Thread.java:534)
Your sugegstions are appreciated..
Plzz help...
Regards
SubramanianHi all..
Thanks for ur response,but still my problem is not solved...
Below is the BPEL file and the java class (which isinvoked from the process)
BPEL FILE
<!-- Employee -->
<process name="BusinessTravelProcess" targetNamespace="http://packtpub.com/bpel/travel/" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:emp="http://packtpub.com/service/employee/" xmlns:bpelx="http://schemas.oracle.com/bpel/extension">
<bpelx:exec import="org.w3c.dom.Element"/>
<bpelx:exec import="com.packtpub.EmployeeStatus"/>
<partnerLinks>
<partnerLink name="employeeTravelStatus" partnerLinkType="emp:employeeLT" myRole="employeeTravelStatusService"/>
</partnerLinks>
<variables><!-- input for this process -->
<variable name="EmployeeTravelStatusRequest" messageType="emp:EmployeeTravelStatusRequestMessage"/><!-- output from the Employee Travel Status web service -->
<variable name="EmployeeTravelStatusResponse" messageType="emp:EmployeeTravelStatusResponseMessage"/>
</variables>
<sequence><!-- Receive the initial request for business travel from client -->
<receive partnerLink="employeeTravelStatus" portType="emp:EmployeeTravelStatusPT" operation="EmployeeTravelStatus" variable="EmployeeTravelStatusRequest" createInstance="yes"/><!-- Prepare the output -->
<assign>
<copy>
<from>
<travelClass xmlns="http://packtpub.com/service/employee/">Economy
</travelClass>
</from>
<to variable="EmployeeTravelStatusResponse" part="travelClass"/>
</copy>
</assign><!-- Invoke the EmployeeStatus Java class instead of web service -->
<bpelx:exec name="Java_Embedding_1" language="Java" version="1.4"><![CDATA[
EmployeeStatus e = new EmployeeStatus();
String firstName = ((Element)getVariableData(
"EmployeeTravelStatusRequest", "employee",
"/employee/FirstName")).getNodeValue();
String lastName = ((Element)getVariableData(
"EmployeeTravelStatusRequest", "employee",
"/employee/LastName")).getNodeValue();
String empStatus = e.getTravelStatus(firstName, lastName);
addAuditTrailEntry("Employee status is: " + empStatus);
setVariableData("EmployeeTravelStatusResponse", "travelClass",
"/travelClass", empStatus);]]>
</bpelx:exec>
<reply partnerLink="employeeTravelStatus" portType="emp:EmployeeTravelStatusPT" operation="EmployeeTravelStatus" variable="EmployeeTravelStatusResponse"/>
</sequence>
</process>
Java File:
package com.packtpub;
public class EmployeeStatus {
public String getTravelStatus (String firstName, String lastName) {
return "Economy";
} -
Error creating web service proxy for bpel process in jdev 10.1.3
Hi,
I am trying to create a web service proxy in Jdeveloper 10.1.3, and get the following error:
Element type "fault" is missing required attribute "name"
I have created a fault on one of the operations, and in the .wsdl file there is a name attribute:
<operation name="process">
<fault name="TestError" message="client:TestErrorMessage"/>
</operation>
The fault definition in the .wsdl obtained from the process when you access it over http is somewhat different:
<fault>
<soap:fault name="TestError" use="literal" encodingStyle="" />
</fault>
Any ideas how to workaround this problem?
TobyHi Susan,
The WSDL generated by BPEL designer is :
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="EncryptedPasswordTest"
targetNamespace="http://xmlns.oracle.com/EncryptedPasswordTest"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:client="http://xmlns.oracle.com/EncryptedPasswordTest"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPE DEFINITION - List of services participating in this BPEL process
The default output of the BPEL designer uses strings as input and
output to the BPEL Process. But you can define or import any XML
Schema type and us them as part of the message types.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<types>
<schema attributeFormDefault="qualified"
elementFormDefault="qualified"
targetNamespace="http://xmlns.oracle.com/EncryptedPasswordTest"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="EncryptedPasswordTestProcessRequest">
<complexType>
<sequence>
<element name="username" type="string"/>
</sequence>
</complexType>
</element>
<element name="EncryptedPasswordTestProcessResponse">
<complexType>
<sequence>
<element name="password" type="string"/>
</sequence>
</complexType>
</element>
<element name="EncryptedPasswordTestProcessError">
<complexType>
<sequence>
<element name="code" type="string"/>
<element name="description" type="string"/>
</sequence>
</complexType>
</element>
</schema>
</types>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MESSAGE TYPE DEFINITION - Definition of the message types used as
part of the port type defintions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<message name="EncryptedPasswordTestRequestMessage">
<part name="payload" element="client:EncryptedPasswordTestProcessRequest"/>
</message>
<message name="EncryptedPasswordTestResponseMessage">
<part name="payload" element="client:EncryptedPasswordTestProcessResponse"/>
</message>
<message name="EncryptedPasswordTestErrorMessage">
<part name="payload" element="client:EncryptedPasswordTestProcessError"/>
</message>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PORT TYPE DEFINITION - A port type groups a set of operations into
a logical service unit.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- portType implemented by the EncryptedPasswordTest BPEL process -->
<portType name="EncryptedPasswordTest">
<operation name="process">
<input message="client:EncryptedPasswordTestRequestMessage" />
<output message="client:EncryptedPasswordTestResponseMessage"/>
<fault name="EncryptedPasswordTestError" message="client:EncryptedPasswordTestErrorMessage"/>
</operation>
</portType>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PARTNER LINK TYPE DEFINITION
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<plnk:partnerLinkType name="EncryptedPasswordTest">
<plnk:role name="EncryptedPasswordTestProvider">
<plnk:portType name="client:EncryptedPasswordTest"/>
</plnk:role>
</plnk:partnerLinkType>
</definitions>
And the WSDL produced when you access the ws endpoint is:
<?xml version="1.0" encoding="UTF-8"?>
<definitions
name="EncryptedPasswordTest"
targetNamespace="http://xmlns.oracle.com/EncryptedPasswordTest"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://xmlns.oracle.com/EncryptedPasswordTest"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:client="http://xmlns.oracle.com/EncryptedPasswordTest"
>
<types>
<schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/EncryptedPasswordTest"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="EncryptedPasswordTestProcessRequest">
<complexType>
<sequence>
<element name="username" type="string"/>
</sequence>
</complexType>
</element>
<element name="EncryptedPasswordTestProcessResponse">
<complexType>
<sequence>
<element name="password" type="string"/>
</sequence>
</complexType>
</element>
<element name="EncryptedPasswordTestProcessError">
<complexType>
<sequence>
<element name="code" type="string"/>
<element name="description" type="string"/>
</sequence>
</complexType>
</element>
</schema>
</types>
<message name="EncryptedPasswordTestErrorMessage">
<part name="payload" element="tns:EncryptedPasswordTestProcessError"/>
</message>
<message name="EncryptedPasswordTestResponseMessage">
<part name="payload" element="tns:EncryptedPasswordTestProcessResponse"/>
</message>
<message name="EncryptedPasswordTestRequestMessage">
<part name="payload" element="tns:EncryptedPasswordTestProcessRequest"/>
</message>
<portType name="EncryptedPasswordTest">
<operation name="process">
<input message="tns:EncryptedPasswordTestRequestMessage"/>
<output message="tns:EncryptedPasswordTestResponseMessage"/>
<fault name="EncryptedPasswordTestError" message="tns:EncryptedPasswordTestErrorMessage"/>
</operation>
</portType>
<binding name="EncryptedPasswordTestBinding" type="tns:EncryptedPasswordTest">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="process">
<soap:operation style="document" soapAction="process"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
<fault>
<soap:fault name="EncryptedPasswordTestError" use="literal" encodingStyle=""/>
</fault>
</operation>
</binding>
<service name="EncryptedPasswordTest">
<port name="EncryptedPasswordTestPort" binding="tns:EncryptedPasswordTestBinding">
<soap:address location="http://bpel5.lon.domroot.com:7779/orabpel/default/EncryptedPasswordTest/1.0"/>
</port>
</service>
<plnk:partnerLinkType name="EncryptedPasswordTest">
<plnk:role name="EncryptedPasswordTestProvider">
<plnk:portType name="tns:EncryptedPasswordTest"/>
</plnk:role>
</plnk:partnerLinkType>
</definitions> -
Calling a BPEL process from java
Hi all,
I have created a java code with RMI call to a BPEL process. I have published this java class as WebService.
I have deployed the WS on server. When I am calling WS its not invoking the BPEL Process.But when I am running the java code directly I am able to get the required output . What could be the problem?
I am using SOA server 10.1.3.4
I have imported following jars:
J2EE.jar, JAX-RPC Client.jar, xmlparserv2.jar, orawsdl.jar, oracle_http_client.jar, orabpel-thirdparty.jar, orabpel-common.jar, orabpel.jar, orabpel-boot.jar, oc4j-internal.jar, oc4jclient.jar, oc4j.jarHi,
Are you running the webservice on the same app-server as BPEL PM?
If so, what app-server do you use? According to the jar files you mention I assume Oracle AS 10g. Do you have your WS in the Home or the OC4J_SOA container?
Make sure that the jars you mention are available to the container you run your WS in.
Most of the libraries you mention are AS libraries. What I usually do is split my Webservices in two projects. One is a plain java project that does the job (in your case calling BPEL with the proper variables) en one J2EE project that implements the webservice part and calls the plain java project. The plain-java-project only gets the libraries it really needs. So no J2EE libs for example. In your case, probably only orabpel.jar and maybe orabpel-common and orabpel-boot.jar is needed. And if you're doing xml, then the xmlparserv2.jar. The jars you need for the plain-java-project are the only jars you need to deliver with the webservice. You can create shared libraries for it or add them to the lib folder of the AS. The libraries the J2EE project needs are appserver libraries that you don't need to deliver.
I find it best practice to minimize the libraries you deliver to only those really needed, without the J2EE libs. Every other library you deliver out of "Easyness" is mistify your view on problems.
You can try to add these libraries as a shared library. Or add them in one of the deployment steps. Or if these two don't work, try to ship them in your war-file.
Hope this helps.
If you need more help, may be you should dig up some errors. Look in to the servers logs, for example the logs in <Soa_home>/opmn/logs. Especially the one of the container your webservice is running in.
Regards,
Martien -
Problem in invoking TaskMAnager from another BPEL process
Hi,
I have created a BPEL process having its own xsd schema file and i have also imported Task.xsd.In this process i want to invoke TaskManager Service in java Embed activity(bpel:exec language="java") in following manner:
/////////////////////////////////////////////////CODE////////////////////////////////////////////////
Task task = TaskFactory.createFacade(new QName("http://services.oracle.com/bpel/task", "task"));
task.setTitle("Task Title");
task.setCreator("ProcessManager...");
task.setAssignee("assignee");
task.setPriority(3);
NormalizedMessage nm = new NormalizedMessage();
nm.addPart("payload",task.getRootElement());
Locator locator = new Locator("default","bpel");
IDeliveryService deliveryService = (IDeliveryService)locator.lookupService(IDeliveryService.SERVICE_NAME );
deliveryService.post("TaskManager", "initiateTask", nm );
////////////////////////////////////CODE////////////////////////////////////////////////////////
It creates the instance of taskmanager but following error occur in its initiate task.
//////////////////////////////////ERROR/////////////////////////////////////////////////////////////
<IntiateFault xmlns="http://services.oracle.com/bpel/task">
<part name="summary">
<summary>Cannot update task. The process domain was unable to insert the data for task "LocalGUID:c568752ccc493590:148662:1089e600035:-7fd4" in the datasource. The exception reported is: [POL-5134] invalid host variable type Please check that the machine hosting the datasource is physically connected to the network. Otherwise, check that the datasource connection parameters (user/password) is currently valid. sql statement: INSERT INTO task( domain_ref, conversation_id, title, creation_date, creator, modify_date, modifier, assignee, status, expired, exp_date, priority, template, custom_key, conclusion ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )</summary>
</part>
</IntiateFault>
//////////////////////////////////ERROR/////////////////////////////////////////////////////////////
Thanks
NancyBy default the BPEL 10.1.2, it will do a local call to the process. It will not execute a SOAP request, no network access is done.
It can be configured at domain level:
Parameter: optSoapShortcut (SOAP local optimization)
Turns on "short-cut" for local SOAP request; local SOAP calls are normally done via an internal call instead of sending a message through the SOAP stack.
The default behavior for the engine is to optimize all. To disable optimization specify a value other than "true" or "yes". -
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 = 'Y' AND rl.line_type IN ('FREIGHT', 'LINE') AND ra.cust_trx_type_id = rt.cust_trx_type_id AND ra.bill_to_customer_id = hc.cust_account_id AND hc.status = 'A' 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 = 'BILL_TO' 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 = 'A' AND hcsua_bill.status = 'A' AND aps.amount_due_remaining <> 0 AND aps.status = 'OP' 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 wrongHi 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 a BPEL process from java API (Urgent)
Hi,
I am using this java api to invoke a bpel process.
package mypackage;
import com.oracle.bpel.client.Locator;
import com.oracle.bpel.client.NormalizedMessage;
import com.oracle.bpel.client.dispatch.IDeliveryService;
import com.oracle.bpel.client.ServerException;
public class InvokeBpel1
// Connect to domain “default” using password “bpel”
// null IP address means local server
public static void main(String args[])
Locator locator=null;
String xml =" <soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope\">"
+"<soap:Header/>"
+" <soap:Body xmlns:ns1=\"http://xmlns.oracle.com/BPELMultiplePO\">"
+"<ns1:BPELMultiplePOProcessRequest>"
+" <ns1:input>4686</ns1:input>"
+" </ns1:BPELMultiplePOProcessRequest>"
+" </soap:Body>"
+"</soap:Envelope>";
try
locator = new Locator("default","bpel","10.227.5.34");
IDeliveryService deliveryService =(IDeliveryService)locator.lookupService(IDeliveryService.SERVICE_NAME );
NormalizedMessage nm = new NormalizedMessage( );
nm.addPart("payload", xml );
NormalizedMessage res =
deliveryService.request("BPELMultiplePO(v1.1)", "process", nm);
catch (Exception e)
e.printStackTrace();
But it is showing following errors.----
java.lang.Exception: Failed to create "ejb/collaxa/system/DomainManagerBean" bean; exception reported is: "javax.naming.NameNotFoundException: ejb/collaxa/system/DomainManagerBean not found
at com.evermind.server.rmi.RMIContext.lookup(RMIContext.java:164)
at com.evermind.naming.FilterContext.lookup(FilterContext.java:138)
at com.evermind.naming.SubFilterContext.lookup(SubFilterContext.java:55)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at com.oracle.bpel.client.util.BeanRegistry.lookupDomainManagerBean(BeanRegistry.java:218)
at com.oracle.bpel.client.auth.DomainAuthFactory.authenticate(DomainAuthFactory.java:83)
at com.oracle.bpel.client.auth.DomainAuthFactory.authenticate(DomainAuthFactory.java:47)
at com.oracle.bpel.client.Locator.<init>(Locator.java:87)
at mypackage.InvokeBpel1.main(InvokeBpel1.java:26)
at com.oracle.bpel.client.util.BeanRegistry.lookupDomainManagerBean(BeanRegistry.java:232)
at com.oracle.bpel.client.auth.DomainAuthFactory.authenticate(DomainAuthFactory.java:83)
at com.oracle.bpel.client.auth.DomainAuthFactory.authenticate(DomainAuthFactory.java:47)
at com.oracle.bpel.client.Locator.<init>(Locator.java:87)
at mypackage.InvokeBpel1.main(InvokeBpel1.java:26)
What should I do remove this problem?Your problem sounds like many RMI problems answered in this forum in the past, especially if the java client is not on the same container as the bpel engine.
Usually solved with setting some environment properties like dedicated.rmicontext=true etc.
Please search the forum history. -
Invoking a BPEL process from a WS
Errors occurred when I tried to invoke a BPEL process from a WS. The BPEL process was deployed in Local PM server and the WS was deployed in local OC4J server of JDeveloper 10g.
在Java class 发布成WS,部署在JDeveloper 10g中的oc4j服务器里,调用本机的BPEL流程出错,
WS coding as below:
WS代码如下:
package zbht.com;
import com.oracle.bpel.client.Locator;
import com.oracle.bpel.client.NormalizedMessage ;
import com.oracle.bpel.client.dispatch.IDeliveryService ;
import java.util.Date;
import com.oracle.services.bpel.task.IWorklistService;
import com.oracle.services.bpel.task.ITask;
public class test
public test()
* @webmethod
public void getBPEL(String str1,String str2)
try{
String xml = "<BPELProcess xmlns=\"http://xmlns.oracle.com/BPELProcess\">"
+ "<input>"+str1+"</input>"
+ "<input1>"+str2+"</input1>"
+ "</BPELProcess>";
System.out.println(xml);
// String xml="<OrgName xmlns=\"http://sse.org.cn/poc\">"+OrgName+"</OrgName>";
Locator locator = new Locator("default","bpel");
System.out.println("123");
IDeliveryService deliveryService = (IDeliveryService)locator.lookupService(IDeliveryService.SERVICE_NAME);
System.out.println("1234");
// construct the normalized message and send to Oracle BPEL Process Manager
NormalizedMessage nm = new NormalizedMessage( );
System.out.println("12345");
nm.addPart("payload" , xml );
deliveryService.post("BPELProcess", "initiate", nm);
}catch(Exception e)
e.printStackTrace();
Process source coding as below:
流程代码:
<process name="BPELProcess" targetNamespace="http://xmlns.oracle.com/BPELProcess" 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://zbht/com/test.wsdl" xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:client="http://xmlns.oracle.com/BPELProcess" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc">
<partnerLinks>
<partnerLink name="client" partnerLinkType="client:BPELProcess" myRole="BPELProcessProvider"/>
<partnerLink myRole="testPortType_Role" name="PartnerLink_1" partnerRole="testPortType_Role" partnerLinkType="ns1:testPortType_PL"/>
</partnerLinks>
<variables>
<variable name="inputVariable" messageType="client:BPELProcessRequestMessage"/>
<variable name="outputVariable" messageType="client:BPELProcessResponseMessage"/>
<variable name="Invoke_1_test_InputVariable" messageType="ns1:test0Request"/>
<variable name="Invoke_1_test_OutputVariable" messageType="ns1:test0Response"/>
</variables>
<sequence name="main">
<receive name="receiveInput" partnerLink="client" portType="client:BPELProcess" operation="process" variable="inputVariable" createInstance="yes"/>
<assign name="Assign_1">
<copy>
<from variable="inputVariable" part="payload" query="/client:BPELProcessProcessRequest/client:input"/>
<to variable="Invoke_1_test_InputVariable" part="str1"/>
</copy>
<copy>
<from variable="inputVariable" part="payload" query="/client:BPELProcessProcessRequest/client:input1"/>
<to variable="Invoke_1_test_InputVariable" part="str2"/>
</copy>
</assign>
<invoke name="Invoke_1" partnerLink="PartnerLink_1" portType="ns1:testPortType" operation="test" inputVariable="Invoke_1_test_InputVariable" outputVariable="Invoke_1_test_OutputVariable"/>
<assign name="Assign_2">
<copy>
<from variable="Invoke_1_test_OutputVariable" part="return"/>
<to variable="outputVariable" part="payload" query="/client:BPELProcessProcessResponse/client:result"/>
</copy>
</assign>
<reply name="replyOutput" partnerLink="client" portType="client:BPELProcess" operation="process" variable="outputVariable"/>
</sequence>
</process>
Error messages:
错误信息:
05/10/08 17:06:06 java.lang.Exception: Failed to create "ejb/collaxa/system/DomainManagerBean" bean; exception reported is: "javax.naming.NameNotFoundException: ejb/collaxa/system/DomainManagerBean not found at com.evermind.server.rmi.RMIContext.lookup(RMIContext.java:164) at com.evermind.server.ApplicationContext.lookup(ApplicationContext.java:333) at com.evermind.server.ApplicationContext.lookup(ApplicationContext.java:120) at javax.naming.InitialContext.lookup(InitialContext.java:347) at com.oracle.bpel.client.util.BeanRegistry.lookupDomainManagerBean(BeanRegistry.java:218) at com.oracle.bpel.client.auth.DomainAuthFactory.authenticate(DomainAuthFactory.java:83) at com.oracle.bpel.client.auth.DomainAuthFactory.authenticate(DomainAuthFactory.java:47) at com.oracle.bpel.client.Locator.<init>(Locator.java:65) at zbht.com.test.getBPEL(test.java:29) at zbht.com.__testStatelessWrapper.invokeMethod(__testStatelessWrapper.java:101) at oracle.j2ee.ws.InvocationWrapper.invoke(InvocationWrapper.java:380) at oracle.j2ee.ws.RpcWebService.doGetRequest(RpcWebService.java:642) at oracle.j2ee.ws.BaseWebService.doGet(BaseWebService.java:1173) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65) at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:649) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:322) at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:270) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112) at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192) at java.lang.Thread.run(Thread.java:534)".05/10/08 17:06:06 at com.oracle.bpel.client.util.BeanRegistry.lookupDomainManagerBean(BeanRegistry.java:232)05/10/08 17:06:06 at com.oracle.bpel.client.auth.DomainAuthFactory.authenticate(DomainAuthFactory.java:83)05/10/08 17:06:06 at com.oracle.bpel.client.auth.DomainAuthFactory.authenticate(DomainAuthFactory.java:47)05/10/08 17:06:06 at com.oracle.bpel.client.Locator.<init>(Locator.java:65)05/10/08 17:06:06 at zbht.com.test.getBPEL(test.java:29)05/10/08 17:06:06 at zbht.com.__testStatelessWrapper.invokeMethod(__testStatelessWrapper.java:101)05/10/08 17:06:06 at oracle.j2ee.ws.InvocationWrapper.invoke(InvocationWrapper.java:380)05/10/08 17:06:06 at oracle.j2ee.ws.RpcWebService.doGetRequest(RpcWebService.java:642)05/10/08 17:06:06 at oracle.j2ee.ws.BaseWebService.doGet(BaseWebService.java:1173)05/10/08 17:06:06 at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)05/10/08 17:06:06 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)05/10/08 17:06:06 at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)05/10/08 17:06:06 at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)05/10/08 17:06:06 at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:649)05/10/08 17:06:06 at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:322)05/10/08 17:06:06 at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)05/10/08 17:06:06 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:270)05/10/08 17:06:06 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)05/10/08 17:06:06 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)05/10/08 17:06:06 at java.lang.Thread.run(Thread.java:534)
ThanksHey,
no big deal, this is because the Locator you use, runs in, say local mode,
use the other API constructor in locator, which gets a hashtable.
Tutorial is available in samples\tutorials\102.InvokingProcesses\rmi
Locator locator = new Locator("default","bpel",props);
The reason why you get that "notFoundEx" is because you are not in the same rmi.context bel runs in. -
Invoking a BPEL process from a diffrent server.
Hello
I am trying to invoke a Bpel process from a diffrent server than the one where Soa Suite is installed and I am getting the folowing error:
java.lang.Exception: Failed to create "ejb/collaxa/system/DeliveryBean" bean; exception reported is: "javax.naming.NameNotFoundException: ejb/collaxa/system/DeliveryBean not found
at com.evermind.server.rmi.RMIClientContext.lookup(RMIClientContext.java:52)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at com.oracle.bpel.client.util.BeanRegistry.lookupDeliveryBean(BeanRegistry.java:279)
at com.oracle.bpel.client.delivery.DeliveryService.getDeliveryBean(DeliveryService.java:250)
at com.oracle.bpel.client.delivery.DeliveryService.request(DeliveryService.java:83)
at com.oracle.bpel.client.delivery.DeliveryService.request(DeliveryService.java:53)
at Invoke.main(Invoke.java:35)
at com.oracle.bpel.client.util.BeanRegistry.lookupDeliveryBean(BeanRegistry.java:293)
at com.oracle.bpel.client.delivery.DeliveryService.getDeliveryBean(DeliveryService.java:250)
at com.oracle.bpel.client.delivery.DeliveryService.request(DeliveryService.java:83)
at com.oracle.bpel.client.delivery.DeliveryService.request(DeliveryService.java:53)
at Invoke.main(Invoke.java:35)
The same client works fine when running it from the same machine where the Soa Suite is installed.
Does anyone know what can be the problem?
Regards Corneliuhi....
the same error is coming for me when i am in local server itself.
I am using Eclipse and BPEL server....
hereby i am attaching my code:
import com.oracle.bpel.client.Locator;
import com.oracle.bpel.client.NormalizedMessage;
import com.oracle.bpel.client.dispatch.IDeliveryService;
import java.util.Map;
import java.util.*;
import javax.naming.*;
public class initiate {
* @param args
public static void main(String[] args)
String xml="<ns1:BPELProcess1ProcessRequest xmlns:ns1=\"http://xmlns.oracle.com/BPELProcess1\">";
xml=xml+"<ns1:input>natraj</ns1:input>";
xml=xml+"</ns1:BPELProcess1ProcessRequest>";
try{
Locator loc = null;
Hashtable jndi = new Hashtable();
jndi.put(Context.PROVIDER_URL, "http://localhost:8888/BPELConsole");
jndi.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory");
jndi.put(Context.SECURITY_PRINCIPAL, "oc4jadmin");
jndi.put(Context.SECURITY_CREDENTIALS, "oc4jadmin");
jndi.put("dedicated.connection", "true");
loc = new Locator("default", "bpel", jndi);
IDeliveryService deliveryService = (IDeliveryService)loc.lookupService(IDeliveryService.SERVICE_NAME );
NormalizedMessage nm = new NormalizedMessage();
nm.addPart("payload", xml);
//deliveryService.post("BPELProcess1", "initiate", nm);
NormalizedMessage res = deliveryService.request("BPELProcess1", "process", nm);
Map payload = res.getPayload();
System.out.println( "BPELProcess CreditRatingService executed!<br>" );
System.out.println( "Credit Rating is " + payload.get("payload") );
catch (Exception e)
System.out.println("Exception"+e);
//System.out.println( "BPELProcess initiated!" );
ERROR:
Exceptionjava.lang.Exception: Failed to create "ejb/collaxa/system/DeliveryBean" bean; exception reported is: "javax.naming.NamingException: Invalid provider URL
at com.evermind.server.rmi.RMIInitialContextFactory.getInitialContext(RMIInitialContextFactory.java:172)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
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.request(DeliveryService.java:83)
at com.oracle.bpel.client.delivery.DeliveryService.request(DeliveryService.java:53)
at initiate.main(initiate.java:54)
Please provide me a solution...
thanks in advance
Maybe you are looking for
-
I am trying to re-install itunes. I removed all Apples software, and restarted. still get error message: "Verify that you have access to that directory" (as administrator) now what?
-
PO attachments in PO approval notification
All, is it possible to display the PO attachments/ their information in the PO approval notification itself? If so, please tell me where to start. Thanks.
-
Is IPS is the functional role of router? or some hardware too?
As I understood IPS can be some kind of ISR routers and CAT switches? am I right?
-
Error in outbound processing:ALE/IDOC
Dear all, I am getting an error in outbound processing as follows(I have extended the BD12 IDOC for customer master). The issue is that there is no hierarchie of segments in IDOC transaction we05.(Thogh the hierarchie can be observed in WE30) EDI: Sy
-
Custom Search Help in Standard Transaction?
Hi, is possible to tie a custom search help to an input field of a standard transaction? If yes, what would be the best way to achieve this? Thanks. / Elvez