2016-03-03 82 views
0

我在調用Tomee 1.7.2中的其他webservice時遇到以下異常。TomEE:分配servlet jersey-serlvet的例外

SEVERE: Allocate exception for servlet JerseyServlet 
javax.naming.NameNotFoundException: Name [com] is not bound in this Context. Unable to find [com]. 
    at org.apache.naming.NamingContext.lookup(NamingContext.java:819) 
    at org.apache.naming.NamingContext.lookup(NamingContext.java:167) 
    at org.apache.naming.SelectorContext.lookup(SelectorContext.java:156) 
    at javax.naming.InitialContext.lookup(InitialContext.java:411) 
    at com.sun.jersey.server.impl.cdi.CDIExtension$2.stepInto(CDIExtension.java:290) 
    at com.sun.jersey.server.impl.cdi.CDIExtension.diveIntoJNDIContext(CDIExtension.java:267) 
    at com.sun.jersey.server.impl.cdi.CDIExtension.lookupJerseyConfigJNDIContext(CDIExtension.java:287) 
    at com.sun.jersey.server.impl.cdi.CDIExtension.getInitializedExtension(CDIExtension.java:175) 
    at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactory.<init>(CDIComponentProviderFactory.java:92) 
    at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactoryInitializer.initialize(CDIComponentProviderFactoryInitializer.java:75) 
    at com.sun.jersey.spi.container.servlet.WebComponent.configure(WebComponent.java:572) 
    at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.configure(ServletContainer.java:312) 
    at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:604) 
    at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:210) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:374) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:557) 
    at javax.servlet.GenericServlet.init(GenericServlet.java:158) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197) 
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:864) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
    at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Thread.java:745) 

我在web.xml中定義的servlet作爲

<servlet> 
    <servlet-name>JerseyServlet</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>com.edifixio.osrd.web.mogui.restfulws</param-value> 
    </init-param> 
    <!-- <init-param> 
     <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name> 
     <param-value>true</param-value> 
    </init-param> --> 
</servlet> 
<servlet-mapping> 
    <servlet-name>JerseyServlet</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 

請問該如何解決這個問題?

注:它的工作原理以及在的WebLogic服務器,如果我刪除在web.xml servlet的聲明,它在TomEE效果很好也。

+0

唯一的例外是,從init()拋出。 它與web.xml本身沒有任何關係。 – wdick

+0

是的。但我該如何解決這個問題? – Unknown

回答

0

我有此通過

1) 從[TomEE_HOME]/conf/catalina.properties文件的common.loader

2)卸下jersey-bundle-1.17.1.jar工作添加

openejb.api.javax.ws.rs.Path.validation=false 
com.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager=true 

到刪除jersey-core-1.17.1[TomEE_HOME]\conf\system.properties

3) ,jersey-json-1.17.1jersey-server-1.17.1jersey-servlet-1.17.1來自[TomEE_HOME]/lib

我已經在github中分享了示例項目。

庫位置: - 你的servlet了Methode https://github.com/UnknownU/TomeeRestfulWs.git