浏览 434 次
|
该帖已经被评为新手帖
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-05-06
请问下,我现在用Struts,Hibernate,Spring做一个注册的例子,可在服务器启动的时候spring把所有对象都注入了,可服务器启动完后,使用的时候所有注入的对象又为NULL了啊,我是个初学者不知道怎么解结了,那为大哥能帮下忙啊.
web.xml代码<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
struts代码<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd"> <struts-config> <form-beans> <form-bean name="regForm" type="org.shan.bbs.form.RegForm" /> </form-beans> <action-mappings> <action attribute="regForm" input="/reg.jsp" name="regForm" path="/reg" scope="request" type="org.shan.bbs.action.RegAction"> <forward name="success" path="/success.jsp" redirect="true" /> </action> </action-mappings> <message-resources parameter="com.shan.ApplicationResources" /> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" /> </plug-in> </struts-config> spring代码<?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.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>net.sourceforge.jtds.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:jtds:sqlserver://localhost:1433/bbs</value> </property> <property name="username"> <value>sa</value> </property> </bean> <bean id="SessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="datasource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.show_sql">true</prop> </props> </property> <property name="mappingResources"> <list> <value>org/shan/bbs/vo/Message.hbm.xml</value> <value>org/shan/bbs/vo/UserInfo.hbm.xml</value> </list> </property> </bean> <bean id="BaseDao" class="org.shan.bbs.dao.BaseDao" abstract="true"> <property name="sessionFactory"> <ref bean="SessionFactory" /> </property> </bean> <bean id="DaoBean" class="org.shan.bbs.dao.impl.DaoBean" parent="BaseDao"> </bean> <bean id="DaoService" class="org.shan.bbs.service.impl.DaoService"> <property name="daoBean"> <ref bean="DaoBean" /> </property> </bean> <bean id="reg" class="org.shan.bbs.action.RegAction"> <property name="daoService"> <ref bean="DaoService" /> </property> </bean> </beans> package org.shan.bbs.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.shan.bbs.form.RegForm;
import org.shan.bbs.service.IDaoService;
public class RegAction extends Action {
protected IDaoService daoService;
public void setDaoService(IDaoService daoService) {
this.daoService = daoService;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
RegForm regForm = (RegForm) form;
String username = regForm.getUsername();
String password = regForm.getUsername();
System.out.println(username + " " + password);
System.out.println(daoService.toString());
return mapping.findForward("success");
}
}
下面为错误信息: type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException: java.lang.NullPointerException org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) root cause java.lang.NullPointerException org.shan.bbs.action.RegAction.execute(RegAction.java:26) org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58) org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67) org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs. 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-05-06
无代码、无配置、无错误信息,无法分析
楼主请仔细阅读置顶的《JavaEye积分规则,博客和论坛使用规则[重大修订]》 |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-07
对Strus不熟悉,说的不一定正确,仅供参考
看到你在Spring的配置中配置了reg这个bean,但Struts的配置中没有看到如何从Spring拿到它的(action定义看起来是由Struts自己生成这个bean,Spring也就没法向它注入doaService这个属性) |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-07
多谢movingboy 的帮助,问题已经结节了,就是Struts没去拿spring注入的那个对象,所以对象才被释放了的.
|
|
| 返回顶楼 | |




