如何使用eclipse链接指定动态类加载器
问题描述:
环境: Tomcat Web服务器,eclipselink-2.4.1(Juno)JPA,Odata4j 我正在用eclipse链接执行JPA(从表生成动态实体)。 我的persistence.xml看起来像如何使用eclipse链接指定动态类加载器
<persistence-unit name="abcLink"
transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<mapping-file>META-INF/eclipselink-orm.xml</mapping-file>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/netspectiveauthentication?zeroDateTimeBehavior=convertToNull"/>
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="" />
<property name="eclipselink.ddl-generation" value="create-tables" />
<property name="eclipselink.logging.level" value="INFO" />
<property name="eclipselink.logging.exceptions" value="true" />
</properties>
</persistence-unit>
和 在供应商类
String persistenceUnitName = "abcLink";
EntityManagerFactory emf = Persistence.createEntityManagerFactory(persistenceUnitName,properties);
emf.createEntityManager();
return new JPAProducer(emf, "abcd", 20);
我用这对ODATA4j实施,使属性将通过覆盖 同时运行I” ODataProducer创建功能 得到m得到以下错误
javax.persistence.PersistenceException: Exception [EclipseLink-28017] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Unable to predeploy PersistenceUnit [AuthenticationServiceEclipseMysqlLink] in invalid state [DeployFailed].
Internal Exception: javax.persistence.PersistenceException: Exception [EclipseLink-28019] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Deployment of PersistenceUnit [AuthenticationServiceEclipseMysqlLink] failed. Close all factories for this PersistenceUnit.
Internal Exception: Exception [EclipseLink-7328] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.ValidationException
Exception Description: When using VIRTUAL access a DynamicClassLoader must be provided when creating the entity manager factory using the eclipselink property [eclipselink.classloader]. That is, createEntityManagerFactory(String persistenceUnitName, Map properties) and add a new DynamicClassLoader() to the Map properties.
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:1226)
at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:134)
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
我觉得错误很明显但我想知道,我如何通过属性给动态类加载器。或者任何其他方式摆脱此错误。
感谢您的示例。我在你的示例文件的帮助下设置了类加载器。还有我得到一个错误,在https://bugs.eclipse.org/bugs/show_bug.cgi?id=397283中指定。所以没有动态的进展。暂时停止动态,现在检查静态类。任何方式,你可以请建议我在哪里可以找到这些类型的例子。 – Abdul 2013-02-22 06:40:54
Google :)认真地说,您应该确定包含重要关键字的错误消息的子字符串,以及谷歌子字符串。例如:https://www.google.com/search?q=add+a+new+DynamicClassLoader()+to+the+Map+properties&oq=add+a+new+DynamicClassLoader()+to+the+Map +性能 – gcvt 2013-02-22 14:06:23