[英]Trouble deploying web service on Tomcat 8
我写了一个Maven Web服务,它引用了另一个项目。 Web服务本身仅包含2个pom条目:
Web服务POM:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Webservice</groupId>
<artifactId>Webservice</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/Webservice</path>
<update>true</update>
<url>http://server.name:8080/manager/text</url>
<username>tomcat</username>
<password>tomcat</password>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.13</version>
</dependency>
<dependency>
<groupId>lu.group.id</groupId>
<artifactId>Project1</artifactId>
<version>4.0.1</version>
</dependency>
</dependencies>
</project>
项目1也是一个Maven项目,只有一个pom条目,另一个本地项目(我们称为项目2)。
项目2还是一个maven项目,其pom文件包含5个条目:
该Web服务可以在我在Eclipse中本地安装的Tomcat 8上完美运行。 但是,当我从Eclipse导出Web服务(War文件)并将其部署在Tomcat服务器上时,当我尝试运行Web服务时收到java.lang.NoClassDefFoundError
。 我已经尝试了一些在网上找到的东西:
ClassNotFoundExeception
或类似的东西?) 另外,我已经阅读并尝试了关于多个stackoverflow问题的许多解决方案:
总而言之,什么都没有起作用,并且错误java.lang.NoClassDefFoundError
仍然存在...我不知道还能尝试什么,因此很高兴获得任何帮助! 先感谢您 :)
可以提及的可能是服务器信息:
另外,我编写的另外两个Maven Web服务已成功在此服务器上运行! 所以我认为这可能不是服务器配置问题吗?
完整的堆栈跟踪如下:
java.lang.NoClassDefFoundError: Could not initialize class org.jvnet.hk2.internal.ServiceLocatorImpl
org.jvnet.hk2.external.generator.ServiceLocatorGeneratorImpl.initialize(ServiceLocatorGeneratorImpl.java:67)
org.jvnet.hk2.external.generator.ServiceLocatorGeneratorImpl.create(ServiceLocatorGeneratorImpl.java:102)
org.glassfish.hk2.internal.ServiceLocatorFactoryImpl.internalCreate(ServiceLocatorFactoryImpl.java:270)
org.glassfish.hk2.internal.ServiceLocatorFactoryImpl.create(ServiceLocatorFactoryImpl.java:230)
org.glassfish.jersey.internal.inject.Injections._createLocator(Injections.java:138)
org.glassfish.jersey.internal.inject.Injections.createLocator(Injections.java:123)
org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:304)
org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:285)
org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:311)
org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170)
org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:358)
javax.servlet.GenericServlet.init(GenericServlet.java:158)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
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)
java.lang.Thread.run(Thread.java:745)
更新:由于我仍然找不到解决方案,因此我只是将粘贴的Project 1和Project 2复制到我的Web服务中。 Web服务在localhost Tomcat上仍然可以正常运行,但是在Tomcat Server上仍然出现相同的NoClassDefFoundError
错误。。。现在,我真的是个主意。
我解决了我的问题。 别问我是什么,我只是从头开始,复制粘贴在新的Web项目中一个接一个的内容,并通过导出war文件,在第一次尝试时就象魅力一样...
无论如何,非常感谢您的帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.