[2009-06-28 00:27:39] WARN [Unhandled Exception thrown: class java.lang.NullPointerException]
[2009-06-28 00:27:39] ERROR [Servlet.service() for servlet action threw exception]
java.lang.NullPointerException
at com.gwan.web.LoginAction.execute(LoginAction.java:26)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)
解决方案 »
- 关于Spring事务控制
- Java 一个能输出也能接收的通信界面
- mail.jar源码官方下载地址
- 关于cxf的问题
- 数据库连接问题
- 关于spring的配置
- 关于javax.servlet.ServletResponse源代码
- 用WSDL2Java生成客户端代码时,报java.net.MalformedURLException: no protocol错误
- 关于request多页面传送的问题
- 怎样在Struts,或者其它J2ee应用程序中增加访问控制?
- VMware ESX 3.5 + CentOS 5.3 + JDK 1.6.0_14 + Tomcat 6.0.20 启动超级慢的问题
- 运用servlet向数据库SQLServer2000添加数据出现错误
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;import com.gwan.service.IUsersService;public class LoginAction extends Action {
private IUsersService userService;
public void setUserService(IUsersService userService) {
this.userService = userService;
}
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,
HttpServletResponse response) throws Exception {
String username = request.getParameter("username");
String password = request.getParameter("password");
String forword = "";
if(userService.login(username, password))
forword = "success";
else
forword = "error";
return mapping.findForward(forword);
}
}import com.gwan.dao.IUsersDao;
import com.gwan.domain.Users;
import com.gwan.service.IUsersService;public class UsersService implements IUsersService {
private IUsersDao usersDao; public void setUserDao(IUsersDao usersDao) {
this.usersDao = usersDao;
} @Override
public Users findUserByName(String username) {
// TODO Auto-generated method stub
return usersDao.findUserByName(username);
}
public boolean login(String username, String password){
Users user = findUserByName(username);
if(user != null)
if(password.equals(user.getPassword()))
return true;
return false;
}
}
错误在你的Action中的第26行,
有以下几种原因:
1.没有获取到参数(或者参数获取到得是空的);
2.实体里面getXXX()里获取的是没有数据的;
3.没有连接到数据库
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans default-autowire="byName" default-lazy-init="true">
<!-- 界面UI服务 -->
<bean id="userService" class="com.gwan.service.impl.UsersService">
</bean>
</beans><?xml version="1.0" encoding="GBK"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<!-- 配置系统参数文件地址 -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
</bean> <!-- 定义事务属性 -->
<aop:config proxy-target-class="true">
<aop:advisor pointcut="execution(* com.gwan.service.*.*(..))"
advice-ref="txAdvice" />
</aop:config> <!--
基本事务定义,使用transactionManager作事务管理,默认get*方法的事务为readonly,其余方法按默认设置.
-->
<tx:advice id="txAdvice">
<tx:attributes>
<tx:method name="get*" read-only="true" />
<tx:method name="find*" read-only="true" />
<tx:method name="*" />
</tx:attributes>
</tx:advice></beans>注入后userService 为null,不知道该怎么改了
标准的JavaBean是同时配备get()和set()方法的。