【发布时间】:2012-04-02 14:07:03
【问题描述】:
我知道“嵌入式”是一个重载的术语,尤其是对于 Java 世界中的 Web 组件而言。我用它来表示“完全在没有 xml 配置的 Java 类中完成”。下面是一个例子。
我的问题是 - 是否有一种行之有效的方法来对 JSF-2.0 组件进行嵌入式 Web 测试?我的意思是通过打开一个端口来启动服务器(硒测试理论上可以连接到该端口)。我对 Selenium 初创公司不感兴趣。
我想要的只是能够指向一个现有的 JSF-2.0 页面、一个现有的支持 bean,并将它提供给给定的端口。
与此最接近的似乎是 Jetty 中的此页面:http://musingsofaprogrammingaddict.blogspot.com.au/2009/12/running-jsf-2-on-embedded-jetty.html
我希望 Tomcat 或 Glassfish 或其他库中有另一个示例可以更好地解释这一点。
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.AbstractHandler;
public class HelloHandler extends AbstractHandler
{
public void handle(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html;charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
baseRequest.setHandled(true);
response.getWriter().println("<h1>Hello World</h1>");
}
public static void main(String[] args) throws Exception
{
Server server = new Server(8080);
server.setHandler(new HelloHandler());
server.start();
server.join();
}
}
【问题讨论】:
标签: tomcat jsf-2 embedded-jetty web-testing