使用ONLY url从浏览器调用带有简单参数的SOAP Web服务方法

时间:2014-08-20 18:16:19

标签: java web-services soap wsdl jax-ws

什么控制是否可以通过URL从浏览器调用Web服务方法?

创建服务的平台(以及其他内容)(java vs .net vs xxx)?

我知道基于.net的Web服务提供了一个很好的界面来调用方法。 为什么它不会发生在基于Java的? 既然在这两种情况下它都是肥皂,它们的表现是否相同? 什么是.net实现做额外的java没有? 有什么必要的配置设置/属性可以控制soap webservice是否可以被浏览器调用? 我已经看到很多在线示例,对于简单的参数,Web服务方法似乎可以通过URL调用浏览器。 但就我而言,它似乎没有用。

我有一个有效的Web服务(JAX-WS),wsdl如下:

<?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>

工作正常(如果通过客户端应用程序使用,我会成功获得方法输出)。

但是当我尝试使用浏览器时,我收到一条"No JAX-WS context information available"消息。

http://example.com:8888/myservice?wsdl工作正常,但

http://example.com:8888/myservice/getToken?param0=xxx&param1=yyy向我提供了上述消息。 param0,param1与我在实现中使用的名称相同,它们都是String类型。

我在JRE 1.6环境中托管Web服务,作为一个独立的Java程序。

0 个答案:

没有答案