Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么这个jersey ejb示例失败了?_Java_Rest_Jersey_Jax Rs_Glassfish 4.1 - Fatal编程技术网

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

Java 为什么这个jersey ejb示例失败了?,java,rest,jersey,jax-rs,glassfish-4.1,Java,Rest,Jersey,Jax Rs,Glassfish 4.1,在Jersey项目中构建和部署ejb示例 在Netbeans 8.2的OSX上使用JDK 8和Glassfish 4.1,项目构建war并部署ok,但Glassfish日志中出现以下问题: …org.glassfish.jersey.examples.jersey_ejb.entities.Message 在服务器运行时中注册不会实现任何提供程序 服务器中适用的接口。。 屏幕上有关于javax.ejb.EJBException的错误 我发现了一个类似的问题: 解决方案是将jersy common

在Jersey项目中构建和部署ejb示例 在Netbeans 8.2的OSX上使用JDK 8和Glassfish 4.1,项目构建war并部署ok,但Glassfish日志中出现以下问题:

…org.glassfish.jersey.examples.jersey_ejb.entities.Message 在服务器运行时中注册不会实现任何提供程序 服务器中适用的接口。。 屏幕上有关于javax.ejb.EJBException的错误

我发现了一个类似的问题: 解决方案是将jersy common添加到类路径中

我将其添加到/Users/myusername/GlassFish_Server/GlassFish/lib文件夹中

该应用程序现在可以正常工作

我想知道它失败的原因,它是否是示例中的一个bug,以及是否有比这个手动jar拷贝更好的解决方案

在glassfish日志的早期,它讨论了捆绑供应器错误:

警告:正在跳过条目,因为它不是绝对URI

稍后,使用问题org.glassfish.jersey.examples.jersey_ejb.entities.Message的问题类是唯一使用可移植JNDI名称的问题类:

信息:访问未访问的引用信息:可移植的JNDI名称 EJB MessageListWriter: [java:global/ejb/MessageListWriter, java:global/ejb/MessageListWriter!javax.ws.rs.ext.MessageBodyWriter]

有谁能提供一个更好的解决方案,或者修复一个比我应该“不得不”做的jar拷贝更好的项目吗?
链接到完整的glassfish输出

TLDR:Glasfish的版本太旧了

我使用的代码来自今天最新的Jersey,即2.28

根据运行unzip-pmodules/jersey-common.jar META-INF/MANIFEST.MF的博客,glassfish目录中的grep Bundle版本应该提供运行时版本

在Glassfish 4.1中,我得到了Bundle版本:2.10.4

在GlassFish5中,我得到了Bundle版本:2.26.0

通过在lib目录中包含公共库,覆盖提供的版本,我很可能绕过了一个突破性的更改。但是,如果您真的必须更新glassfish 4.1,请按照上面博客中更完整的说明进行操作