Java 具有SOAPBinding.ParameterStyle.BARE的Webercice要求所有方法(包括非WEBMETHOD)只有一个参数作为输入

Java 具有SOAPBinding.ParameterStyle.BARE的Webercice要求所有方法(包括非WEBMETHOD)只有一个参数作为输入,java,web-services,methods,parameters,bare,Java,Web Services,Methods,Parameters,Bare,我正在使用CXF2.x开发一个Web服务。 这是我的web服务类 @WebService(name = "XXXWS", targetNamespace = "http://www.XXX.com/XXXWS", portName = "XXXWSPort", serviceName = "XXXWSService") @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE) public class XXXWS {

我正在使用CXF2.x开发一个Web服务。 这是我的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;     
    }
}
所以如果 我只使用一个参数作为方法getServiceURL或的输入 我使用SOAPBinding.ParameterStyle.WRAPPED 然后红十字会就会解散。但这里需要有两个参数

我的问题是:如果我需要在这里使用2个参数,但仍然使用SOAPBinding.ParameterStyle.BARE,那么如何删除红十字。
我认为有一种方法可以配置Eclipse来消除这种错误

我发现了:必须为该Web服务创建一个接口SEI,然后创建该SEI的一个实现类。具有多个参数的方法将是仅保留在实现类中的私有方法。一切都会好的。不再需要红十字会了。

我想出来了:必须为该Web服务创建一个接口SEI,然后是该SEI的一个实现类。具有多个参数的方法将是仅保留在实现类中的私有方法。一切都会好的。再也没有红十字会了。

看起来你遇到了一个

对于遇到这种情况而不想加载带有修复程序的更新的任何人来说,bug报告提到了解决问题的这种变通方法。不过,请注意,这可能不是每个人的长期选择,因为这也可能隐藏合法错误,但在Maven/CXF生成WS类的大多数情况下,这并不重要:

转到项目的属性。 导航到Java编译器>注释处理>工厂路径。 查找org.eclipse.jst.ws.annotations.core的条目在我的例子中,它是最后一个条目,因为我最近才启用它并取消选中它。 允许eclipse进行重建,错误突出显示应该消失。
看起来你遇到了一个问题

对于遇到这种情况而不想加载带有修复程序的更新的任何人来说,bug报告提到了解决问题的这种变通方法。不过,请注意,这可能不是每个人的长期选择,因为这也可能隐藏合法错误,但在Maven/CXF生成WS类的大多数情况下,这并不重要:

转到项目的属性。 导航到Java编译器>注释处理>工厂路径。 查找org.eclipse.jst.ws.annotations.core的条目在我的例子中,它是最后一个条目,因为我最近才启用它并取消选中它。 允许eclipse进行重建,错误突出显示应该消失。
 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