繁体   English   中英

Apache tomcat 7在localhost上运行良好,但是部署的war文件在尝试运行时抛出异常

[英]Apache tomcat 7 runs well on localhost but deployed war files throw exceptions when try to run

我在eclipse中有一个jax rs Web服务,它们在我们的测试服务器上运行良好,但是当我尝试在eclipse中运行它们时,在本地计算机上引发了异常。

下面是它引发的错误

Servlet ServletAdaptor的消息Servlet.init()抛出异常

描述服务器遇到意外情况,阻止其满足请求。

例外

javax.servlet.ServletException:Servlet ServletAdaptor的Servlet.init()抛出异常org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java: 104)org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)org.apache.coyote.http11.AbstractHttp11Processor.process( AbstractHttp11Processor.java:1136)org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:637)org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:318)java.util。 parallel.ThreadPoolExecutor.runWorker(未知源)java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知源)org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)java.lang。 Thread.run(未知源)

根本原因

java.lang.TypeNotPresentException:类型javax.persistence.PersistenceUnit不存在sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(Unknown Source)sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Unknown Source)sun.reflect.generics。 tree.ClassTypeSignature.accept(未知源)sun.reflect.generics.visitor.Reifier.reifyTypeArguments(未知源)sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(未知源)sun.reflect.generics.tree.ClassTypeSignature.accept (未知来源)sun.reflect.generics.repository.ClassRepository.getSuperInterfaces(未知来源)java.lang.Class.getGenericInterfaces(未知来源)com.sun.jersey.core.spi.factory.InjectableProviderFactory.getMetaArguments(InjectableProviderFactory.java: 135)com.sun.jersey.core.spi.factory.InjectableProviderFactory.add(InjectableProviderFactory.java:93)com.sun.jersey.core.spi.factory.InjectableProviderFactory $ 1.onAdd(InjectableProviderFactory.java:109)com.sun .jersey.core.spi.f actory.InjectableProviderFactory $ 1.onAdd(InjectableProviderFactory.java:107)com.sun.jersey.core.spi.component.ProviderServices.getProvidersAndServices(ProviderServices.java:204)com.sun.jersey.core.spi.factory.InjectableProviderFactory.configure (InjectableProviderFactory.java:106)com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1153)com.sun.jersey.server.impl.application.WebApplicationImpl.access $ 700(WebApplicationImpl.java: 180)com.sun.jersey.server.impl.application.WebApplicationImpl $ 13.f(WebApplicationImpl.java:799)com.sun.jersey.server.impl.application.WebApplicationImpl $ 13.f(WebApplicationImpl.java:795)com。 sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193)com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:795)com.sun.jersey.server.impl。 application.WebApplicationImpl.initiate(WebApplicationImpl.java:790)com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContain er.java:509)com.sun.jersey.spi.container.servlet.ServletContainer $ InternalWebComponent.initiate(ServletContainer.java:339)com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java: 605)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)javax.servlet.GenericServlet.init(GenericServlet.java:158)org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter。 java:445)org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1136)org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProt ocol.java:637)org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:318)java.util.concurrent.ThreadPoolExecutor.runWorker(未知源)java.util.concurrent.ThreadPoolExecutor $ Worker .run(未知来源)org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)java.lang.Thread.run(未知来源)

根本原因

以下是Eclipse项目的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>leaveMgt</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>ServletAdaptor</servlet-name>
    <servlet-class>com.sun.jersey.server.impl.container.servlet.ServletAdaptor</servlet-class>
    <init-param>
      <param-name>com.sun.jersey.config.property.packages</param-name>
      <param-value>webServices</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>ServletAdaptor</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>

在我看来,原因是您的类路径中缺少库。 具体来说,您有一些用@javax.persistence.PersistenceUnit注释的类,但类路径中缺少该类。 因此,我建议您列出测试Web服务器中部署的所有库(包括/ lib库),并将它们与本地服务器中部署的库进行比较,并特别注意其中的一些:

  • persistence.jar
  • JavaEE的-API - *罐子
  • 注释-API - *罐子

..是可能存在javax.persistence.PersistenceUnit类的标准库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM