axis2+spring+hibernate(webservice工程)

来源:互联网 发布:淘宝网二度春肾宝 编辑:程序博客网 时间:2024/05/29 12:54

使用axis2+spring+hibernate三大框架整合构建webservice工程,一遍遍的修改配置文件,一遍遍的调试,费了好一番功夫终于成功了,可以实现对数据库的操作了,任务还要求使用事务,添加上事务:

@Transactional
public class UserService {
    private UserDAO userDAO;
   
    public void setUserDAO(UserDAO userDAO) {
        this.userDAO = userDAO;
    }
   
    public int addOneUser(String name,int age){
        return userDAO.addUser(name, age);
    }
   
    @Transactional
    public int saveOneUser(String name, int age){
        System.out.println("@@@@@@@@"+name+":"+age);
        User user = new User();
        user.setName(name);
        user.setAge(age);
        return userDAO.saveUser(user);
    }
}


在applicationContext.xml中添加:

<bean id="transactionManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <!-- 支持 @Transactional 标记     -->
    <tx:annotation-driven transaction-manager="transactionManager" />

重新启动tomcat,出现了一系列的错误:

org.apache.axis2.deployment.DeploymentException: The following error occurred during schema generation: Unable to load bytecode for class service.UserService$$EnhancerByCGLIB$$a88ea6ef


[ERROR] The user.aar service, which is not valid, caused The following error occurred during schema generation: Unable to load bytecode for class service.UserService$$EnhancerByCGLIB$$a88ea6ef


Caused by: org.apache.axis2.deployment.DeploymentException: The following error occurred during schema generation: Unable to load bytecode for class service.UserService$$EnhancerByCGLIB$$a88ea6ef
    at org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:394)
    ... 39 more
Caused by: java.io.IOException: Unable to load bytecode for class service.UserService$$EnhancerByCGLIB$$a88ea6ef
    at org.apache.axis2.description.java2wsdl.bytecode.ClassReader.getBytes(ClassReader.java:84)
    at org.apache.axis2.description.java2wsdl.bytecode.ParamReader.<init>(ParamReader.java:57)
    at org.apache.axis2.description.java2wsdl.bytecode.ChainedParamReader.<init>(ChainedParamReader.java:52)
    at org.apache.axis2.description.java2wsdl.bytecode.MethodTable.<init>(MethodTable.java:31)
    at org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator.<init>(DefaultSchemaGenerator.java:137)
    at org.apache.axis2.deployment.util.Utils.fillAxisService(Utils.java:499)
    at org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:386)

看到网上有说是公布的web service不能直接参与事务, 而是需要把事务"代理"给其他的类处理!!!



原创粉丝点击