- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Arquillian[1] 在 Eclipse[2]-IDE 内的嵌入式 glassfish 环境中测试我的 J2EE-App。
package test.java;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.ArchivePaths;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(Arquillian.class)
public class ArquillianTest {
@Deployment
public static WebArchive createDeployment() {
return ShrinkWrap.create(WebArchive.class).addAsWebInfResource(EmptyAsset.INSTANCE,
ArchivePaths.create("beans.xml"));
}
@Test
public void test() {
Assert.assertNull(null);
}
}
测试执行正常,直到我添加显示的指令“.addAsWebInfResource(...)”。执行此操作时,会引发以下异常:
java.lang.IllegalArgumentException: ArquillianServletRunner not found. Could not determine ContextRoot from ProtocolMetadata, please contact DeployableContainer developer.
at org.jboss.arquillian.protocol.servlet.ServletUtil.determineBaseURI(ServletUtil.java:64)
at org.jboss.arquillian.protocol.servlet.ServletURIHandler.locateTestServlet(ServletURIHandler.java:60)
at org.jboss.arquillian.protocol.servlet.ServletMethodExecutor.invoke(ServletMethodExecutor.java:77)
at org.jboss.arquillian.container.test.impl.execution.RemoteTestExecuter.execute(RemoteTestExecuter.java:120)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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:135)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:115)
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(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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:75)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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:135)
at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.test(EventTestRunnerAdaptor.java:111)
at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:263)
at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:226)
at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:314)
at org.jboss.arquillian.junit.Arquillian.access$100(Arquillian.java:46)
at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:240)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:185)
at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:314)
at org.jboss.arquillian.junit.Arquillian.access$100(Arquillian.java:46)
at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:199)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:147)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
如果没有 beans.xml,当然 CDI 无法工作。
如何避免这种异常?
我已将我的 pom.xml 上传到 http://pastxt.com/P/7IT1VYWBUW
环境:jdk1.7.0_02/Win7/Eclipse Juno SR1
最佳答案
我已经查看了您的 POM 和测试。该问题似乎与 GLASSFISH-16964 有关。 ,查看以下日志条目:
SLF4J: The requested version 1.5.10 by your slf4j binding is not compatible with [1.6]
SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.
Dec 07, 2012 2:09:59 PM org.glassfish.api.ActionReport failure
SEVERE: Exception while loading the app
Dec 07, 2012 2:09:59 PM org.glassfish.deployment.admin.DeployCommand execute
SEVERE: Exception while loading the app : org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
您的项目中有一些引入 slf4j-api
v1.6.1 的依赖项。这似乎与嵌入式 GlassFish 的要求相冲突 - 我相信根据嵌入式 GlassFish 的日志,它是 1.5.10
。
要解决此特定问题,请降级到让 GlassFish 满意的版本。我将较低版本添加为托管依赖项。
<dependencyManagement>
<dependencies>
....
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.10</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencies>
当然,这可能会对依赖于较新版本 slf4-api 的其他库产生影响,因此您必须注意其他问题。
解决此问题的最佳方法是使用远程或托管 GlassFish Arquillian 适配器。
关于glassfish - Arquillian : Adding beans. xml 原因 "ArquillianServletRunner not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13750005/
我尝试学习 JBoss Arquillian,遵循 formal document并对配置 arquillian.xml 感到困惑。既然提到过一次here . 甚至我还发现在container ada
我有一套相当大的 Selenium 驱动的 UI 测试,维护起来非常麻烦。我读过有关 Arquillian Graphene 及其好处的文章,让 Selenium 的生活不再那么痛苦。 我想知道是否可
我想使用 arquillian 创建集成测试。作为部署,我想使用也用于在生产中部署的耳朵。 所以这是我的部署: @Deployment(testable = true) public static A
我想建立一个用于集成测试的基础设施。目前我们使用maven引导tomcat,然后执行httpunit测试。但当前的解决方案有一些缺点。 如果测试通过,提交到数据库的任何更改最终都需要手动回滚 在集成测
Arquillian 配置文件 Arquillian.xml 如何在项目和团队成员之间共享? C:\test\wildfly-8.1.0.Final -D
如何在不同的浏览器(例如 Chrome)中使用 Graphene 2? (默认的 htmlUnit 对我来说效果不佳。) 在 Arquillian 容器内运行 Wildfly 8.1 服务器,我想使用
我已经将 arquillian 与 jboss-as-7.1.1.Final 结合使用了一段时间。 我想开始使用 wildfly 8.0.0.Final,但我无法让它工作。 我只更改了我的 pom.x
我目前正在尝试使 arquillian 工作,但我的单元测试之一有问题。它在类 org.jboss.arquillian.core.api.threading.ExecutorService 上的 C
我正在尝试让 arquillian 与 jboss 7 一起运行。我已经从 JBoss 站点下载了 Quickstart 项目,地址为 http://www.jboss.org/jbossas/dow
在互联网上我经常找到关于这个主题的最新但相反的信息...,因此我想问一个关于最低要求的问题。 我的目标是对简单的 EJB 3.1 应用程序进行非常简单的集成测试: 使用 EclipseLink 的简单
我在 http://arquillian.org/guides/testing_java_persistence/ 上完成了 JPA 教程,但是当我尝试将测试(指南的“在 GlassFish 上运行测
我正在使用 arquillian 站点上的 Greeter 示例运行基本的 arquillian 单元测试。唯一的区别是在 Greeter.java 的 greet(PrintStream to, S
我无法进行简单的 Arquillian 测试运行。当我尝试使用 GlassFish 远程容器运行 Arquillian 时出现以下错误: Jun 12, 2016 3:50:05 PM org.jbo
创建 ShrinkWrap 后,我可以使用这行代码查看文件结构 System.out.println(webArchive.toString(true)); 我想知道是否可以在shrinkWrap中看
我正在使用带有嵌入式 glassfish 3.1.2.2 的 Arquillian 和 TestNG 编写集成测试。我希望能够并行运行这些测试,对于这种情况,我需要动态配置 glassfish 端口和
我在使用 pom.xml 依赖项创建 JUnit 测试时遇到问题。 测试正在使用 Arquillian 运行 @RunWith(Arquillian.class) 在这个方法中 @Deployment
我有一个简单的 Wildfly Swarm 应用程序,它具有 JAX-RS 端点和通过 CDI 注入(inject)端点的服务类。 我为我的应用程序编写了一个集成测试,看起来像这样: @RunWith
情况:JUnit 能够并行运行多个测试方法/类。我们有一堆使用 Arquillian 的集成测试。在这些测试中,我们使用我们的 maven-build war 工件作为 @Deployment 并使用
我在一个使用 weld CDI 和 JPA 的项目中安装 Arquillian,我正在尝试使用嵌入式 GlassFish 容器(我读到 Weld 嵌入式容器不支持 JPA)。 我在我的 pom.xml
我有一个使用 Arquillian 库进行测试的 Java 应用程序。我现在正尝试添加 Arquillian 记者扩展。如 https://github.com/arquillian/arquilli
我是一名优秀的程序员,十分优秀!