如何在javascript/ajax中基于Java的Soap Web服务?
问题描述:
为了测试目的,我必须提供一个.jsp页面(index.jsp)以及我的Web服务项目。 基本上.jsp页面有一个文本,用于在其提交的SOAP响应会阅读SOAP请求字符串&。如何在javascript/ajax中基于Java的Soap Web服务?
我“javax.xml.ws.Service &调度”类,它的正常工作尝试过。 但现在我被要求提供一个基于javascript/ajax的代码。
任何人可以帮助我对此。
我在这里给一个样本.wsdl文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://zensar.com/greeting" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Greeting"
xmlns:grtng="http://zensar.com/greeting/schema"
targetNamespace="http://zensar.com/greeting">
<wsdl:types>
<xsd:schema targetNamespace="http://zensar.com/greeting">
<xsd:import namespace="http://zensar.com/greeting/schema"
schemaLocation="Greeting.xsd"></xsd:import>
</xsd:schema>
</wsdl:types>
<wsdl:message name="GreetingRequest">
<wsdl:part element="grtng:GreetingRequest" name="GreetingRequest" />
</wsdl:message>
<wsdl:message name="GreetingResponse">
<wsdl:part element="grtng:GreetingResponse" name="GreetingResponse" />
</wsdl:message>
<wsdl:portType name="GreetingPort">
<wsdl:operation name="Greeting">
<wsdl:input message="tns:GreetingRequest" />
<wsdl:output message="tns:GreetingResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="Greeting" type="tns:GreetingPort">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="Greeting">
<soap:operation soapAction="http://zensar.com/GreetingWS/Greeting" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Greeting">
<wsdl:port binding="tns:Greeting" name="Greeting">
<soap:address location="http://localhost:8085/Greeting/services" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>**
答
就个人而言,我会说,直接通过JavaScript使用Web服务是有点自虐。
在我看来,调用服务器端方法(无论是什么样的架构,c#,java,php等)都会更容易,然后执行CURL请求并将响应发送回前端结束。
手工编写了一个SOAP端点在JavaScript似乎只是毫无意义时,你可以使用类似的Axis2在服务器端做SOAP握手的锅炉板重载。
我会考虑写一个JAX-RS在相同的业务逻辑/基于JSON的服务。与尝试从Javascript中使用SOAP相比,这应该不那么痛苦 – millimoose 2013-02-14 13:05:13
也可能JAX-WS也支持JSON +普通HTTP端点以用于“常规”/非REST Web服务。 – millimoose 2013-02-14 13:07:17