我是bpel的新手,我只是在测试一个If-else。我使用eclipse创建的bpel文件是:IfElseSample.bpel
它成功部署,没有错误,但当我尝试使用简单的代码测试它时,如:
try {
tps.bpel.ifelse.IfElseSample_Service service = new tps.bpel.ifelse.IfElseSample_Service();
tps.bpel.ifelse.IfElseSample port = service.getIfElseSamplePort();
tps.bpel.ifelse.IfElseSampleRequest payload = new tps.bpel.ifelse.IfElseSampleRequest();
payload.setInput("John");
tps.bpel.ifelse.IfElseSampleResponse result = port.process(payload); //Exception occur here
System.out.println("Result = "+result);
} catch (Exception ex) {
System.out.println("Exception=> "+ex);
}
我得到一个异常错误:
javax.xml.ws.soap.SOAPFaultException:axis2ns6575:selectionFailure
这里也是所有的my eclipse project.和我用途:
- apache-tomcat-7.0.23
- Apache-ode-war-1.3.5
1.适用于Web开发人员的Eclipse Java EE IDE。版本:靛蓝Service Release 1
谢谢。
1条答案
按热度按时间ua4mk5z41#
BPEL标准要求在对变量执行XPath查询之前对其进行初始化。在您的示例中,您正在为未初始化的输出变量赋值。由于未初始化的变量为空,XPath表达式
tns:result
没有选择任何节点,因此抛出selectionFailure。您需要首先初始化变量(例如,在开始的<assign>
活动中)。Eclipse BPEL设计器可以为您完成此操作(它通常会询问您是否要初始化变量)。代码应大致如下所示: