【问题标题】:Apache ISIS extending Rest ServiceApache ISIS 扩展 Rest 服务
【发布时间】:2014-02-05 17:29:09
【问题描述】:

我可以将 Jersey 2.4.1 与 Apahce Isis 项目一起使用吗?

如果不能,我至少可以扩展现有的 RestEasy 服务以添加更多无法从域对象生成的请求路径(特定于应用程序)吗?

例如,我想使用 oAuth Rest URI 连接到 Linked in 或 Facebook。在 Apache ISIS 中有可能吗?

【问题讨论】:

    标签: isis


    【解决方案1】:

    你当然可以做后者;子类 RestfulObjectsApplication 并使用 addClass 注册您的附加资源,然后在 web.xml 中指定您的新子类

    【讨论】:

    • 您好,感谢您的回复。我之前试过这个,我犯了一个错误,现在纠正它。它可以工作,但我仍然不能与其他球衣罐子混合,比如 oauth2-client-2.4.1.jar,因为这个罐子使用 jax rs 2.0 api,而其余的容易使用 jsr311 api。所以我收到了一个奇怪的错误java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder; 我们如何在 UI 中显示 API 返回的响应?
    • 恐怕 RO 还没有升级到 JAX-RS 2.0,所以这行不通。如果您愿意,请提高票证。但是你知道... RO 查看器将在今年晚些时候完成一些重要的工作,以支持 Isis 的下一代查看器(预计是一个单页应用程序,使用 AngularJS)。所以无论如何我都会在那个时候升级它。同时,我怀疑你可以在 RO 查看器旁边运行 Jersey;毕竟,它们只是 servlet。这就是我们在 Isis 中所做的,我们在同一个 webapp 中同时拥有 Wicket 和 RO 查看器。可能值得一试?
    • 我尝试将 Jersey 与 RO 查看器一起运行,但未能成功。但是我可以构建一个 Wicket UI 来重定向/显示 REST API 响应吗?我正在尝试构建 Web 应用程序来处理各种 oAuth 客户端请求(用于 google、facebook、linked、Salesforce 等)。我正在创建域对象来存储客户端 ID、客户端密码、重定向 uri 等属性。理想情况下,我希望有一个按钮可以触发 oAuth 流,即授予身份验证代码,然后获取令牌。您能否建议我在 ISIS 中实现这一目标的方法?这对我有很大帮助。完成后我也会发布代码,谢谢!
    • 嗯,我不确定我是否真的按照您的要求去做(即使我做到了,我也不是 oAuth 方面的专家......)当您谈论拥有域对象时使用客户端 ID、重定向 Uri 等,听起来您希望 Isis 对身份验证域本身进行建模?如果是这样,我想它们可以通过 RO 出现,但是您的解决方案中需要一些其他组件充当 RO 客户端,实际调用这些 oAuth 提供程序,然后使用 RO/Isis 存储状态。但如果我有这个权利,我认为你的要求可能比 Isis 更匹配......
    • 好的,让我用一个例子来解释一下,ga-dev-tools.appspot.com/explorer 打开此链接后,您将看到一个用于 Google Analytics API 的查询浏览器。为了首先执行查询,我们需要授权访问,这是右上角的一个按钮,一旦单击它就会打开一个带有 URL 的外部窗口(发生 oAuth 流程)。一旦我们获得令牌,我们就可以触发查询并获取结果。我想为 LinkedIn、Salesforce、Facebook 等其他提供商构建类似的 Web 应用程序。我需要做的就是存储连接属性进行 oAuth 调用获取令牌并访问资源。
    猜你喜欢
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 2017-10-21
    • 2015-07-07
    • 1970-01-01
    • 2021-12-24
    相关资源
    最近更新 更多