首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Jboss EAP openshift镜像上设置类路径

如何在Jboss EAP openshift镜像上设置类路径
EN

Stack Overflow用户
提问于 2017-07-26 06:24:53
回答 1查看 842关注 0票数 0

使用的图片:https://access.redhat.com/containers/#/registry.access.redhat.com/jboss-eap-7/eap70-openshift

我可以设置ENV变量,但它不起作用。

Dockerfile:

代码语言:javascript
复制
FROM registry.access.redhat.com/jboss-eap-7/eap70-openshift
ENV CLASSPATH $CLASSPATH:/opt/eap/standalone/lib/required_libs/fscontext.jar

它设置了这个变量,但我仍然得到以下异常,

代码语言:javascript
复制
Caused by: java.lang.ClassNotFoundException: com.sun.jndi.fscontext.RefFSContextFactory from [Module "org.jboss.as.naming:main" from local module loader @b97c004 (finder: local module finder @4590c9c3 (roots: /opt/eap/modules,/opt/eap/modules/system/layers/openshift,/opt/eap/modules/system/layers/base/.overlays/layer-base-jboss-eap-7.0.6.CP,/opt/eap/modules/system/layers/base,/opt/eap/modules/system/add-ons/keycloak))]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:196)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:351)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.jboss.as.naming.InitialContext.getDefaultInitCtx(InitialContext.java:113)

在容器内设置类路径也不起作用。

寻找设置类路径,它将显示在java进程中,如下所示:

代码语言:javascript
复制
[root@9a290d7939bb ~]# ps -ef | grep java
root         1     0  0 Jul18 ?        00:05:49 /usr/lib/jvm/java-1.8.0/bin/java -Dnop -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.library.path=/opt/webserver/lib -Djava.security.egd=file:/dev/./urandom -javaagent:/opt/jolokia/jolokia.jar=config=/opt/jolokia/etc/jolokia.properties -XX:+UseParallelGC -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -XX:MaxMetaspaceSize=100m -XX:+ExitOnOutOfMemoryError -Djava.endorsed.dirs=/opt/webserver/endorsed **-classpath /opt/webserver/fscontext.jar:/opt/webserver/ldap.jar** -Dcatalina.base=/opt/webserver -Dcatalina.home=/opt/webserver -Djava.io.tmpdir=/opt/webserver/temp org.apache.catalina.startup.Bootstrap start
EN

回答 1

Stack Overflow用户

发布于 2017-09-15 17:07:09

为什么不把lib放在/opt/eap/modules中,或者放在stacktrace中提到的某个目录中?

不要忘了在EAP_HOME/modules/your/package/name/main中创建一个module.xml文件,例如:

代码语言:javascript
复制
<module xmlns="urn:jboss:module:1.1" name="your.package.name">
  <resources>
    <resource-root path="fscontext.jar"/>
  </resources>
  <dependencies>
    <module name="com.ibm.mq"/>
  </dependencies>
</module>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45314484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档