0

我有一个使用 myfaces 和 primefaces 的相当小的 JSF 2 应用程序。它在 Eclipse 中设置为 tomcat 7 服务,并且工作正常,包括 ajax 和作品。

但是,我想对其进行单元测试,因此我添加了 Tomcat 7 作为测试依赖项并创建了适当的启动代码。

// create tomcat
Tomcat tomcat = new Tomcat();
tomcat.setPort(HTTP_PORT);

// add "web" as a webapp, all classes that are in the current classpath (all in eclipse) are available
Context ctx = tomcat.addWebapp("/" + CONTEXT_PREFIX, new File("src/main/webapp").getAbsolutePath());

// start the server (but do not wait)
tomcat.start();

这也正确启动,但未加载托管 bean。因此,即使页面看起来不错,也没有任何行为。问题似乎和这篇 Jetty 博客类似,讲的是 Jetty 如何只搜索某个位置的托管 bean。

http://musingsofaprogrammingaddict.blogspot.com.au/2009/12/running-jsf-2-on-embedded-jetty.html

Tomcat 服务器的 Eclipse 中的 Web 部署程序集将所有类文件放在 WEB-INF/classes 中,所以这可能是问题所在。

嵌入式 Tomcat 7 是否可以使用 addWebapp(以便对 web.xml 进行单元测试)但将 WEB-INF/classes 重定向到正确的目录?

4

0 回答 0