Java 生成的WSDL中的空soapAction

Java 生成的WSDL中的空soapAction,java,web-services,soap,jax-ws,Java,Web Services,Soap,Jax Ws,我正在尝试使用JAX-WS从Java代码生成WSDL 除了我在WSDL中的操作,soapAction仍然是空的之外,一切似乎都正常工作 这是我的密码: @WebService public class MyClass { public MyStuff queryStuff(String myParam) { return null; } } 生成的WSDL包含以下内容: <wsdl:operation name="queryStuff"> &

我正在尝试使用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>


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

你需要用
@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;
}

注意:示例中的许多注释都不是必需的,但我将其放在这里是为了向您展示在不添加
@WebMethod
注释的情况下使用JAX-WS可以做的所有事情,确保JAX-WS不会生成任何操作。您能用带注释的方法和完整生成的WSDL更新您的问题吗?为了帮助我们,您可以在问题中添加的另一件事是您的jax ws端点配置,它解释了您如何生成/发布web服务以及如何获取WSDL。我意识到了我的错误。我使用的是一个Eclipse插件(我猜这里是这样),它无法识别@WebMethod注释。使用wsgen工具,一切都很好,正如您所建议的那样。谢谢你的帮助!:)