我有一个SOAP网络服务,所提供服务的详细信息包括:webservice name:" xyz",username:" Ashish",class name:" Initializer"和方法名称:" Fetchvalue"。我必须调用方法" Fetchvalue"其中一个对象是" Initializer"用作参数。我正在使用SAP UI5开发一个Web应用程序,我尝试了很多方法来调用此方法,但无法为此获得正确的解决方案。您能否告诉我如何使用特定的requiremenst调用此方法,从而获得Web服务所需的输出。
答案 0 :(得分:1)
可以从UI5应用程序调用SOAP方法,但没有特定的UI5组件可以帮助您。这意味着您只需要处理由jQuery提供的低级函数或直接调用XMLHttpRequest。
为此目的,jQuery有一个特定的soap plugin,这使得调用SOAP方法变得非常简单:
$.soap({
url: 'http://my.server.com/soapservices/',
method: 'helloWorld',
data: {
name: 'Ashish Jain',
msg: 'Hi!'
},
success: function (soapResponse) {
// do stuff with soapResponse
},
error: function (SOAPResponse) {
// show error
}
});
请注意,最终调用是使用XMLHttpRequest进行的,这需要在托管SOAP服务的服务器上设置CORS头。或者,您可以在托管UI5应用程序的服务器上设置代理,该代理链接到托管SOAP服务的服务器。如果您走这条路,您可能还想看看是否可以使用此代理层将SOAP转换为JSON。这样您就可以轻松地使用UI5应用程序中的JSONModel,这样可以在UI端更轻松,更清晰。
由于您提到您必须使用用户名和密码调用SOAP服务,因此我认为在此答案中必须谨慎。 UI5应用程序在最终用户的浏览器中运行。这意味着您的最终用户可以查看您的Javascript代码。因此,在您的Javascript代码中使用用户名和密码是不好的做法。您可能希望查看是否可以将身份验证推送到代理的SOAP端点。