cactus+jetty的问题?困扰了很久。

chinahrb_sunlei 2005-11-28 03:42:15
我的环境是j2sdk1.4+cactus1.7+jetty5.1

我按照JUnit in Action 第8章的例子,写了如下代码:
===================================================
package testfk8020.container.cactus;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

public class SampleServlet extends HttpServlet {
public boolean isAuthenticated(HttpServletRequest request){
HttpSession session=request.getSession(false);
if(session==null){
return false;
}
String authenticationAttribute=(String)session.getAttribute("authenticated");
return Boolean.valueOf(authenticationAttribute).booleanValue();
}
}

-------------------------------------------------------------------------------------
package testfk8020.container.cactus;

import org.apache.cactus.ServletTestCase;
import org.apache.cactus.WebRequest;

public class TestSampleServletIntegration extends ServletTestCase {
private SampleServlet servlet;
/*
* @see TestCase#setUp()
*/
protected void setUp(){
servlet=new SampleServlet();
}
public void testIsAuthenticatedAuthenticated(){
session.setAttribute("authenticated","true");
assertTrue(servlet.isAuthenticated(request));
}
public void testIsAuthenticatedNotAuthenticated(){
assertFalse(servlet.isAuthenticated(request));
}
public void beginIsAuthenticatedNoSession(WebRequest request){
request.setAutomaticSession(false);
}
public void testIsAuthenticatedNoSession(){
assertFalse(servlet.isAuthenticated(request));
}
}
----------------------------------------------------------------------------------------
package testfk8020.container.cactus;

import org.apache.cactus.extension.jetty.JettyTestSetup;

import junit.framework.Test;
import junit.framework.TestSuite;

public class TestAllWithJetty {
public static Test suite(){
System.setProperty("cactus.contextURL","http://localhost:8080/test");
TestSuite suite=new TestSuite("All tests with Jetty");
suite.addTestSuite(TestSampleServletIntegration.class);
return new JettyTestSetup(suite);
}
}

=======================================================================
可是当我在Eclipse中运行junit test的时候,TestAllWithJetty的(TestSampleServletIntegration.class)这一步总是报:
Failed to invoke suite(): java.lang.ExceptionInInitializerError

请问是什么原因!!!!!!!!!!!!!!!!!!
...全文
106 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wind_rain 2005-12-30
  • 打赏
  • 举报
回复
silverend 2005-12-30
  • 打赏
  • 举报
回复
ExceptionInInitializerError

Cactus的机制要求,在测Servlet、Filter、jsp时,得在下述方法中添加相应的请求参数
public void begin……(WebRequest request){
request.addParameter("……","……")
}
来完成参数的初始化,这相当于实际应用中我们在客户端向服务器输入些请求参数;
用Cactus进行容器测试,是通过上述方法来完成初始化的
Bluce 2005-12-16
  • 打赏
  • 举报
回复
学习

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧