Java NullpointerException Arquillian测试Ask
大家好,我是阿奎利安测试的新手,我正在努力。这里的问题是,我有一个名为Java NullpointerException Arquillian测试Ask,java,maven,jakarta-ee,jboss7.x,jboss-arquillian,Java,Maven,Jakarta Ee,Jboss7.x,Jboss Arquillian,大家好,我是阿奎利安测试的新手,我正在努力。这里的问题是,我有一个名为usermanagement的无状态服务,它实现了usermanagementlocal接口。当我尝试将它注入arquillian测试时,我得到了nullpointerException任何想法 这就是测试: @RunWith(Arquillian.class) public class UserManagmentTest { @Deployment public static JavaArchive createDeplo
usermanagement
的无状态服务,它实现了usermanagementlocal
接口。当我尝试将它注入arquillian测试时,我得到了nullpointerException
任何想法
这就是测试:
@RunWith(Arquillian.class)
public class UserManagmentTest {
@Deployment
public static JavaArchive createDeployment() {
return ShrinkWrap.create(JavaArchive.class,"test.jar")
.addClasses(User.class,Admin.class,Customer.class,UserManagment.class,UserManagmentLocal.class)
.addAsManifestResource("META-INF/persistence.xml", "persistence.xml")
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
}
@Inject
private UserManagmentLocal userManagment;
@Test
public void should_create_greeting() throws UserNotFoundException {
assertEquals(2, userManagment.findAllUsers().size());
}
这就是服务:
@Stateless(name="userManagment")
@LocalBean
public class UserManagment implements UserManagmentLocal {
@PersistenceContext(unitName = "MagasinElectronique-ejb")
EntityManager em;
static Logger logger = Logger.getLogger(UserManagment.class);
@Override
public List<User> findAllUsers() throws UserNotFoundException {
try {
TypedQuery<User> q = em.createQuery("SELECT u FROM User u", User.class);
return q.getResultList();
} catch (NoResultException e) {
logger.error("No User Found",e);
throw new UserNotFoundException();
}
}
@无状态(name=“usermanagement”)
@本地豆
公共类UserManagement实现UserManagementLocal{
@PersistenceContext(unitName=“MagasineElectronique ejb”)
实体管理器;
静态记录器=Logger.getLogger(usermanagement.class);
@凌驾
public List findAllUsers()引发UserNotFoundException{
试一试{
TypedQuery q=em.createQuery(“从用户u中选择u”,User.class);
返回q.getResultList();
}捕获(noresulte异常){
记录器错误(“未找到用户”,e);
抛出新的UserNotFoundException();
}
}
例外情况:
java.lang.NullPointerException
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
位于org.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(Reflections.java:433)
位于org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(EnterpriseBeanProxyMethodHandler.java:128)
位于org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance.invoke(EnterpriseTargetBeanInstance.java:56)
在org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance.invoke(InjectionPointPropagatingEnterpriseTargetBeanInstance.java:67)上
位于org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:100)
在services.usermanagementlocal$2004037709$Proxy$\u$\ uWeld$enterpriseeproxy$.findAllUsers(未知来源)
在arquillian.usermanagementtest.when\u创建问候语(usermanagementtest.java:55)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
位于org.junit.runners.model.FrameworkMethod$1.runReflectVeCall(FrameworkMethod.java:50)
位于org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
位于org.junit.runners.model.FrameworkMethod.invokeeexplosive(FrameworkMethod.java:47)
位于org.jboss.arquillian.junit.arquillian$8$1.invoke(arquillian.java:379)
位于org.jboss.arquillian.container.test.impl.execution.LocalTestExecuter.execute(LocalTestExecuter.java:60)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
位于org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
位于org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
在org.jboss.arquillian.core.impl.EventContextImpl.procedure(EventContextImpl.java:85)
位于org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:143)
位于org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114)
位于org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
在org.jboss.arquillian.container.test.impl.client.protocol.local.LocalContainerMethodExecutor.invoke(LocalContainerMethodExecutor.java:50)上
位于org.jboss.arquillian.container.test.impl.execution.RemoteTestExecuter.execute(RemoteTestExecuter.java:109)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
位于org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
位于org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
在org.jboss.arquillian.core.impl.EventContextImpl.procedure(EventContextImpl.java:85)
位于org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:143)
位于org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114)
位于org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
位于org.jboss.arquillian.container.test.impl.execution.ClientTestExecuter.execute(ClientTestExecuter.java:57)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
位于org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
位于org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
在org.jboss.arquillian.core.impl.EventContextImpl.procedure(EventContextImpl.java:85)
位于org.jboss.arquillian.container.test.impl.client.ContainerEventController.createContext(ContainerEventController.java:142)
位于org.jboss.arquillian.container.test.impl.client.ContainerEventController.createTestContext(ContainerEventController.java:129)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
A.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>TheGenie</groupId>
<artifactId>MagasinElectronique</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>MagasinElectronique-ejb</artifactId>
<packaging>ejb</packaging>
<dependencies>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
</dependency>
<!-- Startarquillian -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.junit</groupId>
<artifactId>arquillian-junit-container</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.container</groupId>
<artifactId>arquillian-weld-ee-embedded-1.1</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.weld</groupId>
<artifactId>weld-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<scope>test</scope>
</dependency>
<!-- Endarquillian -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ejb-plugin</artifactId>
<version>${version.ejb.plugin}</version>
<configuration>
<ejbVersion>3.2</ejbVersion>
</configuration>
</plugin>
<!-- Startarquillian -->
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<!-- Endarquillian -->
</plugins>
</build>
<!-- Startarquillian -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>1.1.13.Final</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.container</groupId>
<artifactId>arquillian-weld-ee-embedded-1.1</artifactId>
<version>1.0.0.CR9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.weld</groupId>
<artifactId>weld-core</artifactId>
<version>2.3.5.Final</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>1.1.13.Final</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.12.3</version>
</dependency>
</dependencies>
</dependencyManagement>
<!-- Endarquillian -->