struts2-fullhibernatecore-plugin-2.2.2-GA无效

时间:2012-09-13 21:19:39

标签: hibernate java-ee struts2 struts2-s2hibernate

我在使用Hibernate的demo strut2项目中使用struts2-fullhibernatecore-plugin-2.2.2-GA。我尽我所能,但无法使其发挥作用。我正在使用所有最新的罐子。

我错过了什么吗?

请帮忙

错误日志

2012-09-14 02:06:50 - [  INFO - SessionTransactionInjectorInterceptor:41 ] --> Full Hibernate Plugin Validation could not detect Hibernate Validator 3.x
2012-09-14 02:06:50 - [  INFO - SessionTransactionInjectorInterceptor:46 ] --> Full Hibernate Plugin Validation using Hibernate Validator 4.x

我项目中的图书馆

enter image description here

当我访问页面时遇到错误

java.lang.NullPointerException

    com.myapp.dao.CustomerDAOImpl.listCustomer(CustomerDAOImpl.java:26)
    com.myapp.web.CustomerAction.listCustomer(CustomerAction.java:47)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:453)......

我的客户DAOImpl.java

package com.myapp.dao;

import com.googlecode.s2hibernate.struts2.plugin.annotations.SessionTarget;
import com.googlecode.s2hibernate.struts2.plugin.annotations.TransactionTarget;
import com.myapp.model.Customer;
import org.hibernate.Session;
import org.hibernate.Transaction;

import java.util.List;

public class CustomerDAOImpl implements CustomerDAO {

    @SessionTarget
    Session session;

    @TransactionTarget
    Transaction transaction;

    //add the customer
    public void addCustomer(Customer customer) {
        session.save(customer);
    }

    //return all the customers in list
    public List<Customer> listCustomer() {
        return session.createQuery("from Customer").list();
    }
}

**已编辑*********************

 @SessionTarget
        Session session;

        @TransactionTarget
        Transaction transaction;

注入会话和事务时,上面的代码出现问题。我想知道这可能是struts2-fullhibernatecore-plugin-2.2.2-GA不支持的问题

hibernate-release-4.1.6.Final
hibernate-validator-4.3.0.Final

因为插件网站http://code.google.com/p/full-hibernate-plugin-for-struts2/提到只支持的版本是

此插件与Hibernate Validator 3.1.0和4.0.2(自2.2版本)兼容。

这就是问题所在。有没有人使用过上述版本的插件?

还有一个问题:我们可以在生产环境中使用此插件吗?

1 个答案:

答案 0 :(得分:4)

我认为你必须使用Hibernate 3作为插件。

在Hibernate 4 DTDEntityResolver类的包中更改了插件使用的包。在Hibernate 3中,这个类在org.hibernate.util包中,而在hibernate4中,这个类在org.hibernate.internal.xml.util包中。