【问题标题】:Empty soapAction in generated WSDL生成的 WSDL 中的空 soapAction
【发布时间】:2012-07-13 07:45:10
【问题描述】:

我正在尝试使用 JAX-WS 从我的 Java 代码生成 WSDL。

似乎一切正常,除了我在 WSDL 中的操作,soapAction 保持为空。

这是我的代码:

@WebService
public class MyClass {
    public MyStuff queryStuff(String myParam) {
        return null;
    }
}

生成的 WSDL 包含以下内容:

<wsdl:operation name="queryStuff">
    <wsdlsoap:operation soapAction=""/>
    <wsdl:input name="queryStuffRequest">
        <wsdlsoap:body use="literal"/>
    </wsdl:input>
    <wsdl:output name="queryStuffResponse">
        <wsdlsoap:body use="literal"/>
    </wsdl:output>
</wsdl:operation>

我不知道我做错了什么。有什么想法吗?

【问题讨论】:

    标签: java web-services soap jax-ws


    【解决方案1】:

    你需要用@WebMehtod注释你的方法。

    示例

    @WebService(name = "dataService", targetNamespace = "http://example.com/vap/webservice/dataservice/definition")
    @SOAPBinding(style = Style.DOCUMENT, use = Use.LITERAL, parameterStyle = ParameterStyle.WRAPPED)
    public interface DataSEI {
    
        @WebMethod(action = "createAction", operationName = "create")
        DataTransferObjectStatusContainer create(
                @WebParam(name = "objects", targetNamespace = "http://example.com/vap/webservice/dataservice/definition")
                DataTranferObjectContainer pObjectsContainer,
                @WebParam(name = "atomic", targetNamespace = "http://example.com/vap/webservice/dataservice/definition")
                boolean pAsAtomicOperation) throws Fault;
    }
    

    注意:示例中的许多注释不是必需的,但我将其放在那里是为了向您展示使用 JAX-WS 可以做的所有事情

    【讨论】:

    • 如果不添加@WebMethod 注解,JAX-WS 肯定不会产生任何动作。您可以使用带注释的方法和完整生成的 WSDL 来更新您的问题吗?您可能会添加到您的问题中以帮助我们帮助您的另一件事是您的 jax-ws 端点配置,说明您如何生成/发布 Web 服务以及如何获取 WSDL。
    • 我意识到我的错误。我使用的 Eclipse-Plugin(我猜这里)无法识别 @WebMethod-Annotation。正如您所建议的,使用 wsgen 工具一切正常。感谢您的帮助! :)
    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多