首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >javax.naming.NameNotFoundException: CDIExtension

javax.naming.NameNotFoundException: CDIExtension
EN

Stack Overflow用户
提问于 2016-11-11 02:08:37
回答 3查看 5.2K关注 0票数 2

我使用com.sun.jersey.spi.spring.container.servlet.SpringServlet创建了两个Jersey项目。我用的是球衣1.19.1罐。两个项目的lib文件夹中都有依赖的jars。我把这两个项目都部署在了自由9服务器上。

当我试图访问端点时,一个项目可以正常工作,但另一个项目不行。如果第二个项目不工作,我在控制台中有下面的异常。如果我单独重新启动该项目(而不是服务器),它就能工作。我不知道为什么,我试图找到永久的解决办法。

SRVE0271E:在应用程序第二个项目中由servlet servlet创建的Uncaught ()异常: java.lang.RuntimeException: javax.naming.NameNotFoundException: CDIExtension SRVE0315E:发生了一个异常: java.lang.Throwable: javax.servlet.ServletException: SRVE0207E:由servlet创建的未登录初始化异常

如果第一个项目不起作用,我会在控制台中看到下面的异常。

SRVE0271E:应用程序jersey项目中servlet jersey-servlet创建的Uncaught init()异常: java.lang.ClassCastException: com.sun.jersey.server.impl.cdi.CDIExtension与com.sun.jersey.server.impl.cdi.CDIExtension不兼容

SRVE0276E:初始化Servlet时出错- servlet : javax.servlet.ServletException: SRVE0207E:由servlet创建的未初始化异常

使用完整堆栈进行更新:

代码语言:javascript
运行
复制
    java.lang.RuntimeException: javax.naming.NameNotFoundException: CDIExtension
        at com.sun.jersey.server.impl.cdi.CDIExtension.getInitializedExtension(CDIExtension.java:183)
        at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactory.<init>(CDIComponentProviderFactory.java:95)
        at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactoryInitializer.initialize(CDIComponentProviderFactoryInitializer.java:76)
        at com.sun.jersey.spi.container.servlet.WebComponent.configure(WebComponent.java:572)
        at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.configure(ServletContainer.java:332)
        at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:604)
        at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207)
        at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:394)
        at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:577)
        at javax.servlet.GenericServlet.init(GenericServlet.java:244)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:332)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.loadOnStartupCheck(ServletWrapper.java:1428)
        at com.ibm.ws.webcontainer.webapp.WebApp.doLoadOnStartupActions(WebApp.java:1181)
        at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinally(WebApp.java:1149)
        at com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:1055)
        at com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:6499)
        at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.startWebApp(DynamicVirtualHost.java:446)
        at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.createRunnableHandler(DynamicVirtualHost.java:248)
        at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.createRunnableHandler(DynamicVirtualHost.java:313)
        at com.ibm.ws.http.internal.VirtualHostImpl.discriminate(VirtualHostImpl.java:251)
        at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink.ready(HttpDispatcherLink.java:300)
        at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:471)
        at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleNewRequest(HttpInboundLink.java:405)
        at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.processRequest(HttpInboundLink.java:285)
        at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.ready(HttpInboundLink.java:256)
        at com.ibm.ws.tcpchannel.internal.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:174)
        at com.ibm.ws.tcpchannel.internal.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:83)
        at com.ibm.ws.tcpchannel.internal.WorkQueueManager.requestComplete(WorkQueueManager.java:504)
        at com.ibm.ws.tcpchannel.internal.WorkQueueManager.attemptIO(WorkQueueManager.java:574)
        at com.ibm.ws.tcpchannel.internal.WorkQueueManager.workerRun(WorkQueueManager.java:929)
        at com.ibm.ws.tcpchannel.internal.WorkQueueManager$Worker.run(WorkQueueManager.java:1018)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1153)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.lang.Thread.run(Thread.java:785)
    Caused by: javax.naming.NameNotFoundException: CDIExtension
        at com.ibm.ws.jndi.internal.ContextNode.lookup(ContextNode.java:218)
        at com.ibm.ws.jndi.internal.WSContext.lookup(WSContext.java:297)
        at com.ibm.ws.jndi.WSContextBase.lookup(WSContextBase.java:62)
        at com.sun.jersey.server.impl.cdi.CDIExtension.getInitializedExtension(CDIExtension.java:181)
        ... 33 more




Caused by: java.lang.ClassCastException: com.sun.jersey.server.impl.cdi.CDIExtension incompatible with com.sun.jersey.server.impl.cdi.CDIExtension
    at com.sun.jersey.server.impl.cdi.CDIExtension.getInitializedExtension(CDIExtension.java:181)
    at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactory.<init>(CDIComponentProviderFactory.java:95)
    at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactoryInitializer.initialize(CDIComponentProviderFactoryInitializer.java:76)
    at com.sun.jersey.spi.container.servlet.WebComponent.configure(WebComponent.java:572)
    at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.configure(ServletContainer.java:332)
    at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:604)
    at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207)
    at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:394)
    at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:577)
    at javax.servlet.GenericServlet.init(GenericServlet.java:244)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:332)
    ... 1 more
EN

回答 3

Stack Overflow用户

发布于 2018-05-12 14:48:55

请查一下此链接,这对我很有帮助。

您可以在设置系统属性com.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager=true时解决此问题。

这可以在GlassFish服务器控制台上完成。

  1. 选择节点->配置->服务器-配置->JVM设置更改为选项卡‘JVM选项’
  2. 添加一个新条目 -Dcom.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager=true
  3. 重新启动服务器
票数 4
EN

Stack Overflow用户

发布于 2016-11-14 08:52:35

在日志中可以看到:

代码语言:javascript
运行
复制
Caused by: java.lang.ClassCastException: com.sun.jersey.server.impl.cdi.CDIExtension incompatible with com.sun.jersey.server.impl.cdi.CDIExtension

自由使用泽西作为JAX-RS供应商,所以你有冲突。您必须从应用程序中删除这些jars,或者确保JAX-RS功能没有显式或隐式地包含在您的server.xml中。

票数 0
EN

Stack Overflow用户

发布于 2018-11-08 10:29:23

错误,

代码语言:javascript
运行
复制
javax.naming.NameNotFoundException: Unable to resolve 'com.sun.jersey.config.CDIExtension'. Resolved 'com.sun.jersey.config'; remaining name 'CDIExtension'

可能是由于EJB3示例中的类导入导致的:

代码语言:javascript
运行
复制
import javax.enterprise.context.RequestScoped;

@RequestScoped
public class SampleServices {

@EJB
CalcBeanLocal calcBean;
.....

在导入RequestScope时,将将"bean.xml“添加到WEB中。

这可以通过使用@无状态注释而不是@RequestScope和删除WEB中创建的"bean.xml“来解决。

示例:

代码语言:javascript
运行
复制
@stateless
public class SampleServices {

@EJB
CalcBeanLocal calcBean;
.....
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40540110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档