Java ApacheODE-如何启动已部署的进程
我已经创建了以下BPEL脚本Java ApacheODE-如何启动已部署的进程,java,bpel,apache-ode,Java,Bpel,Apache Ode,我已经创建了以下BPEL脚本 <?xml version="1.0" encoding="utf-8" ?> <process name="ProcessInvoice" targetNamespace="http://invoiceregistry.me.cz/" xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:invrwsdl="http://invoice
<?xml version="1.0" encoding="utf-8" ?>
<process name="ProcessInvoice"
targetNamespace="http://invoiceregistry.me.cz/"
xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:invrwsdl="http://invoiceregistry.me.cz/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0">
<import
location="InvoiceRegistryWS.wsdl"
namespace="http://invoiceregistry.me.cz/"
importType="http://schemas.xmlsoap.org/wsdl/" />
<partnerLinks>
<partnerLink
name="InvoiceRegistryPartnerLink"
partnerLinkType="invrwsdl:InvoiceRegistryPartnerLinkType"
partnerRole="InvoiceRegistryServiceRole" />
</partnerLinks>
<variables>
<variable name="newInvoice" messageType="invrwsdl:insertNewInvoice" />
<variable name="response" messageType="invrwsdl:insertNewInvoiceResponse" />
</variables>
<sequence>
<assign name="PrepareInsertNewInvoiceRequest">
<copy>
<from>
<literal>
<invoice>
<buyerId>entity-02</buyerId>
<sellerId>entity-03</sellerId>
<price>
<currency>CZK</currency>
<value>1000000</value>
</price>
</invoice>
</literal>
</from>
<to variable="newInvoice" part="parameters" />
</copy>
</assign>
<invoke
name="InsertNewInvoice"
partnerLink="InvoiceRegistryPartnerLink"
operation="insertNewInvoice"
inputVariable="newInvoice"
outputVariable="response" />
</sequence>
</process>
返回以下错误消息:
Requested resource not found!
在哪里可以找到WSDL文件?除了手动向流程发送SOAP消息之外,还有其他方法启动流程吗
除了手动发送SOAP,还有什么方法可以启动该流程
给它留言
不,没有。每个流程都需要一个启动活动。我想知道为什么ODE部署首先是您的流程,但这可能就是为什么没有WSDL的原因。引述:
WS-BPEL中流程实例的创建总是隐式的;
接收消息的活动(即,
活动和
活动)可以注释以指示
该活动导致创建业务流程的新实例
创建。这是通过设置该属性的createInstance
属性来实现的
“是”的活动。。。。
启动活动是一个
或一个
活动,用
createInstance=“yes”
属性。[SA00015]每个可执行业务
进程必须至少包含一个启动活动
因此,例如,您应该在分配
之前包含一个接收
活动。为了实现这一点,您还需要一个入站(myRole
)partnerLink
。这是您的流程正在实现的接口。它应该是这样的:
<partnerLinks>
<partnerLink
name="InvoiceRegistryPartnerLink" ... />
<partnerLink
name="MyRolePartnerLink"
partnerLinkType="invrwsdl:MyRolePartnerLinkType"
myRole="BPELServiceRole" />
</partnerLinks>
...
<receive partnerLink="MyRolePartnerLink" portType="MyPortType" operation="SomeStartingOperation" createInstance="yes" />
...
...
...
如果您已经有了流程正在实现的WSDL,那么只需替换portType
和操作
名称等。如果您还没有定义partnerLink
,那么您可能还需要定义一个partnerLink
<partnerLinks>
<partnerLink
name="InvoiceRegistryPartnerLink" ... />
<partnerLink
name="MyRolePartnerLink"
partnerLinkType="invrwsdl:MyRolePartnerLinkType"
myRole="BPELServiceRole" />
</partnerLinks>
...
<receive partnerLink="MyRolePartnerLink" portType="MyPortType" operation="SomeStartingOperation" createInstance="yes" />
...