你还可以用spring啊,启动的时候加载spring的配置文件 ,通过spring去扫描,然后通过spring获取对应的类就可以了。
ApplicationContext context = new FileSystemXmlApplicationContext(
"classpath:conf/applicationContext.xml");
RefreshReportDate refreshReportDate = (RefreshReportDate) context
.getBean("refreshReportDate");

解决方案 »

  1.   

    《Java Persistence with Hibernate》是这么说的:
    “Create a directory named WORKDIR /etc/ META-INF and place the basic config-
    uration file named persistence.xml”
      

  2.   

    在src包下添加package?楼主明确下啊,META-INF是个目录而已,不是package。
      

  3.   

     
    我说错了 META-INF是无法为package名的 他还是以文件夹的形式存在的 存放在src根目录下
    现在问题是怎么让这个配置文件注册进来?
      

  4.   

    是不是没有加入jpa相关的包?META-INF/persistence.xml是jpa标准支持的,而不是原始的hibernate就支持。当然,如果你hibernate的包都全了,那应该算是加入了。
      

  5.   


    <dependency>
       <groupId>org.hibernate</groupId>
       <artifactId>hibernate-core</artifactId>
       <version>4.3.7.Final</version>
    </dependency>
    包是通过maven官方下载 hibernate4.x 支持jpa标准  目前这么一个目录系统如何去监控读取的 显然不可能是目录对了就自动注册的吧?
      

  6.   

    hibernate-core明显是hibernate核心包,不包含jpa扩展。
     <dependency>
                <groupId>org.hibernate.javax.persistence</groupId>
                <artifactId>hibernate-jpa-2.0-api</artifactId>
                <version>1.0.0.Final</version>
                <scope>provided</scope>
           </dependency>
           <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>4.2.0.Final</version> 
            </dependency>
    <dependency>
             <groupId>org.hibernate</groupId>
             <artifactId>hibernate-entitymanager</artifactId>
             <version>4.2.0.Final</version>
    </dependency>
      

  7.   


    这些包肯定是有的 要不然程序早报错了...我还是想办法从hibernate的原始配置文件入手寻找结果把
      

  8.   


    core的maven包含子maven pom 会下载 jpa api 关于jpa 我特意看了下 标准中的 文件只要在META-INF/p...xml 就会自动识别 我的程序中依然找不到unit 显然问题就在这了...
      

  9.   

    标准中的 文件只要在META-INF/p...xml 就会自动识别,就是这样的,没有任何其他方式。web的是WEB-INF/classes/META-INF/p...xml,就这点区别。
      

  10.   

    想到个问题,你用maven,src目录下怎么能直接增加工程的内容?标准默认情况下,maven如果想增加perisitence.xml,应该在src\main\resources\META-INF。
      

  11.   


    你说的应该是新建maven的目录问题把 这个不影响的,我特地试过,错误一样,因为我项目是通过转换的(我最初新建的是java项目),目录跟新建maven项目有所区别,JPA的标准应该就是在src根目录下。我现在在想它是否是在我们获取unit对象的时候去读取配置文件获取持久化对象,还是在项目启动的时候就自动装载好然后获取的对象...
      

  12.   

    说了半天,我估计主要是目录的问题,你可以用maven 打包一下看看,打包好的jar包内是否包含那个META-INFO/p...xml文件,这个才是主要的,因为eclipse打包的资源文件可以自定义的,如果按照maven默认是不会出什么问题的。
      

  13.   

    结贴 问题如楼上所讲 是jar包引用的问题
    <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>4.3.7.Final</version>
    </dependency>单独添加即生效 非常感谢您的回答