【问题标题】:Getting REST Resource path in EAR file在 EAR 文件中获取 REST 资源路径
【发布时间】:2014-10-02 21:36:34
【问题描述】:

我有一个包含 Rest Web 服务 EJB 的 EJB 项目。我将此 EJB.jar 项目与 WAR 项目一起打包到一个 EAR 文件中。那么我的 Rest Web Service 的绝对路径是什么?

【问题讨论】:

  • 这取决于服务器名称和ear/war文件部署的上下文。
  • @hooknc 你能举个例子吗?比如 localhost:8080/?/?。我正在使用 Glassfish 4。
  • 我没有直接使用 EAR 文件。但是从我刚刚阅读的内容来看,“上下文根”是在您的 EAR 配置中设置的。所以这是我能给你的最好的网址localhost:8080/<context-root>/<url-to-rest-resource>。如果您确定您的 context-root 为空或为空,那么您的应用程序将部署在根上下文中,并且您的 url 看起来接近:localhost:8080/<url-to-rest-resource>。

标签: java rest jakarta-ee ejb jax-rs


【解决方案1】:

我的问题似乎是由于包含 EJB REST Web 服务的 EJB JAR 文件与 WAR 文件一起打包在 EAR 文件中。我读过你可以在 EJB JAR 文件中使用 JAX-RS,但我不知道这个 JAR 文件必须打包在动态 Web 项目(WAR 文件)的 WEB-INF/lib 文件夹中)。 According to this link, 不支持将 JAX-RS EJB 包含在 EAR 文件中。

【讨论】:

  • 确实,在 EAR 中包含的单独的 ejb-jar 文件中不支持带有 JAX-RS 注释的企业 bean。
  • 这仍然有效吗?我正面临样本问题,ejb和war是分开部署的。
【解决方案2】:

很高兴您已经找到了答案。
在我看来,将无状态 EJB bean 公开为 restfull 服务很快,但通常不是最好的方法。

通常,最好在 web 模块中创建 restfull 端点类,以包装来自 ejb 服务的错​​误/异常。这也是做一些翻译等的好地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-09
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多