- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试运行 Jettys ServletTester
在我的 JUnit 测试中。我创建了一个简单的 HelloServlet
首先测试设置,但我得到一个 IllegalAccessException
当我尝试请求 servlet 时。这是我到目前为止所拥有的:
我的单元测试
@Before
public void setUp() throws Exception {
tester = new ServletTester();
tester.setContextPath("/context");
tester.addServlet(HelloServlet.class, "/hello/*");
tester.start();
}
@After
public void tearDown() throws Exception {
tester.stop();
}
@Test
public void testDefaultServlet() throws Exception {
HttpTester request = new HttpTester();
request.setMethod("GET");
request.setHeader("Host","127.0.0.1");
request.setURI("/context/hello/info");
request.setVersion("HTTP/1.0");
HttpTester response = new HttpTester();
response.parse(tester.getResponses(request.generate()));
assertNull(response.getMethod());
assertEquals(200,response.getStatus());
assertEquals("<h1>Hello Servlet</h1>",response.getContent());
}
HelloServlet
class HelloServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter out = resp.getWriter();
out.println("Hello, World!");
out.flush();
}
}
2009-10-20 09:36:28.973::INFO: Logging to STDERR via org.mortbay.log.StdErrLog
2009-10-20 09:36:28.989::INFO: jetty-6.1.21
2009-10-20 09:36:29.098::INFO: Started LocalConnector@0.0.0.0:1
2009-10-20 09:36:29.161:/context:WARN: unavailable
java.lang.IllegalAccessException: Class org.mortbay.jetty.servlet.Holder can not access a member of class my.package.HelloServlet with modifiers ""
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
at java.lang.Class.newInstance0(Class.java:349)
at java.lang.Class.newInstance(Class.java:308)
at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:428)
at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:915)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
at org.mortbay.jetty.LocalConnector.accept(LocalConnector.java:186)
at org.mortbay.jetty.AbstractConnector$Acceptor.run(AbstractConnector.java:707)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
最佳答案
您的 HelloServlet 必须作为公共(public)类实现:
public class HelloServlet extends HttpServlet { ... }
关于unit-testing - 在 JUnit 测试中运行 Jettys ServletTester,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1593016/
我可以使用jetty的ServletTester通过POST方式发送文件吗?如何?我尝试发送原始请求字符串: String reqString = "POST /avScan HTTP/1.1\r\
我正在使用 jetty 进行单元测试,我不仅想为我的被测 servlet 提供服务,还想为静态页面提供服务。我的应用程序需要静态页面。我正在像这样初始化 jetty tester = new Serv
我正在尝试运行 Jettys ServletTester在我的 JUnit 测试中。我创建了一个简单的 HelloServlet首先测试设置,但我得到一个 IllegalAccessException
我正在测试一个 Scalatra servlet,它在其 init(context: ServletContext) 方法中执行一些重要的初始化。 在测试期间(用 ScalatraSuite ) in
Jetty 的 ServletTester 对于测试 Servlet 应用非常有用。我之前使用过 Jetty 6 的 ServletTester,它运行良好。 例如: jetty 6.x pom.xm
我是一名优秀的程序员,十分优秀!