【问题标题】:Maven web project, Class not found Exception in war for external jarsMaven Web项目,找不到类外部jar的战争异常
【发布时间】:2017-12-19 01:50:50
【问题描述】:

我有一个 maven web 项目,我需要包含一些第三方 jars(不存在在线)所以我使用安装它们

<dependency>
    <groupId>com.smas.cluster</groupId>
    <artifactId>cluster-smas</artifactId>
    <version>2.0-SNAPSHOT</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/src/main/resources/cluster-smas-2.0-SNAPSHOT.jar</systemPath>
</dependency>

我面临的问题是,当我运行 maven clean install 时,生成的 war 文件不包含第 3 方 jar。 搜索后我找到了一个解决方案,我在 lib 文件夹中复制了 jar(在项目的根目录中创建),然后我在 Pom 文件中使用了以下 sn-p

<plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-war-plugin</artifactId> 
        <version>2.0.2</version> 
        <configuration> 
          <webResources> 
            <resource> 
              <directory>${project.basedir}/libs/</directory> 
              <targetPath>WEB-INF/lib</targetPath> 
            </resource> 
          </webResources> 
        </configuration> 
  </plugin> 
</plugins>

jar 现在从我的 lib 文件夹复制到生成的 war 文件中的 WEB-INF/lib/ 中。但是当我运行该服务时,我得到了 Class not found 异常的错误。

【问题讨论】:

  • 你能显示错误吗?如果 lib 在 lib 文件夹中并且您仍然收到该错误,则意味着该 jar 中不存在缺少的类。也许它来自它的依赖。
  • 我已经检查了该类所在的 jar。可能是因为我没有以正确的方式添加罐子,因为它应该在 maven 中完成?
  • 你检查过你的war文件所在的运行容器(例如tomcat)是否真的有那个jar?
  • 也发布完整的错误跟踪。
  • 将jar文件放入tomcat /lib目录,重启tomcat。

标签: java eclipse maven


【解决方案1】:

试试这个,删除system范围和systemPath,并删除war插件,只留下依赖声明。

<dependency>
    <groupId>com.smas.cluster</groupId>
    <artifactId>cluster-smas</artifactId>
    <version>2.0-SNAPSHOT</version>
</dependency>

构建您的项目。您的依赖项 JAR 应该出现在 WEB-INF/lib 中,并且这些类将在运行时可用。

【讨论】:

    猜你喜欢
    • 2019-10-21
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    相关资源
    最近更新 更多