[arquillian-issues] [JBoss JIRA] (ARQ-1889) CDI Injection not working in WebSphere Containers (V8)

Gerhard Poul (JIRA) issues at jboss.org
Sat Mar 21 16:03:19 EDT 2015


     [ https://issues.jboss.org/browse/ARQ-1889?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gerhard Poul closed ARQ-1889.
-----------------------------
      Assignee: Gerhard Poul
    Resolution: Cannot Reproduce Bug


> CDI Injection not working in WebSphere Containers (V8)
> ------------------------------------------------------
>
>                 Key: ARQ-1889
>                 URL: https://issues.jboss.org/browse/ARQ-1889
>             Project: Arquillian
>          Issue Type: Bug
>          Components: WebSphere Containers
>    Affects Versions: was_1.0.0.Beta1
>         Environment: Windows 7, IBM WebSphere Application Server (8.0.0.9), IBM RSA 8
>            Reporter: Saurabh Agarwal
>            Assignee: Gerhard Poul
>            Priority: Blocker
>         Attachments: ArquillianInjectionTest.java, StackTrace.txt
>
>
> Hi,
> I have gone through ARQ-1488 and it depicts the same problem what I am facing.
> In my IBM WebSphere Application Server (8.0.0.9), CDI is not working and it is giving me the NP exception. 
> Please note I am not using MAVEN build but have all required JARS file in my web-inf/lib directory
> JARS List I am having
> ------------------------------
> arquillian-config-api.jar
> arquillian-config-impl-base.jar
> arquillian-config-spi.jar
> arquillian-container-impl-base.jar
> arquillian-container-spi.jar
> arquillian-container-test-api.jar
> arquillian-container-test-impl-base.jar
> arquillian-container-test-spi.jar
> arquillian-core-api.jar
> arquillian-core-impl-base-1.1.5.Final.jar
> arquillian-core-spi-1.1.5.Final.jar
> arquillian-junit-container.jar
> arquillian-junit-core.jar
> arquillian-protocol-jmx-1.1.5.Final.jar
> arquillian-protocol-servlet.jar
> arquillian-protocol.jar
> arquillian-test-api.jar
> arquillian-test-impl-base.jar
> arquillian-test-spi.jar
> arquillian-testenricher-cdi.jar
> arquillian-testenricher-ejb.jar
> arquillian-testenricher-initialcontext.jar
> arquillian-testenricher-resource.jar
> arquillian-was-remote.jar
> commons-fileupload-1.2.1.jar
> commons-io-1.4.jar
> deltaspike-core-api-1.0.0.jar
> deltaspike-core-impl-1.0.0.jar
> deltaspike-jsf-module-api-1.0.0.jar
> deltaspike-jsf-module-impl-1.0.0.jar
> deltaspike-security-module-api-1.0.0.jar
> deltaspike-security-module-impl-1.0.0.jar
> itext-1.3.jar
> jsfcore.jar
> junit.jar
> org.hamcrest.core_1.3.0.v201303031735.jar
> poi-3.8-20120326.jar
> primefaces-4.0.6.jar
> shrinkwrap-api.jar
> shrinkwrap-descriptors-api-base.jar
> shrinkwrap-descriptors-api-javaee.jar
> shrinkwrap-descriptors-impl-base.jar
> shrinkwrap-descriptors-impl-javaee.jar
> shrinkwrap-descriptors-spi.jar
> shrinkwrap-impl-base.jar
> shrinkwrap-spi.jar
> Code snippet 
> ------------------
> import javax.inject.Inject;
> import org.jboss.arquillian.container.test.api.Deployment;
> import org.jboss.arquillian.junit.Arquillian;
> import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
> import org.junit.Assert;
> import org.junit.Test;
> import org.junit.runner.RunWith;
> import com.ford.jcoe.jab.inbound.booking.ui.bean.ListBookingBean;
> import com.ford.jcoe.jab.inbound.booking.ui.bean.TestArquillianBean;
> /**
>  * TODO - Place class description here
>  */
> @RunWith(Arquillian.class)
> public class ArquillianInjectionTest extends BaseArquillianPersistenceTest {
>     @Inject
>     ListBookingBean b;
>     /**
>      * TODO - Place method description here
>      * 
>      * @return
>      */
>     @Deployment
>     public static EnterpriseArchive createTestArchive() {
>         java.net.Authenticator.setDefault(basicAuthAuthenticator);
>         return BaseArquillianPersistenceTest.createTestArchive("JabEAR");
>     }
>     /**
>      * Unit Test Method
>      */
>     @Test
>     public void testInjection() {
>         String stringRepresentation = null;
>         try {
>             System.out.println("Not Working Step 1");
>             stringRepresentation = this.b.toString();
>             System.out.println("Not Working Step 2");
>         } catch (final NullPointerException npe) {
>             Assert.fail("Injection failed.");
>         }
>         Assert.assertNotNull(stringRepresentation);
>     }
> }
> Exception I am getting 
> -----------------------------
> Null Pointer exception in  stringRepresentation = this.b.toString(); as b is null.
> Complete stack trace
> --------------------------
> java.lang.AssertionError: Injection failed.
> 	at org.junit.Assert.fail(Assert.java:88)
> 	at ArquillianInjectionTest.testInjection(ArquillianInjectionTest.java:50)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
> 	at java.lang.reflect.Method.invoke(Method.java:611)
> 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> 	at org.jboss.arquillian.junit.Arquillian$6$1.invoke(Arquillian.java:301)
> 	at org.jboss.arquillian.container.test.impl.execution.LocalTestExecuter.execute(LocalTestExecuter.java:60)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
> 	at java.lang.reflect.Method.invoke(Method.java:611)
> 	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
> 	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145)
> 	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116)
> 	at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
> 	at org.jboss.arquillian.container.test.impl.client.protocol.local.LocalContainerMethodExecutor.invoke(LocalContainerMethodExecutor.java:50)
> 	at org.jboss.arquillian.container.test.impl.execution.RemoteTestExecuter.execute(RemoteTestExecuter.java:109)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
> 	at java.lang.reflect.Method.invoke(Method.java:611)
> 	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
> 	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145)
> 	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116)
> 	at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
> 	at org.jboss.arquillian.container.test.impl.execution.ClientTestExecuter.execute(ClientTestExecuter.java:57)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
> 	at java.lang.reflect.Method.invoke(Method.java:611)
> 	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
> 	at org.jboss.arquillian.container.test.impl.client.ContainerEventController.createContext(ContainerEventController.java:142)
> 	at org.jboss.arquillian.container.test.impl.client.ContainerEventController.createTestContext(ContainerEventController.java:129)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
> 	at java.lang.reflect.Method.invoke(Method.java:611)
> 	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
> 	at org.jboss.arquillian.test.impl.TestContextHandler.createTestContext(TestContextHandler.java:102)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
> 	at java.lang.reflect.Method.invoke(Method.java:611)
> 	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
> 	at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:84)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
> 	at java.lang.reflect.Method.invoke(Method.java:611)
> 	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
> 	at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:65)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
> 	at java.lang.reflect.Method.invoke(Method.java:611)
> 	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
> 	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145)
> 	at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.test(EventTestRunnerAdaptor.java:111)
> 	at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:294)
> 	at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:269)
> 	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> 	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> 	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> 	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> 	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> 	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> 	at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:193)
> 	at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:345)
> 	at org.jboss.arquillian.junit.Arquillian.access$200(Arquillian.java:49)
> 	at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:207)
> 	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> 	at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:155)
> 	at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
> 	at org.junit.runner.JUnitCore.run(JUnitCore.java:138)
> 	at org.jboss.arquillian.junit.container.JUnitTestRunner.execute(JUnitTestRunner.java:66)
> 	at org.jboss.arquillian.protocol.servlet.runner.ServletTestRunner.executeTest(ServletTestRunner.java:159)
> 	at org.jboss.arquillian.protocol.servlet.runner.ServletTestRunner.execute(ServletTestRunner.java:125)
> 	at org.jboss.arquillian.protocol.servlet.runner.ServletTestRunner.doGet(ServletTestRunner.java:89)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:575)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
> 	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1230)
> 	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:779)
> 	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
> 	at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
> 	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
> 	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:79)
> 	at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:960)
> 	at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1064)
> 	at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
> 	at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:914)
> 	at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
> 	at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)
> 	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:453)
> 	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:515)
> 	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:306)
> 	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:277)
> 	at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> 	at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> 	at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
> 	at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> 	at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> 	at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> 	at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
> 	at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
> 	at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
> 	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1702)
> Most Important Thing
> ------------------------------
> I have commented out the code in WebSphereRemoteContainer.java (for WAS 8 - https://github.com/arquillian/arquillian-container-was) which is responsible for deploying and un-deploying the code.
> For our requirements, the code is already deployed and all we need to run the test on PRE DEPLOYED code only.
> Methods which I have modified 
> 1. public ProtocolMetaData deploy(final Archive<?> archive) throws DeploymentException
> 2. public void undeploy(final Archive<?> archive) throws DeploymentException
> I have just commented out the code which install / uninstall the application.
> Can someone help me in getting this issue resolved. 
> Please let me know if I need to provide more information for debugging purpose.



--
This message was sent by Atlassian JIRA
(v6.3.11#6341)


More information about the arquillian-issues mailing list