2016-01-22 3 views
1

Для видимых внешних банок для более чем одного приложения я обычно размещал внешние банки в $ JBOSS_HOME/server/default/lib directoy в JBOSS 5.x. Эти банки были автоматизированы при запуске AS. Как это я буду делать в wildfly-9.0.2.Final.Развертывание сторонней банки в wildfly 9.0.2.Final

Thankx для @ Сэм ответа Но до сих пор я получаю сообщение об ошибке, Пожалуйста, смотрите мой сценарий следующего Структура

  1. Там находится архив банка назван test.jar присутствует в test.ear
  2. В test.jar есть класс java session bean java. В этом классе есть import stmt as.

    импорт 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. модуля оных - -nam e = testclient --resources = ~/client_jar/testclient.jar
  3. Я добавил следующую конфигурацию в jboss-deployment-structure.xml и поместил ее в каталог META-INF при создании test.ear.

    <?xml version="1.0"?>  
        <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1"> 
        <deployment> 
        <dependencies> 
         <module name="testclient" /> 
        </dependencies> 
    </deployment> 
    </jboss-deployment-structure> 
    
  4. Для развертывания Test.ear applicaiton, доступ к 'http://127.0.0.1:9990/' и travesed ссылка развертываний -> Добавить -> Добавить развертывания ---> FINISH Но все-таки получил следующее сообщение об ошибке.

    12:19:22,439 INFO [org.jboss.as.server.deployment] (MSC service thread 1-4) WFLYSRV0027: Starting deployment of "test.ear" (runtime-name: "test.ear") 
    12:19:22,602 INFO [org.jboss.as.server.deployment] (MSC service thread 1-3) WFLYSRV0207: Starting subdeployment (runtime-name: "test.jar") 
    12:19:22,608 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) WFLYSRV0207: Starting subdeployment (runtime-name: "test.war") 
    12:19:23,524 INFO [org.jboss.weld.deployer] (MSC service thread 1-2) WFLYWELD0003: Processing weld deployment test.ear 
    12:19:23,631 INFO [org.hibernate.validator.internal.util.Version] (MSC service thread 1-2) HV000001: Hibernate Validator 5.1.3.Final 
    12:19:23,842 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC000001: Failed to start service jboss.deployment.subunit."test.ear"."test.jar".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.subunit."test.ear"."test.jar".POST_MODULE: WFLYSRV0153: Failed to process phase POST_MODULE of subdeployment "test.jar" of deployment "test.ear" 
        at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:163) 
        at org.jboss.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) 
    Caused by: java.lang.RuntimeException: WFLYSRV0177: Error getting reflective information for class com.oracle.test.SlsTestBean with ClassLoader ModuleClassLoader for Module "deployment.test.ear.test.jar:main" from Service Module Loader 
    at 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.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:77) 
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:156) 
    ... 5 more 
        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 
    

Thankx для @ Сэм ответ

Я добавил 'JBoss-развертывания-structure.xml' в META-INF в test.jar.

Note- Да, я обращаюсь к «com/oracle/asmc/ejb3/statelesssession/SLE3DecryptLocal» (присутствует в модуле testclient.jar) из test.jar.

Теперь мой test.ear содержит

  1. META-INF/application.xml

  2. test.war

  3. test.jar ('JBoss развертывания-structure.xml' в каталоге META-INF этого теста.jar)

Но все же я получаю фол низкая ошибка.

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 

ответ

4

Загрузка класса полностью изменилась с использованием WildFly. Вы можете прочитать дополнительную информацию [at]

С WildFly 8 загрузка классов значительно отличается от предыдущих версий JBoss AS. Загрузка классов основана на проекте модулей JBoss. Вместо более привычной иерархической среды загрузки классов загрузка класса WildFly основана на модулях, которые должны определять явные зависимости от других модулей. Развертывания в WildFly также являются модулями и не имеют доступа к классам, определенным в банках на сервере приложений, если не определена явная зависимость от этих классов.

Более подробную информацию можно найти на WildFly 9 Documentation

В принципе, вы можете добавить модуль с разделяемыми библиотеками и сделать развертывание зависит от него.

Для Exemple, вы могли бы использовать JBoss-CLI (находится в папке Bin), чтобы добавить модуль с MySQL Connector 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

+0

где будет я поместить конфигурационный файл -> «JBoss развертывания-structure.xml» – user752590

+1

Согласно журналам вы отправленный, test.jar ищет класс 'SLE3DecryptLocal', который, как я полагаю, находится в вашем модуле' testclient'. Поэтому вы должны добавить 'jboss-deployment-structure.xml' в META-INF теста.jar – Sam

+0

Thankx для ответа! Я включил изменения, предложенные вами, но все же test.ear не развернут. Пожалуйста, см. Отредактированный раздел. – user752590

Смежные вопросы