生成的WSDL中的空soapAction

时间:2012-07-13 07:45:11

标签: 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">
    <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>

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

1 个答案:

答案 0 :(得分:7)

您需要使用@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做的所有事情