当前位置: 首页 > 知识库问答 >
问题:

使用Arquillian-ClassNotFoundException JspServlet测试Spring REST服务

章烨烨
2023-03-14

我试图为用Spring编写的REST服务设置一个简单的Arquillian测试。下面是我的SpringBoot应用程序:

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

和控制器:

@RestController
public class TestController {
    @RequestMapping(value = "/test", method = RequestMethod.GET)
    public ResponseEntity test() {
        return ResponseEntity.status(HttpStatus.OK).body("Hello world");
    }
}
@RunWith(Arquillian.class)
public class TestControllerTest {
    @Deployment(testable = false)
    public static WebArchive createDeployment() {
        File[] files = Maven.resolver()
                .loadPomFromFile("pom.xml")
                .importRuntimeDependencies()
                .resolve().withTransitivity()
                .asFile();
        return ShrinkWrap.create(WebArchive.class)
                .addPackage(pl.fuv.Application.class.getPackage())
                .addPackage(TestController.class.getPackage())
                .addAsLibraries(files);
    }

    @Test
    @RunAsClient
    public void callRest(@ArquillianResteasyResource final WebTarget webTarget) {
        Response response = webTarget.path("/test").request().get();
        String result = response.readEntity(String.class);
        assertEquals("Hello world", result);
    }
}

共有1个答案

勾安翔
2023-03-14

您需要添加对Jasper的依赖:

<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>jasper</artifactId>
    <version>6.0.32</version>
</dependency>
 类似资料:
  • 我正在测试SpringREST服务,特别是POST方法 以下是我的控制器的代码片段: 员工类别: 我在pom.xml中也包含了jackson库的依赖 pom.xml 当我提交请求时,我的状态为:415不支持的媒体类型 这是我收到的错误消息:服务器拒绝了此请求,因为请求实体的格式不受请求方法的请求资源的支持。 请说明我做错了什么?

  • 接口: 下面的xml文件是glassfish配置文件。 application.xml 我没有任何用于此测试设置的.war文件,如何为web服务指定contextRoot?

  • 我得到以下Arquillian错误:org.jboss.Arquillian.Container.test.impl.client.deployment.ValidationException:DeploymentScenario包含一个与注册表中任何定义的容器都不匹配的目标(DEFAULT)。请在类路径中至少包含1个可部署容器。 这是我的骆驼路线课 @Singleton public class

  • 在我的应用程序中,我有很多REST服务。我已经编写了所有服务的测试: REST服务调用(例如)如下所示: 然后我检查了响应体-一切正常。缺点是,必须启动应用程序才能调用REST服务。 我现在的问题是如何在我的JUnit-@Test方法中做到这一点?它是一个Spring Boot应用程序(带有嵌入式tomcat)。 谢谢帮忙!

  • 问题内容: 我们有一个Java EE 7应用程序,并使用Arquillian进行测试。现在,我们要检查当前登录用户的某些权限。我的问题很基本,在测试用例中时如何登录用户?我已经阅读了ProgrammaticLogin在Arquillian测试和Embedded Glassfish,安全性和Arquillian问题中不起作用,但是并没有明确回答。我当前的方法是这样的: 现在,当我尝试运行此命令时,将

  • 当我删除的一个类时,它会按预期工作。 当我有两个类,但只有一个注释的时,它使用另一个,而不管怎么说。 当两个类都带有注释时,失败 deploymentException:WELD-001408类型[EntityManager]在注入点带有限定符[@Default]的不满足依赖项[[field]@Inject private Arquillian.ArquillianTestAbstract.em]