Tomcat javax.naming.NameNotFoundException:Name>;[com]在此上下文中不受约束。找不到[com]

Tomcat javax.naming.NameNotFoundException:Name>;[com]在此上下文中不受约束。找不到[com],tomcat,jersey,jax-rs,Tomcat,Jersey,Jax Rs,根据教程,我正在从动态web项目类型开发一个简单的jersey web服务。到目前为止,我有以下代码: ServiceStatus.Java(在包au.com.biting.bolat.status中) package au.com.biting.bolat.status; 导入javax.ws.rs.*; 导入javax.ws.rs.core.MediaType; @路径(“/v1/status”) 公共类服务状态{ @得到 @生成(MediaType.TEXT\u HTML) 公共字符串re

根据教程,我正在从动态web项目类型开发一个简单的jersey web服务。到目前为止,我有以下代码:

ServiceStatus.Java(在包au.com.biting.bolat.status中)

package au.com.biting.bolat.status;
导入javax.ws.rs.*;
导入javax.ws.rs.core.MediaType;
@路径(“/v1/status”)
公共类服务状态{
@得到
@生成(MediaType.TEXT\u HTML)
公共字符串returnTitle(){
返回“JavaWeb服务”

”; } }
web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>au.com.biting.bolat</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>


  <servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>com.sun.jersey.config.property.packages</param-name>
      <param-value>au.com.biting.bolat</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/api/*</url-pattern>
  </servlet-mapping>
  </web-app>

au.com.biting.bolat
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
泽西岛休息服务
com.sun.jersey.spi.container.servlet.ServletContainer
com.sun.jersey.config.property.packages
au.com.biting.bolat
1.
泽西岛休息服务
/原料药/*
当我在tomEE中运行此服务时,根路径()工作正常,但该路径出现以下错误:

javax.naming.NameNotFoundException:Name[com]未绑定在此 上下文找不到[com]。 org.apache.naming.NamingContext.lookup(NamingContext.java:819) org.apache.naming.NamingContext.lookup(NamingContext.java:167) org.apache.naming.SelectorContext.lookup(SelectorContext.java:156) javax.naming.InitialContext.lookup(InitialContext.java:417) com.sun.jersey.server.impl.cdi.CDIExtension$2.stepInto(CDIExtension.java:308) com.sun.jersey.server.impl.cdi.CDIExtension.diveIntoJNDIContext(CDIExtension.java:285) com.sun.jersey.server.impl.cdi.CDIExtension.lookupJerseyConfigJNDIContext(CDIExtension.java:305) com.sun.jersey.server.impl.cdi.CDIExtension.getInitializedExtension(CDIExtension.java:181) com.sun.jersey.server.impl.cdi.CDIComponentProviderFactory。(CDIComponentProviderFactory.java:95) com.sun.jersey.server.impl.cdi.CDIComponentProviderFactoryInitializer.initialize(CDIComponentProviderFactoryInitializer.java:76) com.sun.jersey.spi.container.servlet.WebComponent.configure(WebComponent.java:572) com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.configure(ServletContainer.java:332) com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:604) com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207) com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:394) com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:577) init(GenericServlet.java:158) org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) run(Thread.java:745)


我尝试了几个修复,包括清理和构建项目,从头开始构建项目,并进行了检查,但错误是无关的。这里有什么问题?

我不知道你使用的是泽西版本,所以我考虑最后一个。尝试更改web.xml中某些属性的名称,因为您使用的是旧属性,本教程有点旧:

...
<servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>au.com.biting.bolat</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
...
。。。
泽西岛休息服务
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
au.com.biting.bolat
1.
...

对于更多的细节,你可以访问。

< p>我不知道你使用的是泽西版本,所以我考虑最后一个。尝试更改web.xml中某些属性的名称,因为您使用的是旧属性,本教程有点旧:

...
<servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>au.com.biting.bolat</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
...
。。。
泽西岛休息服务
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
au.com.biting.bolat
1.
...

有关更多详细信息,您可以访问。

旧版本的jersey默认为glassfish配置,要使其在tomee中工作,您需要在conf/system.properties中设置:

com.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager=true

较旧版本的jersey默认为glassfish配置,要使其在tomee中工作,您需要在conf/system.properties中设置:

com.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager=true

顺便说一句,为什么不使用cxf并让tomee部署您的Web服务呢?(=为什么不需要在那里添加jersey)

顺便说一句,为什么不使用cxf并让tomee部署您的Web服务?(=为什么在那里添加球衣,这是不需要的)