1

Web アプリケーションの context-params に問題があります。私の方法論

 getServletContext().getInitParameter("pass");

null を返しています。これが私のweb.xmlです

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Log4jWebDemo1</display-name>
<context-param>
    <param-name>log4j-config-location</param-name>
    <param-value>WEB-INF/log4j.properties</param-value>
</context-param>
    <context-param>
        <param-name>url</param-name>
        <param-value>dbc:postgresql://localhost/OlapTest</param-value>
    </context-param>
    <context-param>
        <param-name>name</param-name>
        <param-value>org.postgresql.Driver</param-value>
    </context-param>
    <context-param>
        <param-name>usr</param-name>
        <param-value>postgres</param-value>
    </context-param>
    <context-param>
        <param-name>pass</param-name>
        <param-value>admin</param-value>
    </context-param>
  <servlet>
    <servlet-name>Hello World</servlet-name>
    <servlet-class>pl.javastart.servlets.HelloWorldServlet</servlet-class>

  </servlet>
  <servlet-mapping>
    <servlet-name>Hello World</servlet-name>
    <url-pattern>/test</url-pattern>
  </servlet-mapping>
</web-app>

そして私のサーブレット:

public class HelloWorldServlet extends HttpServlet {
       private static final long serialVersionUID = 1L;
       private String url2 = ""; 
       private String driver = ""; 
       private String username = ""; 
       private String password = ""; 

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


        PrintWriter out = response.getWriter();
        url2 = getServletContext().getInitParameter("url");
        driver = getServletContext().getInitParameter("name");
        username = getServletContext().getInitParameter("usr");
        password = getServletContext().getInitParameter("pass");

        DatabaseHandling d1 = new DatabaseHandling(driver,url2,username,password);

        d1.createConnection(out);

        }
}

アプリケーションを実行した後、スローします

java.lang.NullPointerException

4

1 に答える 1

1

NullPointerException 例外につながる可能性はほとんどありません

  1. PostgresSQl ドライバー ( jar ファイル) ライブラリがクラスパスに追加されていません。
  2. DB との接続用に記述されたコードを確認するために、DatabaseHandling クラスを共有する必要があります。
  3. 以下のように web.xml を変更します。

    <context-param> <param-name>url</param-name> <param-value>jdbc:postgresql://localhost/OlapTest</param-value> </context-param>

Jが行方不明。dbcというエラーを確認してください。

于 2016-09-30T11:37:59.970 に答える