Java 在Tapestry 5中返回非HTML、非JSON http正文?

Java 在Tapestry 5中返回非HTML、非JSON http正文?,java,oauth,tapestry,Java,Oauth,Tapestry,我必须在一个使用Tapestry5的项目中实现OAuth协议的服务提供者。因此,我只需要返回一个非常简单的HTTP响应体,它既不是HTML也不是JSON 起初,我尝试使用标准的tml&pojo(java类,page)方法,但这不起作用,因为Tapestry试图解析模板 所以我想我必须尝试一些不同的东西。是否可以在页面中使用render()方法?但是我找不到任何可以回答这个问题的文档 还是我应该使用另一个更适合我需要的框架 谢谢你的建议 Richard您可以直接从页面流式传输文本,而无需使用模板:

我必须在一个使用Tapestry5的项目中实现OAuth协议的服务提供者。因此,我只需要返回一个非常简单的HTTP响应体,它既不是HTML也不是JSON

起初,我尝试使用标准的tml&pojo(java类,page)方法,但这不起作用,因为Tapestry试图解析模板

所以我想我必须尝试一些不同的东西。是否可以在页面中使用render()方法?但是我找不到任何可以回答这个问题的文档

还是我应该使用另一个更适合我需要的框架

谢谢你的建议


Richard

您可以直接从页面流式传输文本,而无需使用模板:

StreamResponse onActivate() {
  return new StreamResponse(
    public String getContentType() {
      return "text/plain";
    }

    public InputStream getStream() {
      return new ByteArrayInputStream("foo=bar".getBytes());
    }

    public void prepareResponse(Response response) {
      // response.setHeader(...
    }
}

如果您在很多页面上都这样做,我认为您可以提供自己的DocumentLinker,让您绕过Tapestry默认添加到页面中的所有xml/html/head内容。然后你可以继续使用模板。

Brian将我推向了正确的方向,但问题的实际解决方案更简单:

StreamResponse onActivate() {
     return new TextStreamResponse("text/plain", "foo=bar");
}

非常感谢你给我指明了正确的方向。我的解决方案更简单。很好,我不知道TextStreamResponse。