我正在使用 cxf 2.x 开发 web 服务。这是我的网络服务类
@WebService(name = "XXXWS", targetNamespace = "http://www.XXX.com/XXXWS", portName = "XXXWSPort", serviceName = "XXXWSService")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
public class XXXWS {
@WebMethod(operationName = "XXXMethod", action = "http://www.XXX.com/XXXWS/XXXX")
public XXXResponse XXXMethod(
@WebParam(name = "XXXRequest") XXXRequest xxxRequest) {
// implement code here
return response;
}
private static String getServiceURL(Environment env, String actionCode){ //<-- RED CROSS here
//implement code here
return url;
}
}
在 Eclipse 中,getServiceURL 方法有一个 RED CROSS(这只是一个常规方法,而不是 WEBMETHOD)。它说
Multiple markers at this line
- Document Literal Bare operations must have unique XML elements for the input and output messages across all operations on the
Web Service : '{http://www.XXX.com/XXXWS}getServiceURL'
- Document literal bare methods may have only one non-header IN parameter
因此,如果我只使用一个参数作为方法 getServiceURL 的输入,或者我使用 SOAPBinding.ParameterStyle.WRAPPED,那么 RED CROSS 将消失。但我需要在这里有 2 个参数。
我的问题是:如果我需要在这里使用 2 个参数并且仍然使用 SOAPBinding.ParameterStyle.BARE,我该如何删除 RED CROSS。我认为有一种方法可以配置 Eclipse 来消除这种错误