2

我正在尝试使用 httpunit servlet runner 测试以下 servlet 代码。除了包含 jstl 的 jsp 页面之外,这里一切都很好。

public class ListTenantServlet extends HttpServlet {

  private static final long serialVersionUID = 1L;
  private static final Logger log = Logger.getLogger(ListTenantServlet.class.getName());

  public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,
      IOException {

    doProcess(req, res);
  }

  public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException,
      IOException {

    doProcess(req, res);
  }

  private void doProcess(HttpServletRequest req, HttpServletResponse res) throws ServletException,
      IOException {
       CompanyStatus companyStatus = TenantStatus.Paid;
       req.setAttribute("companyStatus" companyStatus);
       RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/tenantList.jsp");
       dispatcher.forward(req, res);
  }

如果我尝试测试上面的代码,它会给出以下异常,但 servlet 在本地服务器中工作正常。

HTTP 请求错误:500 org.apache.jasper.JasperException:绝对 uri: http: //java.sun.com/jsp/jstl/core无法在 web.xml 或使用此应用程序部署的 jar 文件中解析 [ http://localhost/contextParam/tenantmgr/listTenant]

注意:我的 ListTenant.jsp 有 jstl 代码,如果我删除 jstl 代码,测试工作正常。

请帮助我使它工作。

4

1 回答 1

0

有点晚了,但是,您需要为 servlet 单元放置一些可用的罐子。起初它没有大部分。一个不错的解决方案,它只是从本地服务器复制相同的 jar,例如。如果您使用的是 tomcat TOMCAT_HOME/lib/*.jar。

我已经使用 ServletUnit+Spring+Maven 自动化 JSP 测试并添加了一些依赖项,请在此处查看我的答案

于 2014-05-13T14:26:24.110 回答