托管bean没有用嵌入式tomcat 7实例化

时间:2012-10-19 10:08:28

标签: unit-testing jsf tomcat

我有一个使用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

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

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

0 个答案:

没有答案