首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在野蝇中部署第三方jar -9.0.2

问在野蝇中部署第三方jar -9.0.2
EN

Stack Overflow用户
提问于 2016-01-22 06:02:00
回答 1查看 4.4K关注 0票数 1

为了查看多个应用程序的外部jars,我通常将外部jars放在JBOSS / 5.x.These /default/lib目录中,在JBOSS的开头自动启动JBOSS。我将如何在野蝇-9.0.2 wildfly。

@Sam请求回复,但仍有错误,请将我的场景结构如下

  1. 在test.jar中有名为test.ear的jar存档
  2. 在test.jar中有EJB3会话bean java类。在这个类中有导入stmt作为。 导入com.oracle.asmc.ejb3.statelesssession.SLE3DecryptLocal;
  3. 上述软件包'com.oracle.asmc.ejb3.statelesssession.SLE3DecryptLocal‘存在于testclient.jar中。

注意-上面的testclient.jar不是test.ear的一部分。(我想从多个耳朵访问这个testclient.jar )。

要部署test.ear,我已经完成了以下步骤

  1. ./jboss-cli.sh -c (出现在bin目录中)
  2. 模块add --name=testclient --resources=~/client_jar/testclient.jar
  3. 我在jboss-deployment-structure.xml中添加了以下配置,并在创建test.ear时放置在META目录中。
  4. 对于部署Test.ear应用程序,访问“http://127.0.0.1:9990/”和遍历链接部署-->Add --> Add部署->FINISH,但仍然出现以下错误。 12:19:22,439 INFO org.jboss.as.server.deployment WFLYSRV0027:启动部署" test.ear“(运行时-名称:"test.ear") 12:19:22,602 INFO org.jboss.as.server.deployment WFLYSRV0207:启动子部署(运行时-名称:"test.jar") 12 :19:22:19:23,842错误jboss.deployment.subunit."test.ear"."test.jar".POST_MODULE: MSC000001:未能在服务jboss.deployment.subunit."test.ear"."test.jar".POST_MODULE: WFLYSRV0153中启动服务org.jboss.msc.service.fail org.jboss.msc.service.StartException :未能处理org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:163) at org.jboss的部署"test.jar“的子部署”test.jar“阶段POST_MODULE。msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745),原因是: java.lang.RuntimeException: WFLYSRV0177:错误获取com.oracle.test.SlsTestBean类的反射信息,而ClassLoader ModuleClassLoader用于模块"deployment.test“org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:70) at org.jboss.as.ee.metadata.MethodAnnotationAggregator.runtimeAnnotationInformation(MethodAnnotationAggregator.java:57) at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.handleAnnotations(InterceptorAnnotationProcessor.java:107) at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:92) at org.jboss.as.ee.component.deployers的服务模块加载器.ear.test.jar:main。InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:77) at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:156) .5更多原因是: java.lang.NoClassDefFoundError: com/oracle/asmc/ejb3/statelesssession/SLE3DecryptLocal at java.lang.Class.getDeclaredMethods0(原生方法) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.getDeclaredMethods(Class.java:1975) at org.jboss.as.server.deployment.reflect.ClassReflectionIndex.(在org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:66) . 10多个原因: java.lang.ClassNotFoundException: com/oracle/asmc/ejb3/statelesssession/SLE3DecryptLocal来自于模块"deployment.test.ear.test.jar:main“,来自Service在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

@Sam谢天谢地回答

我在test.jar的META中添加了'jboss-deployment-structure.xml‘。

注意-是的,我正在从'com/oracle/asmc/ejb3/statelesssession/SLE3DecryptLocal‘访问test.jar (在testclient.jar模块中)。

现在我的test.ear包含

  1. META/application.xml
  2. test.war
  3. test.jar('jboss-deployment-structure.xml‘存在于此test.jar的META目录中)

但我还是会犯一些错误。

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-22 20:57:56

类加载与WildFly完全不同。您可以阅读更多信息

自WildFly 8以来,类加载与以前版本的JBoss AS有很大的不同。类加载基于JBoss模块项目。WildFly的类加载不是更常见的分层类加载环境,而是基于必须定义显式依赖于其他模块的模块。WildFly中的部署也是模块,除非定义了对这些类的显式依赖,否则无法访问应用程序服务器中jars中定义的类。

更多信息可以在WildFly 9文档上找到。

基本上,您可以使用共享库添加一个模块,并使您的部署依赖于它。

例如,您可以使用jboss(位于bin文件夹中)使用MySQL连接器Java添加一个模块。

代码语言:javascript
复制
module add --name=org.mysql --resources=mysql-connector-java-5.1.31-bin.jar --dependencies=javax.api,javax.transaction.api

然后,要让应用程序看到它,可以添加一个名为jboss-deployment-structure.xml的文件,其中包含以下信息:

代码语言:javascript
复制
<?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。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34940005

复制
相关文章

相似问题

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