当前位置: 首页 > 知识库问答 >
问题:

在Tomcat 8上部署web服务时遇到问题

吴宝
2023-03-14

我编写了一个maven web服务,它引用了另一个项目。web服务本身仅包含2个pom条目:

  1. jersey容器servlet:2.13

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个条目:

  1. lang-猜测: 0.0.7
  2. Stanford-corenlp: 3.5.2
  3. 斯坦福-科伦坡: 3.5.2:模型
  4. mysql连接器-java: 5.1.34
  5. worage-de: 3.0

该Web服务在我本地安装的Eclipse中的Tomcat 8上完美运行。然而,当我从Eclipse(War文件)导出web服务并将其部署到Tomcat服务器上时,我收到了一个java。lang.NoClassDefFoundError当我尝试运行web服务时。我已经尝试了在网上找到的几种方法

  1. 在发动战争之前清理项目

此外,我已经阅读并尝试了许多关于stackoverflow问题的解决方案:

  • 爪哇。lang.NoClassDefFoundError

总而言之,什么都不起作用,错误java。lang.NoClassDefFoundErrorpersist。。。我不知道还能尝试什么,所以我很高兴能得到任何帮助!提前感谢:)

提到的可能是服务器信息:

  • Tomcat版本:8.0.30

此外,我编写的另外两个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)

更新:由于我仍然没有找到解决方案,我只是简单地复制粘贴的项目1和项目2到我的网络服务。Web服务在Tomcat上仍然运行良好localhost但在Tomcat Server上仍然存在同样的废话NoClassDefFoundError错误...现在我真的真的没有主意了。

共有1个答案

须景胜
2023-03-14

我解决了我的问题。别问我是什么,我只是从零开始,在新的网络项目中一个接一个地复制粘贴我的内容,然后导出war文件,第一次尝试时效果很好。。。

无论如何,非常感谢你的帮助。

 类似资料:
  • 使用 Hangfire.HttpJob 版本需 >= 3.0.2 1. 添加依赖 TimeZoneConverter 到您的项目中 2.在 Startup.cs 中配置 Hangfire.HttpJob 时指定时区参数 参考代码:https://github.com/yuzd/Hangfire.HttpJob/blob/master/Test/TestSqlserver/Startup.cs#L6

  • 我在RHEL上使用JBOSS final 6.1.0,在服务器上部署servlet没有问题。但在尝试部署SOAP web服务时,我在http://[serverName]:8080/jbossws/中找不到它。首先,我为JBOSS 6.1.0服务器创建了动态web项目SoapTestService,并编写了简单的web服务: 我导出项目到TestSoapService.war文件,把这个战争到[P

  • 我创建了一个在tomcat上平稳运行的CXF web服务。当我试图在JBoss 5.1上部署它时,我遇到了以下错误: 两个JAR都位于已部署的[WAR-FILE]/WEB-INF/lib中。 我读过很多关于类加载隔离级别、cxf和JBOSS上的web服务集成(如何关闭web服务堆栈)的文章,但似乎没有什么能解决这个问题。。 下面是war项目依赖关系树: 有什么帮助吗?

  • 本文向大家介绍vue项目部署到Apache服务器中遇到的问题解决,包括了vue项目部署到Apache服务器中遇到的问题解决的使用技巧和注意事项,需要的朋友参考一下 最近刚重构完,我们的一个项目,由原来的jsp模式改为了前后端分离,前端选型为vue,开发完成之后第一件时间就是要部署测试,服务端选的是Apache。本来以为很简单的一件事情,几经坎坷部署了两天才算能够正常访问了。先记录如下, 过程搭建A

  • 我正在编写一个简单的RESTful Web服务,使用Java、tomcat7、jersey和IDE eclipse。 当我使用eclipse(服务器)启动web服务时,它运行良好。我测试了GET和POST方法。但当我在WAR文件中导出应用程序并使用tomcat manage UI部署时。它返回404 not found状态。 下面是一个例子: 这里是网络。xml: 有人能解释在eclipse中启动

  • 我试图在Eclipse Oxy中使用apache cxf 3.1.9创建soap web服务,并将其部署到WebLogic 12.2.1,但出现了一个错误: 或相同的错误,但它找不到org.apache.abdera.model.元素。 当我使用WebLogic 12.1.3时,没有任何问题。 如何修复此错误?这些课程的目的是什么?谢谢 更新 在类路径中添加Apache Abdera后,我出现了新