警告: StandardWrapperValve[jsp]: PWC1406: Servlet.service() for servlet jsp threw exception
可是我实在是不知道我的问题出在哪,我用工厂建的类,我觉得应该是建类没建成功?
这是我的config.properties
mlpUserDao=com.hxy.mlp.dao.MlpUserDao
mlpHomeDao=com.hxy.mlp.dao.MlpHomeDao
mlpCategoryDao=com.hxy.mlp.dao.MlpCategoryDao
mlpArticleDao=com.hxy.mlp.dao.MlpArticleDao
mlpReviewDao=com.hxy.mlp.dao.MlpReviewDao
mlpPictureDao=com.hxy.mlp.dao.MlpPictureDao
mlpMsgDao=com.hxy.mlp.dao.MlpMsgDao
mlpUserService=com.hxy.mlp.service.MlpUserService
mlpHomeService=com.hxy.mlp.service.MlpHomeService
mlpCategoryService=com.hxy.mlp.service.MlpCategoryService
mlpArticleService=com.hxy.mlp.service.MlpArticleService
mlpReviewService=com.hxy.mlp.service.MlpReviewService
mlpPictureService=com.hxy.mlp.service.MlpPictureService
mlpMsgService=com.hxy.mlp.service.MlpMsgServiceStartServlet
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.hxy.mlp.common;import java.io.FileInputStream;
import java.io.InputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;/**
 *
 * @author Arondight
 */
public class StartServlet extends HttpServlet {    @Override
    public void init() throws ServletException {
        try {
            String path = this.getServletContext().getRealPath("/WEB-INF/config.properties");
            InputStream in = new FileInputStream(path);
            Config.prop.load(in);
        } catch (Exception ex) {
            throw new ServletException(ex.getMessage());
        }
    }
}工厂类
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.hxy.mlp.common;import com.hxy.mlp.idao.*;
import com.hxy.mlp.iservice.*;/**
 *
 * @author Arondight
 */
public class MyFactory {    private static Object getObject(String name) {
        try {
            String className = Config.prop.getProperty(name);
            Object obj = Class.forName(className).newInstance();
            return obj;
        } catch (Exception ex) {
            ex.printStackTrace();
            return null;
        }
    }    public static IMlpUserDao createMlpUserDao() {
        return (IMlpUserDao) getObject("mlpUserDao");
    }    public static IMlpHomeDao createMlpHomeDao() {
        return (IMlpHomeDao) getObject("mlpHomeDao");
    }    public static IMlpCategoryDao createMlpCategoryDao() {
        return (IMlpCategoryDao) getObject("mlpCategoryDao");
    }    public static IMlpArticleDao createMlpArticleDao() {
        return (IMlpArticleDao) getObject("mlpArticleDao");
    }    public static IMlpReviewDao createMlpReviewDao() {
        return (IMlpReviewDao) getObject("mlpReviewDao");
    }    public static IMlpPictureDao createMlpPictureDao() {
        return (IMlpPictureDao) getObject("mlpPictureDao");
    }    public static IMlpMsgDao createMlpMsgDao() {
        return (IMlpMsgDao) getObject("mlpMsgDao");
    }    public static IMlpUserService createMlpUserService() {
        return (IMlpUserService) getObject("mlpUserService");
    }    public static IMlpHomeService createMlpHomeService() {
        return (IMlpHomeService) getObject("mlpHomeService");
    }    public static IMlpCategoryService createMlpCategoryService() {
        return (IMlpCategoryService) getObject("mlpCategoryService");
    }    public static IMlpArticleService createMlpArticleService() {
        return (IMlpArticleService) getObject("mlpArticleService");
    }    public static IMlpReviewService createMlpReviewService() {
        return (IMlpReviewService) getObject("mlpReviewService");
    }    public static IMlpPictureService createMlpPictureService() {
        return (IMlpPictureService) getObject("mlpPictureService");
    }    public static IMlpMsgService createMlpMsgService() {
        return (IMlpMsgService) getObject("mlpMsgService");
    }
}<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
--><!DOCTYPE web-app
PUBLIC "-//Sun Microsystems,Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <servlet>
        <servlet-name>StartServlet</servlet-name>
        <servlet-class>com.hxy.mlp.common.StartServlet</servlet-class>
        <load-on-startup>0</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>StartServlet</servlet-name>
        <url-pattern>/StartServlet</url-pattern>
    </servlet-mapping>
</web-app>
总是出空指针异常,也就是说工厂建对象失败了?为什么啊,困然了我好几天的问题,求高手解决。

解决方案 »

  1.   

    因為你的getObject發生錯誤時回傳null,所以之後就是NullPointException
    想辦法取的getObject的錯誤訊息,就知道怎麼處理了。
      

  2.   

    警告: StandardWrapperValve[jsp]: PWC1406: Servlet.service() for servlet jsp threw exception
    java.lang.NullPointerException
    at org.apache.jsp.category.categoryManage_jsp._jspService(categoryManage_jsp.java:71)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
    at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    at java.lang.Thread.run(Thread.java:722)这是错误信息……