Java 如何覆盖Struts2REST插件中的XML处理程序

Java 如何覆盖Struts2REST插件中的XML处理程序,java,rest,struts2,Java,Rest,Struts2,我正在开发一个使用Struts 2和REST插件的Java web应用程序。按照惯例,任何以“.xml”结尾的URL都将通过XStreamHandler发送。这很好,在大多数情况下,这正是我想要的 但在少数情况下,我希望将XML流式传输回浏览器。我知道如何设置@Result(type=“stream”)注释并使其返回InputStream。我已经在应用程序的其他部分对图像进行了此操作。将XML作为流返回的问题是REST插件发现调用方正在请求XML,因此它尝试反序列化Action类,而不是将Inp

我正在开发一个使用Struts 2和REST插件的Java web应用程序。按照惯例,任何以“.xml”结尾的URL都将通过XStreamHandler发送。这很好,在大多数情况下,这正是我想要的

但在少数情况下,我希望将XML流式传输回浏览器。我知道如何设置@Result(type=“stream”)注释并使其返回InputStream。我已经在应用程序的其他部分对图像进行了此操作。将XML作为流返回的问题是REST插件发现调用方正在请求XML,因此它尝试反序列化Action类,而不是将InputStream流出来

在这几个特殊情况下,我如何告诉REST插件不要通过XStreamHandler发送XML结果


谢谢

哦,酷,我找到了答案。秘密在于返回实现
com.opensymphony.xwork2.Result
的类的实例

假设“getFileName()”返回要流式处理的XML文件的名称:

@SkipValidation
public com.opensymphony.xwork2.Result streamFile() throws FileNotFoundException {
    return new StreamResult(new FileInputStream(new File(getFileName())));
}

哦,酷,我找到了答案。秘密在于返回实现
com.opensymphony.xwork2.Result
的类的实例

假设“getFileName()”返回要流式处理的XML文件的名称:

@SkipValidation
public com.opensymphony.xwork2.Result streamFile() throws FileNotFoundException {
    return new StreamResult(new FileInputStream(new File(getFileName())));
}