【问题标题】:RESTlet 2.0 tutorial application does not work on appengineRESTlet 2.0 教程应用程序不适用于 appengine
【发布时间】:2011-04-07 19:51:42
【问题描述】:

我一直在玩following tutorial 提供的源代码。

GWT/GAE 应用程序在开发模式下工作,但是在部署时,服务器总是以 JSON 格式返回响应。

我正在使用 Restlet 2.0 测试 jars,并且还包含了依赖库。

谢谢

【问题讨论】:

  • 我将 Testing jars 切换到 Unstable jars,它现在可以工作了。
  • 顺便说一句,如果不是 JSON,所需的表示格式是什么?
  • gwt-rpc :D 我主要使用 restlet 与 android 客户端进行通信......也许也是一个公共 api。
  • 我曾经在 GAE 上使用过 Restlet。这给我带来了很多麻烦。从那以后,我一直在使用 Jersey,它开箱即用。

标签: google-app-engine rest gwt restlet restlet-2.0


【解决方案1】:

我遇到了您现在遇到的类似问题:

Restlet POSTing JSON to Appengine error

正如我在自己的回答中所描述的那样,经过多次摆弄,我设法让它工作了。

从那以后我切换到Jersey

【讨论】:

    【解决方案2】:

    需要考虑的两件事:

    版本

    服务器端应用需要使用 GAE 版本的 Restlet,客户端应用需要使用 GWT。两者都不够。因此,这两个应用程序是the tutorial archive 中的独立项目。因此,请确保为每一面使用适当的版本。

    对象/表示转换/序列化和扩展

    我相信在 Restlet 2.0 中,当一个使用 HTTP 方法注释的类方法返回一个 Java 对象,并且没有指定它应该如何序列化——转换为表示形式——那么 Restlet 将遵循任何 Restlet 扩展在实现这个的类路径中。

    在本教程中,服务器端应用程序包含这个 jar:“org.restlet.ext.jackson:用于生成联系人资源的 JSON 表示的 Jackson 扩展”——我认为这是响应为 JSON 的原因;框架遵循扩展,将对象转换为 JSON 表示。

    因此,例如,如果您希望框架自动将您的对象序列化为 XML,您可以从类路径中删除 Jackson 扩展 JAR,而改为包含 the XStream extension。我相信这会导致框架将对象序列化为 XML。

    ConverterService 的 wiki 页面列出了框架支持的各种转换,以及启用它们的模块。

    HTH!

    【讨论】:

    • 我一直在使用正确的版本。我在想客户端在 HTTP 标头中设置它接受什么格式作为返回类型,并且服务器端的框架会透明地返回正确的类型。这是正确的吗?看起来就像上面提到的教程一样。
    • 是的,这是有道理的。我确实认为类路径中的哪些扩展决定了转换器服务可以提供哪些格式。
    猜你喜欢
    • 2020-04-24
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 2013-11-30
    相关资源
    最近更新 更多