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"?xmlns:context="http://www.springframework.org/schema/context"
?????xmlns:util="http://www.springframework.org/schema/util"?xmlns:aop="http://www.springframework.org/schema/aop"
?????xmlns:tx="http://www.springframework.org/schema/tx"?xmlns:jpa="http://www.springframework.org/schema/data/jpa"
?????xsi:schemaLocation="
?????????http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
?????????http://www.springframework.org/schema/context?http://www.springframework.org/schema/context/spring-context-4.0.xsd
?????????http://www.springframework.org/schema/util?http://www.springframework.org/schema/util/spring-util-4.0.xsd
?????????http://www.springframework.org/schema/aop?http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
?????????http://www.springframework.org/schema/tx?http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
?????????http://www.springframework.org/schema/data/jpa?http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd">
<!--?配置spring注解?-->
<context:annotation-config/>
<!--? <context:property-placeholder?location="db.properties"/>?-->
<!--?datasource?-->
<bean?id="dataSource"?class="org.apache.commons.dbcp.BasicDataSource">
? <property?name="driverClassName"?value="org.gjt.mm.mysql.Driver"?/>
?????? <property?name="url"?value="jdbc:mysql://localhost:3306/ssh"?/>
????????<property?name="username"?value="root"?/>
??????? <property?name="password"?value="Hurk"?/>
</bean>
?<!--?spring與hibernate整合?spring來(lái)管理session的創(chuàng)建、打開(kāi)和關(guān)閉?-->
<bean?id="sessionFactory"?class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
?????????<!--?通過(guò)配置文件的方式獲取數(shù)據(jù)源,出現(xiàn)異常,未解決?-->
?????? ?<property?name="dataSource"?ref="dataSource"></property>
?????? ?
?????????<property?name="hibernateProperties">
?????????????<props>
?????????????????<prop?key="connection.useUnicode">true</prop>
?????????????????<prop?key="connection.characterEncoding">utf-8</prop>
?????????????????<prop?key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
?????????????????<prop?key="hibernate.show_sql">true</prop>
?????????????????<prop?key="hibernate.hbm2ddl.auto">update</prop>
??????????????????<prop?key?="hibernate.current_session_context_class">org.springframework.orm.hibernate4.SpringSessionContext</prop>??
?????????????</props>
?????????</property>
?????????<property?name="annotatedClasses">
?????????????<list>
?????????????????<!--?以下用來(lái)列出所有的PO映射文件?-->
?????????????????<value>com.victor.entity.User</value>
?????????????????<value>com.victor.entity.Book</value>
?????????????</list>
?????????</property>
?????</bean>
????? <!--?配置事務(wù)管理器?-->
<bean?id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property?name="sessionFactory"?ref="sessionFactory"?/>
</bean>
<!--?事務(wù)的傳播特性?-->
<tx:advice?id="txadvice"?transaction-manager="transactionManager">
<tx:attributes>
<tx:method?name="search*"?propagation="REQUIRED"?/>
<tx:method?name="save*"?propagation="REQUIRED"?/>
<tx:method?name="delete*"?propagation="REQUIRED"?/>
<tx:method?name="modify*"?propagation="REQUIRED"?/>
?<!--hibernate4必須配置為開(kāi)啟事務(wù)?否則?getCurrentSession()獲取不到-->
<tx:method?name="*"?propagation="REQUIRED"?read-only="true"?/>
</tx:attributes>
</tx:advice>
<!--?那些類(lèi)那些方法使用事務(wù)?-->
<aop:config>
??<!--?只對(duì)業(yè)務(wù)邏輯層實(shí)施事務(wù)?-->
<aop:pointcut?id="allManagerMethod"
expression="execution(*?com.victor.dao.impl.*.*(..))"?/>
<aop:advisor?pointcut-ref="allManagerMethod"?advice-ref="txadvice"?/>
</aop:config>
<!--?Spring管理Struts2的Action?-->
?????<bean?name="loginAction"?class="com.victor.actions.LoginAction"?scope="prototype"/>?
?????<bean?name="searchAction"?class="com.victor.actions.SearchAction"?scope="prototype"/>??
?????
?????<!--?spring管理struts2的intercepter?-->
?????<bean?id="checkLoginInterceptor"?class="com.victor.inter.CheckLogin"?scope="prototype"/>
?????<bean?id="baseDaoImpl"?class="com.victor.dao.impl.BaseDaoImpl">
????? <property?name="sessionFactory"?ref="sessionFactory"/>
?????</bean>
</beans>hibernate.cfg.xml如下<?xml?version="1.0"?encoding="UTF-8"?>
<!DOCTYPE?hibernate-configuration?PUBLIC
"-//Hibernate/Hibernate?Configuration?DTD?3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
????<session-factory>
????????<property?name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
????????<property?name="hibernate.connection.password">Hurk</property>
????????<property?name="hibernate.connection.url">
<![CDATA[jdbc:mysql://localhost:3306/ssh?useUnicode=true&characterEncoding=utf8]]>
</property>
????????<property?name="hibernate.connection.username">root</property>
????????<property?name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
????????<property?name="show_sql">true</property>
????????<property?name="format_sql">true</property>
? <property?name="hbm2ddl.auto">update</property>
? <mapping?class="com.victor.entity.User"/>
? <mapping?class="com.victor.entity.Book"/>
????</session-factory>
</hibernate-configuration>實(shí)現(xiàn)類(lèi)如下package?com.victor.dao.impl;
import?java.util.ArrayList;
import?java.util.List;
import?org.hibernate.Session;
import?org.hibernate.SessionFactory;
import?com.victor.dao.IBaseDao;
import?com.victor.entity.User;
public?class?BaseDaoImpl?implements?IBaseDao
{
private?SessionFactory?sessionFactory;
private?Session?session;
public?void?setSessionFactory(SessionFactory?sessionFactory)
{
this.sessionFactory?=?sessionFactory;
}
@Override
public?Session?getSession()
{
return?sessionFactory.getCurrentSession();
}
@Override
public?List?search(String?hql)
{
User?user?=?new?User();
getSession().save(user);
List?list?=?new?ArrayList();
list?=?sessionFactory.getCurrentSession().createQuery(hql).list();
session.close();
return?list;
}
@Override
public?List?searchBook(String?hql)
{
List?list?=?null;
list?=?sessionFactory.getCurrentSession().createQuery(hql).list();
session.close();
return?list;
}
}報(bào)錯(cuò)如下type?Exception?report
message?
description?The?server?encountered?an?internal?error?that?prevented?
it?from?fulfilling?this?request.
exception?
java.lang.NullPointerException
com.victor.dao.impl.BaseDaoImpl.getSession(BaseDaoImpl.java:46)
com.victor.dao.impl.BaseDaoImpl.search(BaseDaoImpl.java:56)
com.victor.dao.impl.UserDaoImpl.isValidte(UserDaoImpl.java:16)
com.victor.actions.LoginAction.execute(LoginAction.java:23)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native?Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown?Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown?Source)
java.lang.reflect.Method.invoke(Unknown?Source)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:453)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:292)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:255)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:511)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:149)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
note?The?full?stack?trace?of?the?root?cause?is?available?in?the?
Apache?Tomcat/7.0.79?logs.一直找不出來(lái)配置哪里錯(cuò)了,求大神幫幫忙?。?!
添加回答
舉報(bào)
0/150
提交
取消