Java 仅使用url从浏览器调用具有简单参数的SOAP web服务方法
如何控制是否可以通过URL从浏览器调用web服务方法 编写服务的平台(除其他外)(java与.net与xxx) 我知道基于.net的web服务提供了一个很好的接口来调用这些方法。 为什么基于java的应用程序不会出现这种情况? 既然在这两种情况下都是soap,那么它们的行为是否应该相同呢? net实现做了哪些java没有做的额外工作? 控制soap Web服务是否可由浏览器调用的必要配置设置/属性有哪些? 我在网上看到过很多例子,对于简单的参数,web服务方法似乎可以通过URL在浏览器中调用。 但就我而言,它似乎不起作用 我有一个工作的web服务(JAX-WS),wsdl如下:Java 仅使用url从浏览器调用具有简单参数的SOAP web服务方法,java,web-services,soap,wsdl,jax-ws,Java,Web Services,Soap,Wsdl,Jax Ws,如何控制是否可以通过URL从浏览器调用web服务方法 编写服务的平台(除其他外)(java与.net与xxx) 我知道基于.net的web服务提供了一个很好的接口来调用这些方法。 为什么基于java的应用程序不会出现这种情况? 既然在这两种情况下都是soap,那么它们的行为是否应该相同呢? net实现做了哪些java没有做的额外工作? 控制soap Web服务是否可由浏览器调用的必要配置设置/属性有哪些? 我在网上看到过很多例子,对于简单的参数,web服务方法似乎可以通过URL在浏览器中调用。
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6.
-->
<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6.
-->
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://services/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://services/" name="MYServiceService">
<types>
<xsd:schema>
<xsd:import namespace="http://services/" schemaLocation="http://example.com:8888/myservice?xsd=1" />
</xsd:schema>
</types>
<message name="getToken">
<part name="parameters" element="tns:getToken" />
</message>
<message name="getTokenResponse">
<part name="parameters" element="tns:getTokenResponse" />
</message>
<portType name="MYService">
<operation name="getToken">
<input message="tns:getToken" />
<output message="tns:getTokenResponse" />
</operation>
</portType>
<binding name="MYServicePortBinding" type="tns:MYService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<operation name="getToken">
<soap:operation soapAction="" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<service name="MYServiceService">
<port name="MYServicePort" binding="tns:MYServicePortBinding">
<soap:address location="http://example.com:8888/myservice" />
</port>
</service>
</definitions>
工作正常(如果通过客户端应用程序使用,我将成功获得方法输出)
但是,当我尝试通过浏览器使用时,会收到一条“没有可用的JAX-WS上下文信息”
消息
http://example.com:8888/myservice?wsdl
工作正常,但是
http://example.com:8888/myservice/getToken?param0=xxx¶m1=yyy
向我提供了上述信息param0、param1
与我在实现中使用的名称相同,它们都是String
类型
我在JRE 1.6环境中作为一个独立的Java程序托管web服务。您的问题实际上是
如何通过http get调用jax ws web服务。浏览器使用HTTPGET而不是HTTPPOST,这是jax ws所需要的。如果您使用ApacheCXF,我认为您可以做您想做的事情。因为他们以某种方式处理它,然后将它传递给jax-ws,它们在内部使用它。我不知道.net做什么,但我相信类似于cxf的东西。