浏览 631 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2007-12-04 关键字: Spring 事务
Spring配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "spring-beans.dtd">
<beans>
<!-- 配置数据源 -->
<bean id="myDataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/zoice" />
<property name="username" value="root" />
<property name="password" value="123456" />
</bean>
<!-- 配置Hibernate的事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<!-- 配置Hibernate的SessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="myDataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingLocations">
<list>
<value>classpath:com/sanseyu/pojo/*.hbm.xml</value>
</list>
</property>
</bean>
<bean id="baseTxProxy" lazy-init="true" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref local="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
。。。。。。
<bean id="sortService" parent="baseTxProxy">
<property name="target">
<bean class="com.sanseyu.service.SortService" autowire="byName">
<property name="sortDAO" ref="sortDAO"/>
</bean>
</property>
</bean>
<bean id="sortDAO" class="com.sanseyu.dao.SortDAOHibernateImp">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean name="/admin/sort/addSort"
class="com.sanseyu.struts.action.SortAddAction">
<property name="sortService">
<ref bean="sortService" />
</property>
</bean>
。。。。。。
</beans>
Action类
public class SortAddAction extends Action {
private SortService sortService;
public static Logger logger = Logger
.getLogger(LoginAction.class.getClass());
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
。。。。。。。
}
public void setSortService(SortService sortService) {
this.sortService = sortService;
}
}
Service类
public class SortService implements IService {
private SortDAO sortDAO;
public void addSort(String sortName, int serialNumber) {
Sort sort = new Sort();
sort.setSerialNumber(serialNumber);
sort.setSortName(sortName);
sortDAO.save(sort);
}
public void setSortDAO(SortDAO sortDAO) {
this.sortDAO = sortDAO;
}
public List getSortList() {
return sortDAO.getSortBySerialNumber();
}
public void delSort(String sortId) {
Sort sort = new Sort();
sort.setId(Long.parseLong(sortId));
try {
sortDAO.remove(sort);
} catch (Exception e) {
e.printStackTrace();
}
}
public Sort getSort(String sortId) {
long id = Long.parseLong(sortId);
return getSortById(id);
}
public Sort getSortById(long sortId){
return sortDAO.get(sortId);
}
public void modSort(String sortName, int serialNumber,long id){
Sort sort = getSortById(id);
if(sort == null)
return;
sort.setSerialNumber(serialNumber);
sort.setSortName(sortName);
try {
System.out.println("modSort");
sortDAO.update(sort);
} catch (Exception e) {
e.printStackTrace();
}
}
}
业务接口
public interface IService {
}
TOMCAT启动错误: ERROR - Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name '/admin/article/articleManager' defined in ServletContext resource [/WEB-INF/action-servlet.xml]: Error setting property values; nested exception is PropertyAccessExceptionsException (1 errors) PropertyAccessExceptionsException (1 errors) org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy1] to required type [com.sanseyu.service.ArticleService] for property 'articleService' at org.springframework.beans.BeanWrapperImpl.doTypeConversionIfNecessary(BeanWrapperImpl.java:951) at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:692) at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:572) at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:737) at org.springframework.beans.BeanWrapperImpl.setPropertyValues(BeanWrapperImpl.java:764) at org.springframework.beans.BeanWrapperImpl.setPropertyValues(BeanWrapperImpl.java:753) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1057) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:857) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:378) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:233) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:283) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:313) at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139) at org.springframework.web.struts.ContextLoaderPlugIn.createWebApplicationContext(ContextLoaderPlugIn.java:353) at org.springframework.web.struts.ContextLoaderPlugIn.initWebApplicationContext(ContextLoaderPlugIn.java:296) at org.springframework.web.struts.ContextLoaderPlugIn.init(ContextLoaderPlugIn.java:225) at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:1158) at org.apache.struts.action.ActionServlet.init(ActionServlet.java:473) at javax.servlet.GenericServlet.init(GenericServlet.java:211) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1029) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:862) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4013) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4357) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595) at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277) at org.apache.catalina.core.StandardHost.install(StandardHost.java:832) at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:701) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:432) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091) at org.apache.catalina.core.StandardHost.start(StandardHost.java:789) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478) at org.apache.catalina.core.StandardService.start(StandardService.java:480) at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313) at org.apache.catalina.startup.Catalina.start(Catalina.java:556) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425) 请教,是不是业务类或者接口写的有问题 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2007-12-04
问题解决:spring的TransactionProxyFactoryBean是基于JAVA动态代理实现的,也就是接口AOP,所以在 action 这里要使用
引用 private IService sortService
来定义 |
|
| 返回顶楼 | |



