Initiate BPEL process from incoming fax ?
hi all,
I found a very interesting post on Matt Wright's Blog
[http://blogs.oracle.com/matt/2006/03/10#a26] to init a process from a incoming email.
Do you know if we can make the same with an incoming fax?
Thanks for your help,
Cyryl
Hi,
In the past, I participated in 2 projects dealing with handling faxes or scanned documents (tiff format either way).
In one project, we used fax software (from Kofax I believe) that was able to recognize and interpret barcodes. Based on the barcode, the fax was put into the proper dossier in an Oracle database and processed from there. In case a barcode was not detected or could not be interpreted, the document was stored in a temporary dossier and someone was assigned the task to put it in its rightful place.
You could adopt a similar strategy and kick of a BPEL process whenever a document arives.
Hth.
Best regards, Sjoerd
Similar Messages
-
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. -
Question: How to call a BPEL process from a PL/SQL procedure
Hi All,
Greetings to all BPEL people. I have a question on how can we call a BPEL process from a PLSQL procedure. It might be a stupid question but i wanted to know whether this fetaure is available in BPEL as our scenario requires us to explore if this functionality is available in BPEL.
Please let me know and also if possible please send me the links for the tutorials if it is available.
Thanks In Advance,
DibyaYes u can do it. there are two ways.
1) First one is using utl_http package of PL/SQL
In this case u can create SOAP request message & send it as Http request to your deployed BPEL process.
This package provides some methods like
set_header,write_text,get_response,read_text etc..
Following is part of code which may be helpful to you.
create or replace package body test_book_order_sub_pkg
is
FUNCTION test_book_order_sub(p_subscription_guid IN RAW,
p_event IN OUT WF_EVENT_T
Return VARCHAR2 IS
soap_request varchar2(30000);
soap_respond varchar2(30000);
http_req utl_http.req;
http_resp utl_http.resp;
launch_url varchar2(240) ;
begin
DBMS_OUTPUT.Put_Line('Subscription : Order has been booked');
soap_request:='<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header/>
<soap:Body xmlns:ns1="http://xmlns.oracle.com/BES_BookOrder">
<ns1:BES_BookOrderProcessRequest>
<ns1:input>725</ns1:input>
</ns1:BES_BookOrderProcessRequest>
</soap:Body>
</soap:Envelope>';
http_req:= utl_http.begin_request
('http://172.28.5.191:8888/orabpel/default/BES_BookOrder/1.0',
'POST',
'HTTP/1.1'
utl_http.set_header(http_req, 'Content-Type', 'text/xml') ;
utl_http.set_header(http_req, 'Content-Length', length(soap_request)) ;
utl_http.set_header(http_req, 'SOAPAction', 'initiate');
utl_http.write_text(http_req, soap_request) ;
http_resp:= utl_http.get_response(http_req) ;
utl_http.read_text(http_resp, soap_respond) ;
utl_http.end_response(http_resp) ;
DBMS_OUTPUT.Put_Line(soap_respond);
return('SUCCESS');
end test_book_order_sub;
end test_book_order_sub_pkg;
2) Second way is make your BPEL process listening to some database Queue(use AQ Adapter). & then put some message in tht queue from ur Pl/SQL code . This will also initiate BPEL instance. Check out AQAdapter tutorials.
/mishit -
Error while calling bpel process from jsp page
Hi,
I am trying to access bpel process from a jsp page..i could successfully deploy bpel and run it from bpel console.however accessing the bpel from a jsp gives an error. I have attached the code and error. I am using jdev10.3.1 with SOA suite.Any help is greatly appreciated.
Thanks,
p
Hashtable env = null;
env = new Hashtable();
env.put("java.naming.factory.initial", "oracle.j2ee.naming.ApplicationClientInitialContextFactory");
env.put("java.naming.provider.url", "opmn:ormi://fs-sys-414:6005:home/orabpel");
env.put("java.naming.security.principal", "oc4jadmin");
env.put("java.naming.security.credentials", "xxxxx");
try{
String xml = "<input xmlns=\"http://xmlns.oracle.com/Pr_Bpel_Process\">" + "HELLO" + "</input>";
Locator locator = new Locator("default","bpel",env);
System.out.println("locator object" +locator);
IDeliveryService deliveryService = (IDeliveryService)locator.lookupService(IDeliveryService.SERVICE_NAME );
// construct the normalized message and send to Oracle BPEL Process Manager
System.out.println("delivery service name="+IDeliveryService.SERVICE_NAME);
NormalizedMessage nm = new NormalizedMessage( );
nm.addPart("payload",xml);
System.out.println("adding payload to nm");
deliveryService.post("Pr_Bpel_Process", "initiate", nm);
oracle.classloader.util.AnnotatedNoClassDefFoundError:
Missing class: com.collaxa.common.util.NonSyncStringWriter
Dependent class: com.oracle.bpel.client.ClientResources
Loader: current-workspace-app.web.pra_appln-pra_proj-webapp:0.0.0
Code-Source: /C:/product/10.1.3.1/OracleAS_1/bpel/lib/orabpel.jar
Configuration: <classpath> in C:\jdev10131SOA\jdev\mywork\pra_appln\pra_proj\public_html
The missing class is not available from any code-source or loader in the system.
06/11/23 14:33:29 at oracle.classloader.PolicyClassLoader.handleClassNotFound (PolicyClassLoader.java:2068) [C:/jdev10131SOA/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@14916158]
at oracle.classloader.PolicyClassLoader.internalLoadClass (PolicyClassLoader.java:1679) [C:/jdev10131SOA/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@14916158]
at oracle.classloader.PolicyClassLoader.loadClass (PolicyClassLoader.java:1635) [C:/jdev10131SOA/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@14916158]
at oracle.classloader.PolicyClassLoader.loadClass (PolicyClassLoader.java:1620) [C:/jdev10131SOA/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@14916158]
at java.lang.ClassLoader.loadClassInternal (ClassLoader.java:319) [jre bootstrap, by jre.bootstrap:1.5.0_06]
at com.oracle.bpel.client.ClientResources.sanitizeArgs (ClientResources.java:123) [C:/product/10.1.3.1/OracleAS_1/bpel/lib/orabpel.jar (from <classpath> in C:\jdev10131SOA\jdev\mywork\prashant_appln\pra_proj\public_html), by current-workspace-app.web.prashant_appln-pra_proj-webapp:0.0.0]
at com.oracle.bpel.client.ClientResources.getString (ClientResources.java:93) [C:/product/10.1.3.1/OracleAS_1/bpel/lib/orabpel.jar (from <classpath> in C:\jdev10131SOA\jdev\mywork\prashant_appln\pra_proj\public_html), by current-workspace-app.web.prashant_appln-pra_proj-webapp:0.0.0]
at com.oracle.bpel.client.util.BeanRegistry.lookupDeliveryBean (BeanRegistry.java:293) [C:/product/10.1.3.1/OracleAS_1/bpel/lib/orabpel.jar (from <classpath> in C:\jdev10131SOA\jdev\mywork\prashant_appln\pra_proj\public_html), by current-workspace-app.web.prashant_appln-pra_proj-webapp:0.0.0]
at com.oracle.bpel.client.delivery.DeliveryService.getDeliveryBean (DeliveryService.java:250) [C:/product/10.1.3.1/OracleAS_1/bpel/lib/orabpel.jar (from <classpath> in C:\jdev10131SOA\jdev\mywork\prashant_appln\pra_proj\public_html), by current-workspace-app.web.prashant_appln-pra_proj-webapp:0.0.0]
at com.oracle.bpel.client.delivery.DeliveryService.post (DeliveryService.java:174) [C:/product/10.1.3.1/OracleAS_1/bpel/lib/orabpel.jar (from <classpath> in C:\jdev10131SOA\jdev\mywork\prashant_appln\pra_proj\public_html), by current-workspace-app.web.prashant_appln-pra_proj-webapp:0.0.0]
at com.oracle.bpel.client.delivery.DeliveryService.post (DeliveryService.java:149) [C:/product/10.1.3.1/OracleAS_1/bpel/lib/orabpel.jar (from <classpath> in C:\jdev10131SOA\jdev\mywork\prashant_appln\pra_proj\public_html), by current-workspace-app.web.prashant_appln-pra_proj-webapp:0.0.0]
at testbpel.jspService (_testbpel.java:79) [C:/jdev10131SOA/jdev/mywork/prashant_appln/pra_proj/classes/.jsps/ (from *.jsp in C:\jdev10131SOA\jdev\mywork\prashant_appln\pra_proj\classes\.jsps), by current-workspace-app.web.prashant_appln-pra_proj-webapp.jsp27809090:0.0.0]
at com.orionserver.http.OrionHttpJspPage.service (OrionHttpJspPage.java:59) [C:/jdev10131SOA/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\jdev10131SOA\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at oracle.jsp.runtimev2.JspPageTable.service (JspPageTable.java:453) [C:/jdev10131SOA/j2ee/home/lib/ojsp.jar (from <code-source> in META-INF/boot.xml in C:\jdev10131SOA\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at oracle.jsp.runtimev2.JspServlet.internalService (JspServlet.java:591) [C:/jdev10131SOA/j2ee/home/lib/ojsp.jar (from <code-source> in META-INF/boot.xml in C:\jdev10131SOA\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at oracle.jsp.runtimev2.JspServlet.service (JspServlet.java:515) [C:/jdev10131SOA/j2ee/home/lib/ojsp.jar (from <code-source> in META-INF/boot.xml in C:\jdev10131SOA\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at javax.servlet.http.HttpServlet.service (HttpServlet.java:856) [C:/jdev10131SOA/j2ee/home/lib/servlet.jar (from <code-source> (ignore manifest Class-Path) in META-INF/boot.xml in C:\jdev10131SOA\j2ee\home\oc4j.jar), by api:1.4.0]
at com.evermind.server.http.ServletRequestDispatcher.invoke (ServletRequestDispatcher.java:711) [C:/jdev10131SOA/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\jdev10131SOA\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal (ServletRequestDispatcher.java:368) [C:/jdev10131SOA/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\jdev10131SOA\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at com.evermind.server.http.HttpRequestHandler.doProcessRequest (HttpRequestHandler.java:866) [C:/jdev10131SOA/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\jdev10131SOA\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at com.evermind.server.http.HttpRequestHandler.processRequest (HttpRequestHandler.java:448) [C:/jdev10131SOA/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\jdev10131SOA\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at com.evermind.server.http.HttpRequestHandler.serveOneRequest (HttpRequestHandler.java:216) [C:/jdev10131SOA/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\jdev10131SOA\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at com.evermind.server.http.HttpRequestHandler.run (HttpRequestHandler.java:117) [C:/jdev10131SOA/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\jdev10131SOA\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at com.evermind.server.http.HttpRequestHandler.run (HttpRequestHandler.java:110) [C:/jdev10131SOA/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\jdev10131SOA\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run (ServerSocketReadHandler.java:260) [C:/jdev10131SOA/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\jdev10131SOA\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket (ServerSocketAcceptHandler.java:239) [C:/jdev10131SOA/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\jdev10131SOA\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at oracle.oc4j.network.ServerSocketAcceptHandler.access$700 (ServerSocketAcceptHandler.java:34) [C:/jdev10131SOA/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\jdev10131SOA\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run (ServerSocketAcceptHandler.java:880) [C:/jdev10131SOA/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\jdev10131SOA\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run (ReleasableResourcePooledExecutor.java:298) [C:/jdev10131SOA/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\jdev10131SOA\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at java.lang.Thread.run (Thread.java:595) [jre bootstrap, by jre.bootstrap:1.5.0_06]Hi,
Now i am getting different kind of exception::
06/11/24 08:11:06 java.lang.Exception: Failed to create "ejb/collaxa/system/DeliveryBean" bean; exception reported is: "javax.naming.NamingException: META-INF/application-client.xml not found (see J2EE spec, application-client chapter for requirements and format of the file)
at oracle.j2ee.naming.ApplicationClientInitialContextFactory.getRequiredClasspathResource(ApplicationClientInitialContextFactory.java:239)
at oracle.j2ee.naming.ApplicationClientInitialContextFactory.getArchive(ApplicationClientInitialContextFactory.java:161)
at oracle.j2ee.naming.ApplicationClientInitialContextFactory.getInitialContext(ApplicationClientInitialContextFactory.java:111)
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.post(DeliveryService.java:174)
at com.oracle.bpel.client.delivery.DeliveryService.post(DeliveryService.java:149)
at _testbpel._jspService(_testbpel.java:79)
at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:453)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:591)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:515)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:711)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448)
at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239)
at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34)
at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:298)
at java.lang.Thread.run(Thread.java:595)
06/11/24 08:11:06 at com.oracle.bpel.client.util.BeanRegistry.lookupDeliveryBean(BeanRegistry.java:293)
06/11/24 08:11:06 at com.oracle.bpel.client.delivery.DeliveryService.getDeliveryBean(DeliveryService.java:250)
06/11/24 08:11:06 at com.oracle.bpel.client.delivery.DeliveryService.post(DeliveryService.java:174)
06/11/24 08:11:06 at com.oracle.bpel.client.delivery.DeliveryService.post(DeliveryService.java:149)
06/11/24 08:11:06 at testbpel.jspService(_testbpel.java:79)
06/11/24 08:11:06 at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
06/11/24 08:11:06 at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:453)
06/11/24 08:11:06 at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:591)
06/11/24 08:11:06 at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:515)
06/11/24 08:11:06 at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
06/11/24 08:11:06 at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:711)
06/11/24 08:11:06 at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
06/11/24 08:11:06 at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866)
06/11/24 08:11:06 at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448)
06/11/24 08:11:06 at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216)
06/11/24 08:11:06 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)
06/11/24 08:11:06 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)
06/11/24 08:11:06 at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
06/11/24 08:11:06 at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239)
06/11/24 08:11:06 at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34)
06/11/24 08:11:06 at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880)
06/11/24 08:11:06 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:298)
06/11/24 08:11:06 at java.lang.Thread.run(Thread.java:595) -
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 -
Invoking asynchronous BPEL process from java ui
Hi,
I am invoking an asynchronous BPEL process from java ui.
I read somewhere that i can obtain an instance handler uing the lookupInstance() method of class Locator using the conversation id provided by the class NormalizedMessage.
My code looks like this
// Connect to Oracle BPEL server
Locator locator = new Locator("default","bpel");
IDeliveryService deliveryService = (IDeliveryService)locator.lookupService(IDeliveryService.SERVICE_NAME );
// Construct a normalized message and send to Oracle BPEL Process Manager
NormalizedMessage nm = new NormalizedMessage();
nm.addPart("payload", xml);
// Initiate the BPEL process
deliveryService.post("MyLoanFlow", "initiate", nm);
//Obtain the instance handler
IInstanceHandle handle = locator.lookupInstance(NormalizedMessage.CONVERSATION_ID);
But this is giving the error - can not find any instance with conversation id 'conversationId'.
Also, if i try to obtain a list of instance handles associated with a process , it does not contain the most recently created instance
IBPELProcessHandle ph = locator.lookupProcess("MyLoanFlow");
IInstanceHandle[] iHandler = ph.listInstances();
out.println(iHandler.length + "<br>");
if i invoke the process for the first time the output is 0.
can you please help me. it is urgent.Hi Sudipto,
Regarding your second question,
deliveryService.post("MyLoanFlow", "initiate", nm);
IBPELProcessHandle ph = locator.lookupProcess("MyLoanFlow");
IInstanceHandle[] iHandler = ph.listInstances();
out.println(iHandler.length + "<br>");
---- returns 0 ---
This is because MyLoanFlow is an asynchronous process in your case. So the control is returned to your java block immediately after the request for a new instance is posted. And your second line of code(querying for the list of instances) is executed even before the instance is created on the server side. You can verify this in two ways:
1. try creating an instance of a synchronous process using IDeliveryService.request - this will always result in the increment since the current thread is blocked till the new instance is created.
2. for your case, you can try
Thread.currentThread().sleep(500); - just allow the server some time for completing the instance before you query it for the list of instances..
and wrt question 1,
//Obtain the instance handler
IInstanceHandle handle = locator.lookupInstance(NormalizedMessage.CONVERSATION_ID);
But this is giving the error - can not find any instance with conversation id 'conversationId'.
For setting the conversationId, you could do so by including the following inside your .bpel file
<bpelx:exec name="test-setConversationId" language="java" version="1.4">
<![CDATA[
setConversationId("conversationId");
]]>
</bpelx:exec>
The code:
IInstanceHandle ins = locator.lookupInstanceByConversationId(NormalizedMessage.CONVERSATION_ID);
should fetch you the required instance in this case.
HTH,
Anuj -
Invoking a BPEL process from a PL/SQL procedure(URGENT)
hello,
Is it possible to invoke a BPEL process from a pl/sql procedure??
Please reply ...Yes it is.
On my current project i needed this too.
http://orasoa.blogspot.com/2006/11/calling-bpel-process-with-utldbws.html
Re: Error running demo PL/SQL consuming web services
I used this utl_http example:
declare
soap_request varchar2(30000);
soap_respond varchar2(30000);
http_req utl_http.req;
http_resp utl_http.resp;
launch_url varchar2(240) ;
begin
soap_request:='<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header/>
<soap:Body xmlns:ns1="http://xmlns.oracle.com/testtask">
<ns1:testtaskProcessRequest><ns1:input>leeg</ns1:input></ns1:testtaskProcessRequest>
</soap:Body>
</soap:Envelope>';
http_req:= utl_http.begin_request('http://yourhostname/orabpel/default/testtask/1.0'
,'POST',
'HTTP/1.1'
utl_http.set_header(http_req, 'Content-Type', 'text/xml') ;
utl_http.set_header(http_req, 'Content-Length', length(soap_request)) ;
utl_http.set_header(http_req, 'SOAPAction', 'initiate');
utl_http.write_text(http_req, soap_request) ;
http_resp:= utl_http.get_response(http_req) ;
utl_http.read_text(http_resp, soap_respond) ;
utl_http.end_response(http_resp) ;
dbms_output.put_line(soap_respond);
end; -
Invoking BPEL process from Java servlet with org.w3c.dom.Element as payload
Hello,
I'm trying to initiate a BPEL process from my servlet running under Tomcat. When I create the NormalizedMessage passing the XML as a String everything works fine. But if I use an org.w3c.domElement the BPEL server doesn't react at all (even on DEBUG log level there are no outputs).
This works:
NormalizedMessage message = new NormalizedMessage();
message.addPart("payload", "<foo></foo>");
This doesn't work:
org.w3c.dom.Element elem;
oracle.xml.parser.v2.XMLDocument xmlDocument;
NormalizedMessage message = new NormalizedMessage();
Element elem = xmlDocument.createElement("foo");
message.addPart("payload", elem);
Is there a known problem with payloads using Element or did I get something completely wrong? Thanks in advance,
Hans.Hello,
I'm trying to initiate a BPEL process from my servlet running under Tomcat. When I create the NormalizedMessage passing the XML as a String everything works fine. But if I use an org.w3c.domElement the BPEL server doesn't react at all (even on DEBUG log level there are no outputs).
This works:
NormalizedMessage message = new NormalizedMessage();
message.addPart("payload", "<foo></foo>");
This doesn't work:
org.w3c.dom.Element elem;
oracle.xml.parser.v2.XMLDocument xmlDocument;
NormalizedMessage message = new NormalizedMessage();
Element elem = xmlDocument.createElement("foo");
message.addPart("payload", elem);
Is there a known problem with payloads using Element or did I get something completely wrong? Thanks in advance,
Hans. -
Issue in invoking the BPEL process from Oracle using a SOAP Request
Hi,
We are facing an issue while invoking a deployed Bpel Process from Oracle Applications 11.5.10..
Using a concurrent program( Unix / Host program ) we are passing the input variables required for the Bpel process in the ProcessRequest tags and forming this as a SOAP message payload.
Then trying to invoke the deployed bpel process using the end point location using HTTP POST..but nothing is happening..
The bpel process is not getting invoked when i look at the Console and also checked for the Manual Recovery queue..it's not stuck there as well..
Have set the Transfer Time Out to 25 minutes using UTL_HTTP.SET_TRANSFER_TIMEOUT(1500);
Could someone please help us as soon as possible with this ..as this is critical and we are stuck at the moment.
The logic is mentioned below :
UTL_HTTP.SET_TRANSFER_TIMEOUT(1500);
UTL_HTTP.SET_DETAILED_EXCP_SUPPORT(ENABLE=>TRUE);
soap_request:='<?xml version="1.0" encoding="UTF-8"?>'||
'<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'||
'<soap:Header/>'||
'<soap:Body xmlns:ns1="http://xmlns.oracle.com/bpelprocessname">'||
'<ns1:bpelprocessnameProcessRequest>'||
'<ns1:CSONum>'||order_number||'</ns1:CSONum>'||
'<ns1:CreationDate>'||c_chr_cso_last_run_dte||'</ns1:CreationDate>'||
'</ns1:bpelprocessnameProcessRequest>'||
'</soap:Body>'||
'</soap:Envelope>';
http_req:= utl_http.begin_request
('http://bpel_server ip:port/orabpel/domain_name/bpelprocessname/1.0' , 'POST', 'HTTP/1.1'
utl_http.set_header(http_req, 'Content-Type', 'text/xml') ;
utl_http.set_header(http_req, 'Content-Length', length(soap_request)) ;
utl_http.set_header(http_req, 'SOAPAction', 'process');
utl_http.write_text(http_req, soap_request) ;
http_resp:= utl_http.get_response(http_req) ;
utl_http.read_text(http_resp, soap_respond) ;
utl_http.end_response(http_resp) ;
dbms_output.put_line(soap_respond);
Thankscheck if your soap envelope is correct,check my below procedure which is working fine for me
procedure xxxxx_BPEL_SCHEDULER
IS
soap_request varchar2(30000);
soap_respond varchar2(30000);
http_req utl_http.req;
http_resp utl_http.resp;
launch_url varchar2(240) ;
begin
soap_request:='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:add="http://schemas.xmlsoap.org/ws/2003/03/addressing" xmlns:star="http://xmlns.oracle.com/xxxxx_BPEL_SCHEDULER">
<soapenv:Header>
<add:MessageID>?</add:MessageID>
<add:ReplyTo>
<add:Address>?</add:Address>
<!--Optional:-->
<add:ReferenceProperties>
<!--You may enter ANY elements at this point-->
</add:ReferenceProperties>
<!--Optional:-->
<add:PortType>?</add:PortType>
<!--Optional:-->
<add:ServiceName PortName="?">?</add:ServiceName>
<!--You may enter ANY elements at this point-->
</add:ReplyTo>
</soapenv:Header>
<soapenv:Body>
<star:STARS_BPEL_SCHEDULERProcessRequest>
<star:SCHEDULER_PARAM1>?</star:SCHEDULER_PARAM1>
<star:SCHEDULER_PARAM2>?</star:SCHEDULER_PARAM2>
<star:SCHEDULER_PARAM3>?</star:SCHEDULER_PARAM3>
<star:SCHEDULER_PARAM4>?</star:SCHEDULER_PARAM4>
<star:SCHEDULER_PARAM5>?</star:SCHEDULER_PARAM5>
</star:STARS_BPEL_SCHEDULERProcessRequest>
</soapenv:Body>
</soapenv:Envelope>';
http_req:= utl_http.begin_request('http://xxxxxx.com:16000/orabpel/default/xxxx_BPEL_SCHEDULER/1.0 '
,'POST',
'HTTP/1.1'
utl_http.set_header(http_req, 'Content-Type', 'text/xml') ;
utl_http.set_header(http_req, 'Content-Length', length(soap_request)) ;
utl_http.set_header(http_req, 'SOAPAction', 'initiate');
utl_http.write_text(http_req, soap_request) ;
http_resp:= utl_http.get_response(http_req) ;
utl_http.read_text(http_resp, soap_respond) ;
utl_http.end_response(http_resp) ;
dbms_output.put_line(soap_respond);
END; -
Simple invoking BPEL process from JSP not working
Hello Everybody,
I'm trying to invoke a BPEL process from a client JSP. I'm following the tutorial 7 Invoking the BPEL processes.
I'm trying to use the same tutorial for a different application.
Here is my WSDL snippet.
<types>
<schema attributeFormDefault="qualified"
elementFormDefault="qualified"
targetNamespace="http://www.arcwebservices.com/v2006"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="SpatialQueryRequest" type="s1:SpatialQueryRequestType"/>
<element name="SpatialQueryResponse" type="s1:SpatialQueryResponseType"/>
<complexType name="SpatialQueryRequestType">
<sequence>
<element name="username" type="string"/>
<element name="password" type="string"/>
</sequence>
</complexType>
<complexType name="SpatialQueryResponseType">
<sequence>
<element name="token" type="string"/>
</sequence>
</complexType>
</schema>
</types>
<message name="SpatialQueryRequestMessage">
<part name="payload" element="s1:SpatialQueryRequest"/>
</message>
<message name="SpatialQueryResponseMessage">
<part name="payload" element="s1:SpatialQueryResponse"/>
</message>
<portType name="SpatialQuery">
<operation name="initiate">
<input message="tns:SpatialQueryRequestMessage"/>
</operation>
</portType>
<!-- portType implemented by the requester of SpatialQuery BPEL process
for asynchronous callback purposes
-->
<portType name="SpatialQueryCallback">
<operation name="onResult">
<input message="tns:SpatialQueryResponseMessage"/>
</operation>
</portType>
The JSP code is:
<%
String ssn = request.getParameter("ssn");
//if(ssn == null)
// ssn = "123-12-1234";
String username = "jaweed";
String password = "ibrahim";
//String xml = "<ssn xmlns=\"http://services.otn.com\">" + ssn + "</ssn>";
//String xml = "<UserName xmlns="http://www.arcwebservices.com/v2006">" + username + "</UserName><Password xmlns="http://www.arcwebservices.com/v2006">" + password + "</Password>";
String xml = "<UserName xmlns=\"http://www.arcwebservices.com/v2006\">" + username + "</UserName><Password xmlns=\"http://www.arcwebservices.com/v2006\">" + password + "</Password>";
Locator locator = new Locator("default","bpel");
IDeliveryService deliveryService = (IDeliveryService)locator.lookupService(IDeliveryService.SERVICE_NAME );
// construct the normalized message and send to Oracle BPEL Process Manager
NormalizedMessage nm = new NormalizedMessage( );
nm.addPart("payload", xml );
NormalizedMessage res = deliveryService.request("SpatialQuery", "initiate", nm);
Map payload = res.getPayload();
//out.println( "BPELProcess CreditRatingService executed!<br>" );
out.println( "Token is " + payload.get("payload") );
%>
com.oracle.bpel.client.ServerException: IDeliveryService.request() invoked for one-way operation 'initiate'. This method can only be used to invoke two-way operations which return an output message. Please check the WSDL which defines this operation and use the method IDeliveryService.post() to invoke a one-way operation
But I'm getting an exception. I'm in deep trouble please help me. UrgentYeah ..This is my final project for my masters degree.
I'm integrating BPEL with GIS(Geographic Information System) webservices provided by ESRI(Arcweb services). My main BPEL process that I built follows this sample example. The problem is that I need to show a working client application within 2 days or else my project is termed as incomplete and my graduation will be postponed to next semester. :(
I tried your advice, as soon as I add a Java code to my BPEL process, the application is taking longer time to execute in the BPEL console itself.
<bpelx:exec xmlns:bpelx="http://schemas.oracle.com/bpel/extension" language="java" version="1.4" name="exec-1">
<![CDATA[setConversationId("output");]]>
</bpelx:exec>
So after the thread sleep the webservice is not ready to give its output.
Just a quick thought, I assumed that if I attach the output of the my Invoke(Client) to a Reply activity,which will make it a two way operation.
Then I could use,
NormalizedMessage res = deliveryService.request("SpatialQuery", "initiate", nm);
will work.
I assigned the ouput of the Invoke(Client) to the variable in Reply activity.
But my reply activity is throwing a NULL pointer exception.
This is my BPEL code:
<sequence name="main">
<receive name="receiveInput" partnerLink="client" portType="tns:InvokeTest" operation="initiate" variable="input" createInstance="yes"/>
<assign name="assign-1">
<copy>
<from variable="input" part="payload" query="/nsxml0:InvokeTestRequest/nsxml0:username"></from>
<to variable="IsaInput" part="parameters" query="/nsxml0:getToken/nsxml0:username"/>
</copy>
<copy>
<from variable="input" part="payload" query="/nsxml0:InvokeTestRequest/nsxml0:password"></from>
<to variable="IsaInput" part="parameters" query="/nsxml0:getToken/nsxml0:password"/>
</copy>
</assign>
<invoke name="invoke-1" partnerLink="Authentication" portType="nsxml0:IAuthentication" operation="getToken" inputVariable="IsaInput" outputVariable="IsaOutput"/>
<assign name="assign-2">
<copy>
<from variable="IsaOutput" part="parameters" query="/nsxml0:getTokenResponse/nsxml0:Result"></from>
<to variable="output" part="payload" query="/nsxml0:InvokeTestResponse/nsxml0:token"/>
</copy>
</assign>
<reply name="reply-2" partnerLink="client" portType="tns:InvokeTest" operation="initiate" variable="output"/> </sequence>
I really appreciate your patience and help. -
Initiate BPEL process by e-mail polling lost in upgrade to 11g
So, as you would know by a simple search, "e-mail polling" or e-mail as an activation agent in BPEL 10.x works wonderfully following the guidance in the link: http://blogs.bpel-people.com/2007/01/using-email-to-initiate-bpel-process.html.
Taking that process and opening it in JDev 11g and running the upgrade process, I can't find where the activation agent configuration went. The process deploys fine, but none of the e-mails are getting picked up and starting the process. I've gotten myself lost in the Weblogic 10.3.3 configuration and can't seem to build the composite application to get e-mails flowing to a BPEL process. I've tried stuff with User Messaging Service, but that seems geared more towards the Workflow app. Also, the JavaMail looks really neat, but quite lost how to incorporate that into a BPEL workflow/composite application. I am from a BPEL background, my Java skill is medium-low.
It seems some of you have this working in 11g to poll an e-mail folder and kick-off a BPEL process. I've spent too much time muddling through the docs and not being successful and I'm not sure if my problem is Weblogic configuration or coding in the BPEL composite app. For those with this working, what do you feel is the best practice and if you can provide pointers to where I might dig further to get this working, I would really appreciate it.
Thanks!
-ColinHi,
Did u find the solution for this in 11g.
I am struggling too..
Please help if u have updates on it.
Thnaks
Viv -
How to trigger BPEL process from DB insertion
hi,
How to initiate BPEL process when a row insert, update or delete from table.my concern is to handle different casses for all above mentioned DML.Check if there is are Out of the Box Events first, if there are use those. Otherwise use a custom database trigger on your custom table. Make sure that your call is not being inadvertenly called multiple times.
--Bryan Colligan -
XML format for input to BPEL process from client stub
Hi,
I have deployed SyncHelloWorld BPEL process as given in the tutorial in the BPEL Server. It is working fine. Now I am trying to invoke the process by creating a Java client stub . I created a stub using the Web-services wizard by specifying the WSDL of the BPEL. Now I want to know how to pass some string through XML document to the BPEL process.
I am using this code in the main method of the stub., but the value is not being passed to the BPEL nodes correctly. the output I am getting is "Hello "
and not "Hello XYZString". I think I am not able to form the XML document to pass as input correctly. Can anyone help.
Can anyone please help :
public static void main(String[] args)
try
SyncHelloWorldStub stub = new SyncHelloWorldStub();
// Add your own code here.
// Create an empty XML document
XMLDocument doc = new XMLDocument();
// Create an element
Element body = doc.createElementNS("http://xmlns.oracle.com/SyncHelloWorld", "SyncHelloWorldProcessRequest");
// Create the inner element
Element ip = doc.createElementNS("http://xmlns.oracle.com/SyncHelloWorld", "input");
// Create a text node
Text text = doc.createTextNode("input");
// Set the input parameter
text.setNodeValue("XYZString");
ip.appendChild(text);
body.appendChild(ip);
// Call the process. It returns a vector
Vector v = stub.process(body);
// Code to print the returned xml.
System.out.println("Received " + v.size() + " element");
Enumeration enum = v.elements();
// Walk through the vector and print out contents
while (enum.hasMoreElements())
Object o = enum.nextElement();
System.out.println("Returned a " + o.getClass().getName());
//If it is an element, print it out
if (o instanceof XMLElement)
XMLElement xml = (XMLElement)o;
xml.print(System.out);
else
System.out.println("Returned " + o.toString());
System.out.println("After executing : "+v.toString());
catch(Exception ex)
ex.printStackTrace();
This is the code for WSDL file for the BPEL process.
<?xml version="1.0" encoding="UTF-8" ?>
- <definitions name="SyncHelloWorld" targetNamespace="http://xmlns.oracle.com/SyncHelloWorld" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://xmlns.oracle.com/SyncHelloWorld" 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/SyncHelloWorld">
- <types>
- <schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/SyncHelloWorld" xmlns="http://www.w3.org/2001/XMLSchema">
- <element name="SyncHelloWorldProcessRequest">
- <complexType>
- <sequence>
<element name="input" type="string" />
</sequence>
</complexType>
</element>
- <element name="SyncHelloWorldProcessResponse">
- <complexType>
- <sequence>
<element name="result" type="string" />
</sequence>
</complexType>
</element>
</schema>
</types>
- <message name="SyncHelloWorldRequestMessage">
<part name="payload" element="tns:SyncHelloWorldProcessRequest" />
</message>
- <message name="SyncHelloWorldResponseMessage">
<part name="payload" element="tns:SyncHelloWorldProcessResponse" />
</message>
- <portType name="SyncHelloWorld">
- <operation name="process">
<input message="tns:SyncHelloWorldRequestMessage" />
<output message="tns:SyncHelloWorldResponseMessage" />
</operation>
</portType>
- <binding name="SyncHelloWorldBinding" type="tns:SyncHelloWorld">
<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>
</operation>
</binding>
- <service name="SyncHelloWorld">
- <port name="SyncHelloWorldPort" binding="tns:SyncHelloWorldBinding">
<soap:address location="http://cisoidd001.corporate.ge.com:5843/orabpel/default/SyncHelloWorld/v2006_06_19__40924" />
</port>
</service>
- <plnk:partnerLinkType name="SyncHelloWorld">
- <plnk:role name="SyncHelloWorldProvider">
<plnk:portType name="tns:SyncHelloWorld" />
</plnk:role>
</plnk:partnerLinkType>
</definitions>
Also, while running the BPEL process from console, we can give the input as html or string. Can anyone give the me xml format of the input.
Any help would be highly appreciated.
Thanks,
DebojyotyYour last question shows that you might have solved this by now.
The xml document you are composing in java might not exactly be the xml input bpel excepts. The way to compare is first initiate a process by posting an html message, using the initiate tab for your process in the BPEL console. Check the box "Save as default input" before you send the html request.
Then again do an initiate from the BPEL console and select "XML Source" instead of "HTML Form". You will see the xml message you just have sent as html.
You might also want to test your java program with one of the many free soap clients available on the internet.
HTH,
Ruerd
http://www.numericalexample.com -
Calling OWSM Secured BPEL Process from JAVA
HI,
I have created OWSM gateway and registered BPEL process under that.
Now i want to call that BPEL process from java class. Can anybody please tell me how can i pass the security SOAP header.
Here is the class i am using ...
package com.javarpc;
import java.rmi.RemoteException;
import javax.xml.namespace.QName;
import javax.xml.rpc.JAXRPCException;
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceException;
import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.encoding.XMLType;
import javax.xml.rpc.soap.SOAPFaultException;
import org.apache.axis.client.Call;
import org.apache.axis.message.SOAPBodyElement;
import java.io.InputStream;
import java.io.ByteArrayInputStream;
public class CallHelloWorld
private static QName SERVICE_NAME;
private static QName PORT_TYPE;
private static QName OPERATION_NAME_IN;
private static String SOAP_ACTION;
private static String STYLE;
private static String THIS_NAMESPACE = "http://xmlns.oracle.com/HelloWorld";
private static String PARAMETER_NAMESPACE = "http://xmlns.oracle.com/HelloWorld";
private String location;
static
SERVICE_NAME = new QName(THIS_NAMESPACE,"HelloWorld");
PORT_TYPE = new QName(THIS_NAMESPACE,"HelloWorld") ;
SOAP_ACTION = "process";
/*Setting for Wraped style of calling*/
//STYLE = "wraped";
//OPERATION_NAME_IN = new QName(THIS_NAMESPACE,"HelloWorldProcessRequest");
/*Setting for Message style of calling*/
STYLE = "message";
OPERATION_NAME_IN = new QName(THIS_NAMESPACE,"process");
public void setLocation(String location)
this.location = location;
public void initiate(String symbol)
try
/* Create Service and Call object */
ServiceFactory serviceFactory = ServiceFactory.newInstance();
Service service = serviceFactory.createService( SERVICE_NAME );
Call call = (Call)service.createCall( PORT_TYPE );
/* Set all of the stuff that would normally come from WSDL */
call.setTargetEndpointAddress( location );
call.setProperty(Call.SOAPACTION_USE_PROPERTY, Boolean.TRUE);
call.setProperty(Call.SOAPACTION_URI_PROPERTY, SOAP_ACTION);
call.setProperty( Call.OPERATION_STYLE_PROPERTY , STYLE );
call.setOperationName(OPERATION_NAME_IN);
/*Setting Input for message type and invoke web service through message style*/
String strXMLInput="<HelloWorldProcessRequest xmlns=\"http://xmlns.oracle.com/HelloWorld\">";
strXMLInput+="<enovia>test</enovia>";
strXMLInput+="</HelloWorldProcessRequest>";
SOAPBodyElement[] requestSBElts = new SOAPBodyElement[1];
InputStream resultInputStream = new ByteArrayInputStream(strXMLInput.getBytes());
requestSBElts[0] = new SOAPBodyElement(resultInputStream);
System.out.println(requestSBElts[0]);
java.util.Vector output = (java.util.Vector) call.invoke(requestSBElts);
System.out.println( "HelloWorld BPEL process initiated by message " +output);
/*Setting Input for message type and invoke web service through wraped style
call.addParameter(new QName(PARAMETER_NAMESPACE,"input"), XMLType.XSD_STRING, ParameterMode.IN);
//call.setReturnType(new QName("XMLType.XSD_STRING"));
// call.setReturnType(new QName("String"));
Object[] params = new Object[1];
String outPut = new String();
params[0] = symbol;
call.invokeOneWay(params);
//Object ret;
//ret = (String) call.invoke( params );
System.out.println( "HelloWorld BPEL process initiated" );*/
catch (SOAPFaultException e)
System.err.println("Generated fault: ");
System.out.println (" Fault Code = " + e.getFaultCode());
System.out.println (" Fault String = " + e.getFaultString());
catch (JAXRPCException e)
System.err.println("JAXRPC Exception: " + e.getMessage());
catch (ServiceException e)
System.err.println("Service Exception: " + e.getMessage());
catch (RemoteException e)
System.err.println("RemoteException: " + e.getMessage());
public static void main(String[] args)
String symbol = "Kevin";
// String location = "http://valizprd208.val.cummins.com:7777/orabpel/tst/HelloWorld/1.0";
String location = "http://integrationvaldlv.cummins.com:7777/gateway/services/SID0003002?wsdl";
CallHelloWorld client = new CallHelloWorld();
client.setLocation( location );
client.initiate( symbol );
}You can get sample input by intercepting the request to check what exactly you need to put in SOAP header and what in body.
To manipulate soap header you can look at : http://www.oracle.com/technology/sample_code/tech/java/codesnippet/webservices/soapheader/index.html
HTH
Chintan
Maybe you are looking for
-
Can't print from a windows pc to network printer
I am having a network printer problem. I have a Canon printer plugged into the usb port of my Mac-Mini. I can print fine from the Mac to the printer. I have network sharing enabled for the printer. I have a Dell PC connected to an Airport Express v
-
Trade law in "Book depreciation area per trader law"
Hi team gurus, when i try CJ88 settlement (settlement from AUC to final assets), i found the amount according to trade law (assets) doesn't equal to the amount in Val/CO Area. And i found book depreciation area per trader law was mentioned many time
-
How do i fix permissions problems in migrating my iPhotos library to photos?
I am getting this notification when i try migrating my iPhotos library over to photos my iPhoto library is stored on an external hard drive. any ideas how to fix this? I've tried doing a permission repair through iPhotos but that didn't help.
-
[SOLVED]Shutting down in Arch (Openbox + Fluxbox)
The other OPs thread got solved....but my issue didn't. So here it is again. I have openbox and fluxbox installed on Arch: 1) Openbox stops responding on clicking either Reboot or Shutdown from the menu. Only option kill X. 2) Fluxbox doesnt
-
I am trying to update my iPod touch & keep getting this error message: There was a problem downloading the software for the iPod. The network connection timed out. Make sure your network settings are correct and your network connection is active.