java - 如何在WebSphere中创建共享库来共享jar文件

标签 java maven websphere classloader javassist

我可以从日志文件中看到类路径为

was.install.root = /IBM/WebSphere/AppServer
user.install.root = /IBM/WebSphere/AppServer/profiles/AppSrv01
Java Home = /IBM/WebSphere/AppServer/java/8.0/jre
ws.ext.dirs = /IBM/WebSphere/AppServer/java/8.0/lib:/IBM/WebSphere/AppServer/profiles/AppSrv01/classes:/IBM/WebSphere/AppServer/classes:/IBM/WebSphere/AppServer/lib:/IBM/WebSphere/AppServer/installedChannels:/IBM/WebSphere/AppServer/lib/ext:/IBM/WebSphere/AppServer/web/help:/IBM/WebSphere/AppServer/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime
Classpath = /IBM/WebSphere/AppServer/profiles/AppSrv01/properties:/IBM/WebSphere/AppServer/properties:/IBM/WebSphere/AppServer/lib/startup.jar:/IBM/WebSphere/AppServer/lib/bootstrap.jar:/IBM/WebSphere/AppServer/lib/jsf-nls.jar:/IBM/WebSphere/AppServer/lib/lmproxy.jar:/IBM/WebSphere/AppServer/lib/urlprotocols.jar:/IBM/WebSphere/AppServer/deploytool/itp/batchboot.jar:/IBM/WebSphere/AppServer/deploytool/itp/batch2.jar:/IBM/WebSphere/AppServer/java/8.0/lib/tools.jar
Java Library path = /IBM/WebSphere/AppServer/lib/native/linux/x86_64/:/IBM/WebSphere/AppServer/java/8.0/jre/lib/amd64/compressedrefs:/IBM/WebSphere/AppServer/java/8.0/jre/lib/amd64:/IBM/WebSphere/AppServer/bin:/IBM/WebSphere/AppServer/nulldllsdir:/usr/lib64:/usr/lib:
Orb Version = IBM Java ORB build orb80-20170207.00 

我在应用程序服务器的 /WEB-INF/lib 路径中有一些 jar 文件,在 /WEB_INF/class 路径中有一些类文件。

/WEB_INF/lib 路径中,我有以下 jar 文件。

aopalliance-1.0.jar
commons-io-1.4.jar
jcl-over-slf4j-1.6.1.jar
spring-aop-4.2.5.RELEASE.jar
spring-expression-4.2.5.RELEASE.jar
bcprov-jdk16-1.46.jar
freemarker-2.3.16.jar
log4j-1.2.14.jar
spring-beans-4.2.5.RELEASE.jar
spring-web-4.2.5.RELEASE.jar
commons-codec-1.4.jar
ibmpkcs-8.0.jar
slf4j-api-1.6.1.jar
spring-context-4.2.5.RELEASE.jar
spring-webmvc-4.2.5.RELEASE.jar
commons-fileupload-1.2.2.jar
javassist-3.19.0-GA.jar
slf4j-log4j12-1.6.1.jar
spring-core-4.2.5.RELEASE.jar

我想将 javassist-3.19.0-GA.jar 移动到共享库以避免类冲突。我已阅读 IBM 的在 WebSphere 中配置和添加共享库的步骤。现在我想知道我应该在共享库路径中写什么?是类似 ${WAS_INSTALL_ROOT}/WEB_INF/lib/javassist-3.19.0-GA.jar 吗?我应该从/lib 路径中删除 javassist-3.19.0-GA.jar 吗?

最佳答案

$WAS_INSTALL_ROOT 将使您到达/IBM/WebSphere/AppServer;使用默认服务器变量最接近的应用程序二进制文件是 $USER_INSTALL_ROOT,它将进入 profile/AppSrv01,应用程序二进制文件位于该位置的“installedApps”目录中。

也就是说,指向共享库中的应用程序二进制文件是一个非常糟糕的主意。如果您不希望 WAR 类加载器加载该 jar,请将其从那里取出并放在其他地方。我要指出的是,我不完全理解为什么你要把它放入共享库(它与什么冲突?),所以也许一些澄清也会有所帮助。

关于java - 如何在WebSphere中创建共享库来共享jar文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46294269/

相关文章:

python - IBM WebSphere Application Server wsadmin 在脚本中仅返回 6 个结果中的第一个结果

java - 如何在 spring boot 中为应用程序 yml 定义复​​杂列表?

java - javax.xml.soap.SOAPConnection 和 java.mail 之间的冲突

Java 使用带引号的字符串常量

java - AOP + Jenkins + Maven 集成

tomcat - 如何在应用服务器中实现排队?

java - 在 Websphere Application Server 8.5 上运行的 Web 应用程序中的字符编码

java - Struts2 - 在 JSP 迭代期间调用 Javascript 函数

java - 自定义 Maven 插件 : how to add classpaths?

java - 将 Maven 存储库添加到 settings.xml