在 Maven 中指定 Apache Tomcat "lib" 文件夹
Specify Apache Tomcat "lib" folder in Maven
在Apache Tomcat 9, the JNDI Resources How-To page has a section at the bottom, Adding Custom Resource Factories。
要编写实现 JNDI 服务提供者 javax.naming.spi.ObjectFactory
接口的 class,文档说:
You will need to compile this class against a class path that includes all of the JAR files in the $CATALINA_HOME/lib directory.
lib
文件夹包含:
websocket-api.jar
tomcat-jni.jar
tomcat-util-scan.jar
tomcat-util.jar
tomcat-websocket.jar
tomcat-i18n-pt-BR.jar
tomcat-i18n-ru.jar
tomcat-i18n-zh-CN.jar
tomcat-jdbc.jar
tomcat-i18n-ja.jar
tomcat-i18n-ko.jar
tomcat-i18n-cs.jar
tomcat-i18n-de.jar
tomcat-i18n-es.jar
tomcat-i18n-fr.jar
jaspic-api.jar
jsp-api.jar
servlet-api.jar
tomcat-api.jar
tomcat-coyote.jar
tomcat-dbcp.jar
el-api.jar
jasper-el.jar
jasper.jar
catalina-tribes.jar
catalina.jar
ecj-4.12.jar
catalina-ha.jar
catalina-storeconfig.jar
annotations-api.jar
catalina-ant.jar
➥ 在Maven驱动的项目中如何满足这个需求?
我当然不希望将所有这些 jar 捆绑到我的 Web 应用程序的结果 WAR 文件中。
从文档中有点不清楚 真正 需要什么,但一般来说,您的 pom.xml
中会有如下内容:
<dependency>
<groupId>jndi</groupId>
<artifactId>jndi</artifactId>
<version>1.2.1</version>
<scope>provided</scope>
</dependency>
关键是 provided
范围。这意味着该库是编译所必需的,但不应作为打包的一部分包含在内。换句话说,它是由目标部署环境提供的。
话虽如此,您提供的 link 用于编写 custom 资源工厂。它不会是一个 .war
文件,而是一个 .jar
文件,您可以将其安装到 Tomcat 中以扩展它。那是你想要的吗?如果您只需要执行 JNDI 查找,那么我提供的 XML 块将适用于您的代码。
在Apache Tomcat 9, the JNDI Resources How-To page has a section at the bottom, Adding Custom Resource Factories。
要编写实现 JNDI 服务提供者 javax.naming.spi.ObjectFactory
接口的 class,文档说:
You will need to compile this class against a class path that includes all of the JAR files in the $CATALINA_HOME/lib directory.
lib
文件夹包含:
websocket-api.jar
tomcat-jni.jar
tomcat-util-scan.jar
tomcat-util.jar
tomcat-websocket.jar
tomcat-i18n-pt-BR.jar
tomcat-i18n-ru.jar
tomcat-i18n-zh-CN.jar
tomcat-jdbc.jar
tomcat-i18n-ja.jar
tomcat-i18n-ko.jar
tomcat-i18n-cs.jar
tomcat-i18n-de.jar
tomcat-i18n-es.jar
tomcat-i18n-fr.jar
jaspic-api.jar
jsp-api.jar
servlet-api.jar
tomcat-api.jar
tomcat-coyote.jar
tomcat-dbcp.jar
el-api.jar
jasper-el.jar
jasper.jar
catalina-tribes.jar
catalina.jar
ecj-4.12.jar
catalina-ha.jar
catalina-storeconfig.jar
annotations-api.jar
catalina-ant.jar
➥ 在Maven驱动的项目中如何满足这个需求?
我当然不希望将所有这些 jar 捆绑到我的 Web 应用程序的结果 WAR 文件中。
从文档中有点不清楚 真正 需要什么,但一般来说,您的 pom.xml
中会有如下内容:
<dependency>
<groupId>jndi</groupId>
<artifactId>jndi</artifactId>
<version>1.2.1</version>
<scope>provided</scope>
</dependency>
关键是 provided
范围。这意味着该库是编译所必需的,但不应作为打包的一部分包含在内。换句话说,它是由目标部署环境提供的。
话虽如此,您提供的 link 用于编写 custom 资源工厂。它不会是一个 .war
文件,而是一个 .jar
文件,您可以将其安装到 Tomcat 中以扩展它。那是你想要的吗?如果您只需要执行 JNDI 查找,那么我提供的 XML 块将适用于您的代码。