簡體   English   中英

使用Geronimo未能檢索“ entityManagerFactory”

[英]Failed to retrieve “entityManagerFactory” using Geronimo

我剛剛開始研究Spring框架。 我當前的目標是通過Geronimo服務器上的JPA(TopLink **提供程序)從bean中訪問數據庫。 但是我無法克服獲取entityManagerFactory的問題。

我得到的例外:

java.lang.IllegalStateException:ClassLoader [org.apache.geronimo.kernel.config.MultiParentClassLoader]不提供'addTransformer(ClassFileTransformer)'方法。 指定一個定制的LoadTimeWeaver或使用Spring的代理啟動Java虛擬機:-javaagent:spring-agent.jar

我訪問它的方式:

    <context:load-time-weaver />

    <bean id="entityManagerFactory"
        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="persistenceXmlLocation" value="classpath:/META-INF/persistence.xml" />
    </bean>

    <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
    <bean name="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory" />
    </bean>
    <tx:annotation-driven />

如果有人可以在不使用“ -javaagent:spring-agent.jar”選項的情況下幫助我,我將非常感激。


搜索解決方案。 第一次嘗試。

遵循“ axtavt” 建議 ,我找到了在Tomcat上為Web應用程序指定特殊類加載器的示例。 為此,它使用context.xml文件。 盡管我的Geronimo使用Tomcat,但是我沒有成功實現context.xml 如下一本手冊所述,用於Geronimo的context.xml的替代方法是geronimo-tomcat.xml ,但是它的語法無法為更改類加載器提供任何可能性。 我仍然需要幫助!


Toplink需要加載時編織支持。 我想在Geronimo中它可以通過配置 META-INF/context.xml ,並把儀表罐子到 lib文件夾中,在Tomcat中,看 這里

編輯:所以,您的問題是Toplink需要類轉換支持。 當在Spring的配置中配置Toplink的實體管理器( LocalContainerEntityManagerFactoryBean )時,它將嘗試使用Spring對類轉換的支持( <context:load-time-weaver /> ),但是Spring沒有內置的對類轉換的支持。傑羅尼莫。 因此,您有3個選擇:

  1. 使用不需要類轉換的JPA實現而不是Toplink(例如,Hibernate)
  2. 不要在Spring配置文件中配置Toplink的實體管理器。 使用Geronimo配置(我不知道如何)配置它,並使用JNDI獲得它。
  3. 對於瘋子:為Geronimo實現一個自定義的LoadTimeWeaver (我想它將使用TransformerAgent.addTransformer() )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM