Arquillian не может загрузить LoadableExtension для встроенного контейнера Websphere

Я не могу заставить Arquillian и Websphere Embedded EJBContainer нормально работать вместе. Потому что я не могу использовать Jar-файл arquillian-was-embedded-8 (отсутствует в репозитории Company Maven и Jenkins).

Я безуспешно пытаюсь загрузить WebSphereExtension (LoadableExtension) в своем тесте Junit. Может ли кто-нибудь указать мне правильное решение?

Мой второй вопрос: даже если я загружу этот файл jar локально в свою IDE, у меня также возникнут проблемы с интерфейсом (на моих EJB). См. ту же проблему здесь: [arquillian -was-embedded-8 запускается, но не может внедрить EJB. NullPointerException Как этого избежать?

Мои зависимости maven:

 <dependency>
           <groupId>com.ibm.websphere</groupId>
           <artifactId>com.ibm.ws.ejb.embeddableContainer</artifactId>
           <version>8.0.0.11</version>
       <scope>test</scope>
    </dependency>       
<dependency>
           <groupId>com.ibm.websphere</groupId>
           <artifactId>endorsed_apis</artifactId>
           <version>8.0.0.11</version>
       <scope>test</scope>
    </dependency>       
<dependency>
            <groupId>org.jboss.arquillian</groupId>
            <artifactId>arquillian-bom</artifactId>
            <version>1.1.4.Final</version>
            <type>pom</type>
            <scope>import</scope>
     </dependency>       
     <dependency>
            <groupId>org.jboss.arquillian</groupId>
            <artifactId>arquillian-build</artifactId>
            <version>1.1.4.Final</version>
            <type>pom</type>
            <scope>import</scope>
     </dependency>       
 <dependency>
        <groupId>org.jboss.arquillian.container</groupId>
        <artifactId>arquillian-container-spi</artifactId>
    <version>1.1.4.Final</version>           
        <scope>test</scope>
     </dependency>                 
    <dependency>
        <groupId>org.jboss.arquillian.junit</groupId>
        <artifactId>arquillian-junit-container</artifactId>
    <version>1.1.4.Final</version>          
        <scope>test</scope>
    </dependency> 

Java 6, Junit 4.12, IDE Luna 4.4.2

Заранее спасибо, буду очень признателен


person smarra    schedule 28.10.2016    source источник


Ответы (1)


Я нашел решение. Мне не нужно создавать артефакты, если я использую это в src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension (это имя файла ) с содержимым --> /path/to/WebSphereExtension

Вторую проблему решаю так:

@EJB(mappedName = "java:global/test/MyEjbTest!com.home.coem.Processor")

Тест процессора1;

Processor — это имя интерфейса, а MyEjbTest — компонент реализации!

Я надеюсь, что это поможет кому-то

person smarra    schedule 31.10.2016
comment
WebSphere Application Server никогда не использует mappedName. Если это имеет эффект, я почему-то сомневаюсь, что вы на самом деле используете встраиваемый контейнер WebSphere. - person Brett Kail; 02.11.2016
comment
Привет, Бретт! В классе LoadableExtension у вас есть метод регистрации, который вы можете переопределить. Здесь вы можете сделать вызов WebSphereEmbeddedContainer. - person smarra; 02.11.2016