我有程序一运行就出现这样的错误:严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at org.tie.struts.action.InsertAction.execute(InsertAction.java:38)
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:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
相关代码:applicationcontext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean name="/insert" class="org.tie.struts.action.InsertAction"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
</bean>
<bean id="sessionfactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean>
<bean id="LoginDAO" class="dao.LoginDAO">
<property name="sessionFactory">
<ref bean="sessionfactory" />
</property>
</bean>

<bean id="loginDAOservice" class="service.LoginDAOservice">
<property name="dao">
<ref local="LoginDAO"/>
</property>
</bean>

<bean id="service" class="org.tie.struts.action.InsertAction">
<property name="service">
<ref local="loginDAOservice"/>
</property>
</bean>
</beans>
Isertacton:/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package org.tie.struts.action;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 org.tie.struts.form.InsertForm;import dao.Login;import service.Ilogindaoservice;
public class InsertAction extends Action {
private Ilogindaoservice service;

public Ilogindaoservice getService() {
return service;
} public void setService(Ilogindaoservice service) {
this.service = service;
}

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
InsertForm insertForm = (InsertForm) form;

String username=insertForm.getDdd();
String password=insertForm.getSss();
Login users=new Login(username,password);  
service.save(users);
if (service!=null)
{
request.setAttribute("users",users);
}
return mapping.findForward("su");
}
}loginDAOservice:package service;import java.util.List;
import dao.IloginDAO;
import dao.Login;
import dao.LoginDAO;public class LoginDAOservice implements Ilogindaoservice{
private IloginDAO dao; public IloginDAO getDao() {
return dao;
} public void setDao(IloginDAO dao) {
this.dao = dao;
} public void delete(Login users) {
dao.delete(users);

} public Login getid(Integer id) { Login user= dao.findById(id);
return user ;
} public void save(Login users) {
dao.save(users);

} public List select() {
List userlist=dao.findAll();
return userlist;
} public void update(Login users) {
dao.save(users);

}}
请各位多多帮忙,谢谢了,如果分不够立刻加!小弟绝不吝啬。

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【xdjzxy】截止到2008-07-30 14:39:21的历史汇总数据(不包括此帖):
    发帖的总数量:23                       发帖的总分数:653                      每贴平均分数:28                       
    回帖的总数量:15                       得分贴总数量:1                        回帖的得分率:6%                       
    结贴的总数量:20                       结贴的总分数:483                      
    无满意结贴数:7                        无满意结贴分:310                      
    未结的帖子数:3                        未结的总分数:170                      
    结贴的百分比:86.96 %               结分的百分比:73.97 %                  
    无满意结贴率:35.00 %               无满意结分率:64.18 %                  
    楼主加油

    取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=xdjzxy
      

  2.   

    java.lang.NullPointerException 
    at org.tie.struts.action.InsertAction.execute(InsertAction.java:38) 
    看下InsertAction.java:38这里出现空指针
      

  3.   

    我看过了,是service这个的对象为空了,我已经注入了为什么还是空呢,不太明白!
      

  4.   

    建议楼主应该仔细检查一下,空指针,肯定是你那块的值为null
      

  5.   


     public void setService(Ilogindaoservice service) {
            this.service = service;
        }应该就是这里没有获得值,但不知道是什么原因,请各位多多帮忙,让大家费心了。
      

  6.   

    错误显示你注入未成功>你注入的是名为loginDAOservice,而你在InsertAction中用名字service,把InsertAction中的
        private Ilogindaoservice loginDAOservice;换成:    private Ilogindaoservice loginDAOservice;重新生成get/set
      

  7.   

    我把<property name="service">
        <ref local="loginDAOservice"/>
        </property>
    放入到
    <bean name="/insert" class="org.tie.struts.action.InsertAction"
            abstract="false" lazy-init="default" autowire="default"
            dependency-check="default">
        </bean>
    之后“service”不为空了,而且程序也顺利的跳转了,但是打开数据库的时候,里面什么也没有,一片空白,只有把tomcat关上之后,才能正常打开,而且数据也没有写进去,不知道是为什么,小弟,先谢谢大伙了!
      

  8.   

         代理ACTION那里的<bean>应该写的是<bean name="Action 的PATH 属性">