【发布时间】:2013-12-24 13:34:47
【问题描述】:
与许多其他人一样,我在将 Jersey webapps 部署到 Glassfish 4.0 上时遇到了问题。我搜索了类似的帖子,但没有找到任何解决我看到的部署错误的方法。
我尝试在 Glassfish 3.1 上成功部署/运行的应用程序。
我决定从一个简单的 Jersey 应用程序开始,并在此基础上开始构建。所以我从 https://jersey.java.net/documentation/latest/getting-started.html#new-webapp 引用的 Maven 原型开始。
我运行了提供的 mvn 命令行来创建原型项目。然后我将 pom.xml 的 maven-compiler-plugin 配置值修改为源和目标的 1.7(而不是 1.6)。
构建应用程序,部署到 Glassfish 4.0 (build 89),并收到以下错误
WELD-001408 在注入点 [[BackedAnnotatedParameter] [BackedAnnotatedConstructor] @Inject org.glassfish.jersey.server.internal.routing.UriRoutingContext(参考,处理提供者)]
此错误是我在原始应用程序中看到的典型错误。我将错误解释为 CDI 在泽西岛的某处注入 Ref<ContainerRequest> 参数失败。
这些类型的错误的解决方案是什么?这是一个非常简单的 Jersey webapp。它有一个 Resource 类和一个返回硬编码字符串的 @GET 方法。应用程序代码本身不涉及 CDI。
其他信息
将 POM 的 jersey.version 从原来的 2.5 更改为 2.0 会导致
WELD-001414 Bean 名称不明确。名称 JerseyClassAnalyzer 解析为带有限定符 [@Default @Named @Any] 的豆 [Managed Bean [class org.glassfish.jersey.internal.inject.JerseyClassAnalyzer],Managed Bean [class org.glassfish.jersey.internal.inject.JerseyClassAnalyzer]限定符 [@Default @Named @Any]]。
【问题讨论】:
标签: jersey glassfish-4