用的spring+hibernate,那位达人能帮忙解决下,感激不尽.
web.xml里:
....
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
....
applicationContext.xml里:
....
<bean id="dataSource" <br=""> class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" <br=""> value="com.mysql.jdbc.Driver">
</property>
<property name="url" <br=""> value="jdbc:mysql://localhost:3306/test">
</property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
<bean id="sessionFactory" <br=""> class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource">
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/test/vo/User.hbm.xml</value>
</property>
</bean>
<bean id="transactionManager" <br=""> class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory">
</property>
</bean>
<bean id="userDAOProxy" <br=""> class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager">
</property>
<property name="target">
<ref local="userDAO">
</property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED </prop>
<prop key="update*">PROPAGATION_REQUIRED </prop>
<prop key="delete*">PROPAGATION_REQUIRED </prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly </prop>
</props>
</property>
</bean>
<bean id="userDAO" class="com.test.dao.Impl.UserDAOImpl">
<property name="sessionFactory">
<ref bean="sessionFactory">
</property>
</bean>
....
DAO里:
...
public class UserDAOImpl extends HibernateDaoSupport implements UserDAO{
private static final Log log = LogFactory.getLog(UserDAOImpl.class);
private String hql = "from user u where u.name = ?";
private boolean bo= false;
protected void initDao() {
// do nothing
}
public boolean save(User user) {
try {
this.getHibernateTemplate().save(user);//执行到这里出错,User对象里的name和passwd不是空的.
this.getHibernateTemplate().flush();//getHibernateTemplate()调用的各种操作都出现这样的错误.
bo = true;
} catch (RuntimeException re) {
throw re;
}
return bo;
}
}
.......
出现的错误提示如下:
2008-8-22 13:18:34 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet regedit threw exception
java.lang.NullPointerException
at com.test.dao.Impl.UserDAOImpl.save(UserDAOImpl.java:41)
at com.test.service.Impl.RegeditImpl.save(RegeditImpl.java:27)
at com.test.action.RegeditController.doPost(RegeditController.java:32)
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:230)
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:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:674)
问题补充:
我把spring 配置文件里的标签随便删几个,让不对应,或把dataSource改了,竟然还是提示这样的错误!!!
在web.xml里使用listener,启动tomcat时就出错.
郁闷了啊!
问题补充:
怎么测试spring hibernate 连接数据库了?