Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 仅使用url从浏览器调用具有简单参数的SOAP web服务方法_Java_Web Services_Soap_Wsdl_Jax Ws - Fatal编程技术网

Java 仅使用url从浏览器调用具有简单参数的SOAP web服务方法

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在浏览器中调用。

如何控制是否可以通过URL从浏览器调用web服务方法

编写服务的平台(除其他外)(java与.net与xxx)

我知道基于.net的web服务提供了一个很好的接口来调用这些方法。 为什么基于java的应用程序不会出现这种情况? 既然在这两种情况下都是soap,那么它们的行为是否应该相同呢? net实现做了哪些java没有做的额外工作? 控制soap Web服务是否可由浏览器调用的必要配置设置/属性有哪些? 我在网上看到过很多例子,对于简单的参数,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>

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

但是,当我尝试通过浏览器使用时,会收到一条
“没有可用的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的东西。