Wso2 使用Jaggery WSStub访问ESB代理时出错

Wso2 使用Jaggery WSStub访问ESB代理时出错,wso2,wso2esb,jaggery-js,Wso2,Wso2esb,Jaggery Js,我创建了一个web服务,能够从服务器端Jaggery.js脚本向它发送请求,没有问题。然后,我在WSO2 ESB中创建了一个WSDL代理服务,并使用“Try it!”特性对其进行了测试 在我将服务器端脚本从原始web服务重定向到ESB内的代理之后,我在系统日志中发现了错误: 找不到操作的终结点引用(EPR)为/services/BpmAdderProcessProxy.BpmAdderProcessProxyHttpSoap11Endpoint,WSA Action=urn:anonOutInO

我创建了一个web服务,能够从服务器端Jaggery.js脚本向它发送请求,没有问题。然后,我在WSO2 ESB中创建了一个WSDL代理服务,并使用“Try it!”特性对其进行了测试

在我将服务器端脚本从原始web服务重定向到ESB内的代理之后,我在系统日志中发现了错误:

找不到操作的终结点引用(EPR)为/services/BpmAdderProcessProxy.BpmAdderProcessProxyHttpSoap11Endpoint,WSA Action=urn:anonOutInOpResponse。如果以前可以访问此EPR,请与服务器管理员联系

为了详细了解发生了什么,我激活了ESB的“SOAP消息跟踪器”。突然,我的服务器端脚本可以通过我的ESB代理访问Web服务。然后我停用了“SOAP消息跟踪器”,错误消息再次返回。我的服务器端脚本正确吗?或者调试工具是否修改调试代码的行为

我是一名JavaScript开发人员。实际上Jaggery和UES是针对像我这样的人的。我不应该查看Java代码内部,是吗?是否有JavaScript开发人员讨论WSO2 UES和Jaggery的论坛

我的服务器端代码如下:

<%

var x = request.getParameter("x");
var y = request.getParameter("y");
//var sum = parseInt(x) + parseInt(y);
var sum = add(parseInt(x), parseInt(y));

response.content = {
    success: true,
    data: {
        result: sum
    }
};

function add(x, y) {

    var ws = require('ws');

    var stub = new ws.WSStub("http://02-128:8280/services/BpmAdderProcessProxy?wsdl");

    var process = stub.services["BpmAdderProcessProxy"].operations["process"];

    var payloadTemplate = process.payloadXML();

    var payload = replaceQuestionMarks(payloadTemplate, arguments);

    var resultXml = process.request(payload);

    var resultValue = resultXml.children().text();

    return parseInt(resultValue);


}

function replaceQuestionMarks(template, values) {

    var i = 0;

    return template.replace(
        /\?/g, 
        function() { 
            return values[i++]; 
        }
    );

}

%>

在ESB v4.8.1中,默认情况下启用直通传输,它不支持基于SOAP主体的分派(它不构建消息,因此无法访问主体的第一个元素以查找操作)

  • 您可以将操作名称附加到端点url:
    http://host:8280/services/BpmAdderProcessProxy/OperationName

  • 您可以在WSO2 ESB中的代理配置(BpmAdderProcessProxy)中添加此参数:
    true

  • 您可以编辑wso2esb/repository/conf/axis2/axis2.xml并替换
    具有


您使用的是哪个版本的wso2 esb?你能改变它的配置吗?Jean Michel,谢谢你的评论。我使用的是wso2 esb的4.8.1版,我可以更改它的配置。我正在努力适应WSO2产品。很多事情对我来说都是新鲜事。让-米歇尔,第二个选择解决了我的问题。我以“源代码视图”模式打开了ESB代理服务配置,并将“parameter”元素粘贴在打开的“Proxy”标记的正下方。保存配置后,我禁用了“SOAP消息跟踪器”,并测试了我的Jaggery脚本。它起作用了。谢谢!