【问题标题】:Passing `init-param` to servlet from Guice not working从 Guice 将“init-param”传递给 servlet 不起作用
【发布时间】:2015-10-26 05:12:23
【问题描述】:

尝试使用 Guice (MyServletModule.java) 将初始化参数传递给我的 servlet:

    Map<String, String> params = new HashMap<>();
    params.put("key1", "value1");
    params.put("key2", "value2");
    this.serve("/hi").with(HelloWorldServlet.class, params);

然后尝试在我的 servlet 中打印出来:

    resp.setContentType("text/plain");
    resp.getWriter().println("Hello, my singleton AppEngine");

    resp.getWriter().println("key1: " + this.getServletContext().getInitParameter("key1"));

我总是收到null。我究竟做错了什么?我怀疑我将 Guice Jersey 与 GAE 集成有问题,但无法排除故障。

文件:

配置:

  • Google App Engine for Java 1.9.26
  • Guice 4.0
  • 泽西 2.5.1
  • 对象化 5.1.7

【问题讨论】:

    标签: java google-app-engine servlets guice jersey-2.0


    【解决方案1】:

    将以下内容添加到 servlet 有效:

    private String key1 = null;
    
    private String key2 = null;
    
    
    @Override
    public void init(ServletConfig config) throws ServletException {
        this.key1 = config.getInitParameter("key1");
        this.key2 = config.getInitParameter("key2");
    }
    

    然后在doGet(...)方法中:

        resp.getWriter().println("key1: " + this.key1);
        resp.getWriter().println("key2: " + this.key2);
    

    【讨论】:

      猜你喜欢
      • 2014-08-18
      • 1970-01-01
      • 2012-01-30
      • 2017-08-19
      • 2010-12-16
      • 2015-01-18
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多