2011-9-27 12:42:26 org.apache.coyote.http11.Http11AprProtocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2011-9-27 12:42:26 org.apache.coyote.ajp.AjpAprProtocol init
信息: Initializing Coyote AJP/1.3 on ajp-8009
2011-9-27 12:42:26 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 328 ms
2011-9-27 12:42:26 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2011-9-27 12:42:26 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/5.5.20
2011-9-27 12:42:26 org.apache.catalina.core.StandardHost start
信息: XML validation disabled
2011-9-27 12:42:26 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextInitialized()
2011-9-27 12:42:26 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
2011-9-27 12:42:26 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextInitialized()
2011-9-27 12:42:26 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
2011-9-27 12:42:26 org.apache.catalina.core.ApplicationContext log
信息: org.apache.webapp.balancer.BalancerFilter: init(): ruleChain: [org.apache.webapp.balancer.RuleChain: [org.apache.webapp.balancer.rules.URLStringMatchRule: Target string: News / Redirect URL: http://www.cnn.com], [org.apache.webapp.balancer.rules.RequestParameterRule: Target param name: paramName / Target param value: paramValue / Redirect URL: http://www.yahoo.com], [org.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect URL: http://jakarta.apache.org]]
2011-9-27 12:42:30 org.apache.coyote.http11.Http11AprProtocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2011-9-27 12:42:30 org.apache.coyote.ajp.AjpAprProtocol start
信息: Starting Coyote AJP/1.3 on ajp-8009
2011-9-27 12:42:30 org.apache.catalina.storeconfig.StoreLoader load
信息: Find registry server-registry.xml at classpath resource
2011-9-27 12:42:30 org.apache.catalina.startup.Catalina start
信息: Server startup in 4157 ms
[framework] 2011-09-27 12:42:53,906 - org.apache.struts.action.RequestProcessor -0    [http-8080-1] WARN  org.apache.struts.action.RequestProcessor  - Unhandled Exception thrown: class java.lang.NullPointerException
 [framework] 2011-09-27 12:42:53,906 - org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/log].[action] -0    [http-8080-1] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/log].[action]  - Servlet.service() for servlet action threw exception
 java.lang.NullPointerException
at com.hello.model.service.impl.UserService.isValidUser(UserService.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy1.isValidUser(Unknown Source)
at com.hello.view.action.LoginAction.execute(LoginAction.java:50)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:63)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:833)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:639)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1285)
at java.lang.Thread.run(Thread.java:662)
userservice:
package com.hello.model.service.impl;import java.util.List;import com.hello.data.bean.User;
import com.hello.data.dao.IUserDAO;
import com.hello.model.service.IUserService;
@SuppressWarnings("unchecked")
public class UserService implements IUserService {
public User isValidUser(String username, String passwd) {
List list = userDAO.findByUsername(username);
User user = null;
if (list.size() > 0) {
user = (User) list.get(0);
if (user.getPasswd().equals(passwd))
return user;
}
return  null;
}

public void updateUser( String username, String passwd){
User user= (User) userDAO.findByUsername(username);
 
userDAO.save(user);
}

private IUserDAO userDAO;
public IUserDAO getUserDAO() {
return userDAO;
} public void setUserDAO(IUserDAO userDAO) {
this.userDAO = userDAO;
}

}

解决方案 »

  1.   

    程序在public User isValidUser(String username, String passwd) {
    List list = userDAO.findByUsername(username);
    User user = null;
    if (list.size() > 0) {
    user = (User) list.get(0);
    if (user.getPasswd().equals(passwd))
    return user;
    }
    return null;
    }报出了空指针异常,原因是当list为null的时候,调用list.size()报空指针异常,你修改为下面代码
     public User isValidUser(String username, String passwd) {
            List list = userDAO.findByUsername(username);
            User user = null;
            if (list!=null&&list.size() > 0) {
                user = (User) list.get(0);
                if (user.getPasswd().equals(passwd))
                    return user;
            }
            return null;
        }
      

  2.   

    java.lang.NullPointerExceptionat com.hello.model.service.impl.UserService.isValidUser(UserService.java:15)
     这么明显的错误