我使用的是oracle bpel designer for eclipse插件.在编译我的bpel工程时,出现下面的问题:
Buildfile: E:\sw-study\workspace\SyncHelloWorld\build.xmlmain:
       [bpelc] BPEL 验证失败.
       [bpelc] BPEL 源代码验证失败, 错误为: 
       [bpelc] 
       [bpelc]  [错误 ORABPEL-10071]: xpath 函数未解析
       [bpelc]  [说明]: 无法解析 xpath 函数 "", 原因为 function "bpws:getVariableData" not registered 的 "E:\sw-study\workspace\SyncHelloWorld\SyncHelloWorld.bpel" 的第 35 行。
       [bpelc]  [可能的修复]: 请确保在域配置目录下的 xpath-functions.xml 文件中注册此函数, 并确保函数前缀映射到 <process> 活动中正确的名称空间。
       [bpelc] 。BUILD FAILED
E:\sw-study\workspace\SyncHelloWorld\build.xml:28: Validation error其中第35行为:
<from expression="concat('Hello', bpws:getVariableData('input','payload','/tns:SyncHelloWorldRequest/tns:input'))"></from>
我的SyncHelloWorld.bpel文件内容如下:<!-- SyncHelloWorld BPEL Process [Generated by the Oracle BPEL Designer] -->
<process name="SyncHelloWorld" targetNamespace="http://acm.org/samples" suppressJoinFailure="yes" xmlns:tns="http://acm.org/samples" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
<!-- ================================================================= -->
<!-- PARTNERLINKS                                                      -->
<!-- List of services participating in this BPEL process               -->
<!-- ================================================================= -->
<partnerLinks>
<!-- The 'client' role represents the requester of this service. -->
<partnerLink name="client" partnerLinkType="tns:SyncHelloWorld" myRole="SyncHelloWorldProvider"/>
</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="input" messageType="tns:SyncHelloWorldRequestMessage"/>
<!-- 
          Reference to the message that will be returned to the requester
          -->
<variable name="output" messageType="tns:SyncHelloWorldResponseMessage"/>
</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 requester. 
             Note: This maps to operation defined in SyncHelloWorld.wsdl 
             -->
<receive name="receiveInput" partnerLink="client" portType="tns:SyncHelloWorld" operation="process" variable="input" createInstance="yes"/>
<assign name="creatReturnStr">
<copy>
<from expression="concat('Hello', bpws:getVariableData('input','payload','/tns:SyncHelloWorldRequest/tns:input'))"></from>
<to variable="output" part="payload" query="/tns:SyncHelloWorldResponse/tns:result"/>
</copy>
</assign>
<reply name="replyOutput" partnerLink="client" portType="tns:SyncHelloWorld" operation="process" variable="output">
<bpeld:annotation xmlns:bpeld="http://schemas.oracle.com/bpel/eclipse/designer">
<bpeld:meta map.label="process (client)"/>
</bpeld:annotation>
</reply>
<!-- Generate reply to synchronous request -->
</sequence>
</process>我是初学bpel,有很多不懂的地方,如果能留下您的联系方式最好(
MSN:[email protected]
)