我正在使用@WebService@WebMethod@WebParam批注从Java类生成WSDL。 WSDL已生成,并且包含@WebService@WebMethod的输出,但是@WebParam注释似乎被忽略了。

这是一个存在此问题的方法声明:

@WebMethod(action = "jmsServiceInitialise")
public boolean jmsServiceInitialise(
        @WebParam(name = "queue") String queueName,
        @WebParam(name = "channel") String channel,
        @WebParam(name = "hostname") String hostName,
        @WebParam(name = "port") String port,
        @WebParam(name = "requiresresponse") boolean requiresResponse) {
    log.info("jmsServiceInitialise " + queueName + ": started");
    // etc
    return returnValue;
}


WSDL文件不包含任何参数,但是方法就在那里。该方法可以称为Web服务,但String参数值均为null

我最初在Eclipse中遇到此问题,但此后在命令行(Windows,JAX-WS RI 2.2.4-b01)上用wsgen复制了该问题,并获得了相同的结果。

我想念什么?

谢谢。

最佳答案

@WebResult注释之后,将@WebMethod注释添加到方法

使@WebMethod(operationName = "jmsServiceInitialise")代替动作

09-20 20:27