我刚刚开始学习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,但它的语法不提供更改类加载器的任何可能性。我还需要帮助!