我正在使用wso2esb4.8.0和wso2bps3.0.1,而我正在使用2台服务器,两者都工作正常。但是我希望为我编写的示例BPEL包含两个服务器 示例BPLE文件是这样的
<bpel:process name="multiply2integers"
targetNamespace="http://wso2.org/bps/sample"
suppressJoinFailure="yes"
xmlns:tns="http://wso2.org/bps/sample"
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
>
<!-- Import the client WSDL -->
<bpel:import location="multiply2integersArtifacts.wsdl" namespace="http://wso2.org/bps/sample"
importType="http://schemas.xmlsoap.org/wsdl/" />
<!-- ================================================================= -->
<!-- PARTNERLINKS -->
<!-- List of services participating in this BPEL process -->
<!-- ================================================================= -->
<bpel:partnerLinks>
<!-- The 'client' role represents the requester of this service. -->
<bpel:partnerLink name="client"
partnerLinkType="tns:multiply2integers"
myRole="multiply2integersProvider"
/>
</bpel:partnerLinks>
<!-- ================================================================= -->
<!-- VARIABLES -->
<!-- List of messages and XML documents used within this BPEL process -->
<!-- ================================================================= -->
<bpel:variables>
<!-- Reference to the message passed as input during initiation -->
<bpel:variable name="input"
messageType="tns:multiply2integersRequestMessage"/>
<!--
Reference to the message that will be returned to the requester
-->
<bpel:variable name="output"
messageType="tns:multiply2integersResponseMessage"/>
</bpel:variables>
<!-- ================================================================= -->
<!-- ORCHESTRATION LOGIC -->
<!-- Set of activities coordinating the flow of messages across the -->
<!-- services integrated within this business process -->
<!-- ================================================================= -->
<bpel:sequence name="main">
<!-- Receive input from requester.
Note: This maps to operation defined in multiply2integers.wsdl
-->
<bpel:receive name="start" partnerLink="client"
portType="tns:multiply2integers"
operation="process" variable="input"
createInstance="yes"/>
<!-- Generate reply to synchronous request -->
<bpel:assign validate="no" name="Assign">
<bpel:copy>
<bpel:from>
<bpel:literal>
<tns:multiply2integersResponse xmlns:tns="http://wso2.org/bps/sample" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><tns:mul>0</tns:mul>
</tns:multiply2integersResponse>
</bpel:literal>
</bpel:from>
<bpel:to variable="output" part="payload"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from>
<![CDATA[$input.payload/tns:c*$input.payload/tns:d]]>
</bpel:from>
<bpel:to part="payload" variable="output">
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[tns:mul]]></bpel:query>
</bpel:to>
</bpel:copy>
</bpel:assign>
<bpel:reply name="end"
partnerLink="client"
portType="tns:multiply2integers"
operation="process"
variable="output"
/>
</bpel:sequence>
</bpel:process>
即使我也在发布我的bpel wsdl 如果我尝试使用wso2bps TRYIT工具,它的工作正常,但用wso2esb调用时无效 WSDL文件是
<?xml version="1.0"?>
<definitions name="multiply2integers"
targetNamespace="http://wso2.org/bps/sample"
xmlns:tns="http://wso2.org/bps/sample"
xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPE DEFINITION - List of types participating in this BPEL process
The BPEL Designer will generate default request and response types
but you can define or import any XML Schema type and use them as part
of the message types.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<types>
<schema attributeFormDefault="unqualified" elementFormDefault="qualified"
targetNamespace="http://wso2.org/bps/sample"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="multiply2integersRequest">
<complexType>
<sequence>
<element name="c" type="int"/>
<element name="d" type="int"/>
</sequence>
</complexType>
</element>
<element name="multiply2integersResponse">
<complexType>
<sequence>
<element name="mul" type="int"/>
</sequence>
</complexType>
</element>
</schema>
</types>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MESSAGE TYPE DEFINITION - Definition of the message types used as
part of the port type defintions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<message name="multiply2integersRequestMessage">
<part name="payload" element="tns:multiply2integersRequest"/>
</message>
<message name="multiply2integersResponseMessage">
<part name="payload" element="tns:multiply2integersResponse"/>
</message>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PORT TYPE DEFINITION - A port type groups a set of operations into
a logical service unit.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- portType implemented by the multiply2integers BPEL process -->
<portType name="multiply2integers">
<operation name="process">
<input message="tns:multiply2integersRequestMessage" />
<output message="tns:multiply2integersResponseMessage"/>
</operation>
</portType>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PARTNER LINK TYPE DEFINITION
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<plnk:partnerLinkType name="multiply2integers">
<plnk:role name="multiply2integersProvider" portType="tns:multiply2integers"/>
</plnk:partnerLinkType>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BINDING DEFINITION - Defines the message format and protocol details
for a web service.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<binding name="multiply2integersBinding" type="tns:multiply2integers">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="process">
<soap:operation
soapAction="http://wso2.org/bps/sample/process" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SERVICE DEFINITION - A service groups a set of ports into
a service unit.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<service name="multiply2integers">
<port name="multiply2integersPort" binding="tns:multiply2integersBinding">
<soap:address location="http://*********:8080/multiply2integers" />
</port>
</service>
</definitions>
并且我编写了示例代理,它将调用下面的示例代理定义的BPEL端点
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="BPELProxy"
transports="https,http"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<property name="value1"
expression="//c/text()"
scope="default"
type="STRING"/>
<property name="value2"
expression="//d/text()"
scope="default"
type="STRING"/>
<payloadFactory media-type="xml">
<format>
<p:AddingPLRequest xmlns:p="http://wso2.org/bps/sample">
<c xmlns="http://wso2.org/bps/sample">$1</c>
<d xmlns="http://wso2.org/bps/sample">$2</d>
</p:AddingPLRequest>
</format>
<args>
<arg evaluator="xml" expression="get-property('c')"/>
<arg evaluator="xml" expression="get-property('d')"/>
</args>
</payloadFactory>
<log level="full"/>
<send>
<endpoint key="BPEL"/>
</send>
</inSequence>
<outSequence>
<send/>
</outSequence>
</target>
<description/>
</proxy>
defined endpoint view is my endpoint is
<endpoint xmlns="http://ws.apache.org/ns/synapse" name="BPEL">
<address uri="http://*************:9763/services/multiply2integers/" format="soap12">
<suspendOnFailure>
<progressionFactor>1.0</progressionFactor>
</suspendOnFailure>
<markForSuspension>
<retriesBeforeSuspension>0</retriesBeforeSuspension>
<retryDelay>0</retryDelay>
</markForSuspension>
</address>
</endpoint>
我从CURL命令向ESB发送请求我的CURL命令出错了。 curl -v -H“Accept:application / json”-H“Content-Type:application / json”-d'{“c”:“55”,“d”:“3”}'http:// ** * T:8282 /服务/ BPELProxy 如果我改变端点的格式,它显示错误,它显示一些其他错误错误日志,如此
[2014-01-13 15:20:01,070] INFO {org.wso2.carbon.core.services.util.CarbonAuthenticationUtil} - 'admin@carbon.super [-1234]' logged in at [2014-01-13 15:20:01,070+0530]
[2014-01-13 15:22:44,887] WARN {org.wso2.carbon.server.admin.module.handler.AuthenticationHandler} - Illegal access attempt at [2014-01-13 15:22:44,0886] from IP address null while trying to authenticate access to service StatisticsAdmin
[2014-01-13 15:22:44,887] ERROR {org.wso2.carbon.statistics.ui.StatisticsAdminClient} - Cannot get service stats for service multiply2integers. Backend server may be unavailable.
org.apache.axis2.AxisFault: The input stream for an incoming message is null.