为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这个 jersey-ejb 示例失败了?

为什么这个 jersey-ejb 示例失败了?

翻过高山走不出你 2021-07-05 17:47:07
建设和Jersey项目部署EJB例子这里 在Netbeans的8.2使用JDK 8和Glassfish 4.1 OSX,该项目构建了一个战争和部署好,但随后给出了Glassfish的日志中的以下问题:“...org.glassfish.jersey.examples.jersey_ejb.entities.Message 在 SERVER 运行时中注册没有实现任何适用于 SERVER 的提供程序接口”..(并且在屏幕上显示关于 javax.ejb.EJBException 的错误)我发现了类似的 SO 问题: Restful webservices - NoClassDefFoundError: org/glassfish/jersey/ExtendedConfig 其中解决方案是将 jersy-common 添加到类路径。我将它添加到/Users/myusername/GlassFish_Server/glassfish/lib文件夹中。该应用程序现在可以正常工作。我想知道它为什么失败,它是否是示例中的错误,以及是否有比此手动 jar 副本更好的解决方案。在 glassfish 日志的早期,它谈到了捆绑配置器错误:警告:跳过条目,因为它不是绝对 URI。后来使用该问题的问题类org.glassfish.jersey.examples.jersey_ejb.entities.Message是唯一使用可移植 JNDI 名称的类:信息:访问未访问的引用信息:EJB MessageListWriter 的可移植 JNDI 名称:[java:global/jersey-examples-ejb/MessageListWriter, java:global/jersey-examples-ejb/MessageListWriter!javax.ws.rs.ext.MessageBodyWriter]谁能提供更好的解决方案,或修复比 jar 副本更好的项目(我应该“必须”做)?(链接到完整的 glassfish 输出https://gist.github.com/systemsincode/26afac851a72387047f62fe1803e089b)
查看完整描述

1 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

Glasfish 的版本太旧了。

我正在使用来自最新泽西岛的代码,即 2.28

根据这个博客运行 unzip -p modules/jersey-common.jar META-INF/MANIFEST.MF | glassfish 目录中的 grep Bundle-Version 应该为您提供运行时版本。

在 Glassfish 4.1 中,我得到 Bundle-Version: 2.10.4

在 Glassfish 5 中,我得到了 Bundle-Version: 2.26.0

我可能通过在 lib 目录中包含公共库来解决一个重大更改,覆盖提供的版本。但是,如果您确实必须更新 glassfish 4.1,请按照上述博客中更完整的说明进行操作。


查看完整回答
反对 回复 2021-07-14
  • 1 回答
  • 0 关注
  • 173 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信