为了查看多个应用程序的外部jars,我通常将外部jars放在JBOSS / 5.x.These /default/lib目录中,在JBOSS的开头自动启动JBOSS。我将如何在野蝇-9.0.2 wildfly。
@Sam请求回复,但仍有错误,请将我的场景结构如下
注意-上面的testclient.jar不是test.ear的一部分。(我想从多个耳朵访问这个testclient.jar )。
要部署test.ear,我已经完成了以下步骤
@Sam谢天谢地回答
我在test.jar的META中添加了'jboss-deployment-structure.xml‘。
注意-是的,我正在从'com/oracle/asmc/ejb3/statelesssession/SLE3DecryptLocal‘访问test.jar (在testclient.jar模块中)。
现在我的test.ear包含
但我还是会犯一些错误。
Caused by: java.lang.NoClassDefFoundError: com.oracle.asmc.ejb3.statelesssession.SLE3DecryptLocal
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.getDeclaredMethods(Class.java:1975)
at org.jboss.as.server.deployment.reflect.ClassReflectionIndex.<init>(ClassReflectionIndex.java:65)
at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:66)
... 10 more
Caused by: java.lang.ClassNotFoundException: com.oracle.asmc.ejb3.statelesssession.SLE3DecryptLocal from [Module "deployment.test.ear.test.jar:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:455)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:404)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:385)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:130)
... 15 more发布于 2016-01-22 20:57:56
类加载与WildFly完全不同。您可以阅读更多信息
自WildFly 8以来,类加载与以前版本的JBoss AS有很大的不同。类加载基于JBoss模块项目。WildFly的类加载不是更常见的分层类加载环境,而是基于必须定义显式依赖于其他模块的模块。WildFly中的部署也是模块,除非定义了对这些类的显式依赖,否则无法访问应用程序服务器中jars中定义的类。
更多信息可以在WildFly 9文档上找到。
基本上,您可以使用共享库添加一个模块,并使您的部署依赖于它。
例如,您可以使用jboss(位于bin文件夹中)使用MySQL连接器Java添加一个模块。
module add --name=org.mysql --resources=mysql-connector-java-5.1.31-bin.jar --dependencies=javax.api,javax.transaction.api然后,要让应用程序看到它,可以添加一个名为jboss-deployment-structure.xml的文件,其中包含以下信息:
<?xml version="1.0"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
<deployment>
<dependencies>
<module name="org.mysql" />
</dependencies>
</deployment>
</jboss-deployment-structure>模块名必须与模块添加命令中指定的名称匹配。
如果在jboss-deployment-structure.xml部分的MANIFEST.MF中添加模块名,则可以省略文件Dependencies。
https://stackoverflow.com/questions/34940005
复制相似问题