小编典典

将dependecy添加到Maven并设置为$ CATALINA_HOME / shared / lib

tomcat

我在Web项目中使用Matlab MCR,因此将这些依赖项导入pom.xml

<!-- Matlab client tool library -->
    <!--  <dependency>
            <groupId>DataConcatenation</groupId>
            <artifactId>DataConcatenation</artifactId>
            <version>0.0.5-SNAPSHOT</version>
        </dependency> -->
<!--        <dependency>
            <groupId>DataConcatenator</groupId>
            <artifactId>DataConcatenator</artifactId>
            <version>0.0.5-SNAPSHOT</version>
        </dependency> -->
<!--        <dependency>
            <groupId>DataConversion</groupId>
            <artifactId>DataConversion</artifactId>
            <version>0.0.5-SNAPSHOT</version>
        </dependency> -->
        <dependency>
            <groupId>DataConverter</groupId>
            <artifactId>DataConverter</artifactId>
            <version>0.0.5-SNAPSHOT</version>
            <exclusions>
                <exclusion>
                    <artifactId>DataConcatenation</artifactId>
                    <groupId>DataConcatenation</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>DataConcatenator</artifactId>
                    <groupId>DataConcatenator</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>DataConversion</artifactId>
                    <groupId>DataConversion</groupId>
                </exclusion>
            </exclusions>
        </dependency>

第一个问题是,即使我仅使用DataConverter,我也必须排除其他树相关性,但是我只需要dataConverter,并且此库没有其他依赖项。第二个也是最重要的问题是此错误:

Threw exception in ZipAndMat::createZipAndMat: java.lang.UnsatisfiedLinkError: Native Library /usr/v81/bin/glnxa64/libnativedl.so already loaded in another classloader

我阅读了很多指南,并且我了解我必须将这个jar放入$ CATALINA_HOME / shared /
lib中,以便所有类加载器共享同一个jar。但是,如何在上面的路径中添加这种依赖呢?这是我第一次实现此配置。我在服务器上使用tomcat并通过war文件部署项目。谢谢


阅读 290

收藏
2020-06-16

共1个答案

小编典典

您可以将jar放入中$CATALINA_HOME/shared/lib,然后在POM中将依赖项指定<scope>provided

<dependency>
        <groupId>DataConverter</groupId>
        <artifactId>DataConverter</artifactId>
        <version>0.0.5-SNAPSHOT</version>
        <scope>provided</scope>
        <exclusions>
            ...
        </exclusions>
    </dependency>

当在Tomcat上运行时,此方法通常用于包含JDBC驱动程序的
jar 。将jdbc
jar放置在其中$CATALINA_HOME/shared/lib(以便所有WAR都可以找到它),但是每个项目列表都将JDBC
jar作为依赖项,provided并将其作为作用域。

2020-06-16