action里执行到这句
List reptAgilityConfigList = reptAgilityConfigDAO.findByProperty"localNetId", "351");
就报
严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
错误。
就好象spring的配置文件没写一样。
我的action:
private ReptAgilityConfigDAO reptAgilityConfigDAO; public ReptAgilityConfigDAO getReptAgilityConfigDAO() {
return reptAgilityConfigDAO;
} public void setReptAgilityConfigDAO(
ReptAgilityConfigDAO reptAgilityConfigDAO) {
this.reptAgilityConfigDAO = reptAgilityConfigDAO;
} public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UserSelectForm userSelectForm = (UserSelectForm) form;// TODO
// Auto-generated
// method stub
log.debug("select");
if (userSelectForm.getUserName().equals("abc")
&& userSelectForm.getPassword().equals("123")) {
// reptAgilityConfigDAO = new ReptAgilityConfigDAO();
List reptAgilityConfigList = reptAgilityConfigDAO.findByProperty(
"localNetId", "351");
request
.setAttribute("reptAgilityConfigList",
reptAgilityConfigList);
return mapping.findForward("initIframe");
}
return mapping.findForward("input");
}
}
applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@133.128.9.23:1521:test</value>
</property>
<property name="username">
<value>test</value>
</property>
<property name="password">
<value>test*</value>
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>com/hibernate.cfg.xml</value>
</property>
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
<bean id="ReptAgilityConfigDAO"
class="com.yourcompany.ReptAgilityConfigDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean name="/userSelect"
class="com.yourcompany.struts.action.UserSelectAction"
singleton="false">
<property name="reptAgilityConfigDAO">
<ref bean="ReptAgilityConfigDAO" />
</property>
</bean>
</beans>
这个问题郁闷我2周了,都快疯了,各位高手当初在学习的时候也一定有过这样的体会吧,所以请大家厚道一些,都进来帮帮我啊。
我只有这么些分,不够的话再开个帖字啊,大家一定要帮我。
List reptAgilityConfigList = reptAgilityConfigDAO.findByProperty"localNetId", "351");
就报
严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
错误。
就好象spring的配置文件没写一样。
我的action:
private ReptAgilityConfigDAO reptAgilityConfigDAO; public ReptAgilityConfigDAO getReptAgilityConfigDAO() {
return reptAgilityConfigDAO;
} public void setReptAgilityConfigDAO(
ReptAgilityConfigDAO reptAgilityConfigDAO) {
this.reptAgilityConfigDAO = reptAgilityConfigDAO;
} public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UserSelectForm userSelectForm = (UserSelectForm) form;// TODO
// Auto-generated
// method stub
log.debug("select");
if (userSelectForm.getUserName().equals("abc")
&& userSelectForm.getPassword().equals("123")) {
// reptAgilityConfigDAO = new ReptAgilityConfigDAO();
List reptAgilityConfigList = reptAgilityConfigDAO.findByProperty(
"localNetId", "351");
request
.setAttribute("reptAgilityConfigList",
reptAgilityConfigList);
return mapping.findForward("initIframe");
}
return mapping.findForward("input");
}
}
applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@133.128.9.23:1521:test</value>
</property>
<property name="username">
<value>test</value>
</property>
<property name="password">
<value>test*</value>
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>com/hibernate.cfg.xml</value>
</property>
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
<bean id="ReptAgilityConfigDAO"
class="com.yourcompany.ReptAgilityConfigDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean name="/userSelect"
class="com.yourcompany.struts.action.UserSelectAction"
singleton="false">
<property name="reptAgilityConfigDAO">
<ref bean="ReptAgilityConfigDAO" />
</property>
</bean>
</beans>
这个问题郁闷我2周了,都快疯了,各位高手当初在学习的时候也一定有过这样的体会吧,所以请大家厚道一些,都进来帮帮我啊。
我只有这么些分,不够的话再开个帖字啊,大家一定要帮我。
解决方案 »
- commons-fileUpload在linux下路径和文件名乱码(windows下没问题)???
- javascript的function中是不是不能使用request中一个attribute(是个对象,java类)的方法
- 项目交换,谢谢
- 谁有JSF的中文帮助文档?
- 传智播客 09年11月 精品就业班 组团报名!
- [急,200分求救]我用utf-8编码,form的提交方式如果不是post方式,接收页面会有乱码.
- 问一个applet的弱问题
- jsp页面实现word导出下载
- J2EE Web 应用程序执行到rs.next()出现错误,是什么原因?
- 如何解决在当前层载入数据,其中包含搜索框,搜索结果不刷新当前页面,只刷新当前层,有没好的解决办法。
- 拼装SQL会影响性能?
- 急,给servlet传参数
<action path="/userSelect"
type="org.springframework.web.struts.DelegatingActionProxy"
scope="request">
<forward name="success" path="/*.jsp"/>
</action><plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
</plug-in>
class="com.yourcompany.ReptAgilityConfigDAO">这个和你aciton里头的不一样吧
把id首字母改成小写试试看
class="com.yourcompany.ReptAgilityConfigDAO">
改成
<bean id="reptAgilityConfigDAO"
class="com.yourcompany.ReptAgilityConfigDAO">
还是同样的错误。List reptAgilityConfigList = reptAgilityConfigDAO.findByProperty"localNetId", "351");
我在调试的过程中看到参数都传递给了dao,所以参数不可能为空。至于返回的结果为空,我想也不太可能,因为返回类型是list,list完全可以为空。而且调试的时候还没进dao就出错了,问题就在这句话上,再他上面加句‘reptAgilityConfigDAO = new ReptAgilityConfigDAO();’就不是这个错误了说明根本就没有注入成功。也许我说的不对,衷心谢谢你们2位,继续帮助我啊。
没有啊,没有应该也可以吧?
spring的注入首字母大写似乎是会出问题第二,判断空指针的来源
你在进入action时候打个断点看variable,debug状态下应该能看到是否注入
不能注入多半是你的大小写问题我觉得看调试下的reptAgilityConfigDAO变量的值可以帮你找到错误在哪里
这个变量应该在this下头
<ref bean="ReptAgilityConfigDAO" />这部分你也改了吗?
<ref bean="ReptAgilityConfigDAO" />
这部分也改了,都改成首字母是小写的了,还是同样的错误。我的版本:
struts 1.2,spring.jar 1.2.8(自己后加的),hibernate 3.0
我下的例子里就没有在struts-config.xml加plug-in,好象仅仅是用spring做struts的代理的时候才这样,我就没有加,不知道我说的对不对。谢谢cynthia2kame提供的思路,我现在已经都改成小写的了。
在打开断点的时候怎么看是否成功注入了啊,反正我只要一执行到List reptAgilityConfigList = reptAgilityConfigDAO.findByProperty"localNetId", "351");
就出错,连ReptAgilityConfigDAO都进不去。
class="com.yourcompany.ReptAgilityConfigDAO">
这个DAO有impl文件吗,有的话用impl试试看呢
http://stamen.javaeye.com/blog/24476