2012-05-26 4 views
24

EclipseLinkJpaVendorAdapter. Örneğim normal olarak çalışıyor, sonra class = "org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" sınıfını class = "org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter" olarak değiştirdiğimde, uygulama normal şekilde çalışmadı. Sorun ne? Bunlardan her biri JPA spesifisit impelementasyonu.JSF, İlkbahar ve Hazırda Bekletme durumundan oluşan bir uygulama kullanarak HibernateJpaVendorAdapter sorunu yerine

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:aop="http://www.springframework.org/schema/aop" 
     xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:jee="http://www.springframework.org/schema/jee" 
     xmlns:tx="http://www.springframework.org/schema/tx" 
    xsi:schemaLocation=" 
      http://www.springframework.org/schema/aop 
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
      http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
      http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-3.0.xsd 
      http://www.springframework.org/schema/jee 
http://www.springframework.org/schema/jee/spring-jee-3.0.xsd 
      http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 

<context:annotation-config /> 
<context:component-scan base-package="com.usta.spring" /> 
<tx:annotation-driven /> 

<bean id="entityManagerFactory" 
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" 
p:dataSource-ref="dataSource" > 
    <!-- p:jpaVendorAdapter-ref="jpaAdapter"--> 
    <!-- <property name="loadTimeWeaver"> 
     <bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" /> 
    </property>  --> 

    <property name="jpaVendorAdapter" ref="jpaAdapter"> 

    </property> 
    <property name="persistenceUnitName" value="Spring_PU"/> 
</bean> 


<bean id="dataSource" 
     class="org.springframework.jdbc.datasource.DriverManagerDataSource" 
     p:driverClassName="com.mysql.jdbc.Driver" p:url="jdbc:mysql://localhost/spring" 
     p:username="root" p:password="root" /> 

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory"/> 
</bean> 

    <bean id="jpaAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
     <property name="showSql" value="true"/> 
     <property name="generateDdl" value="true"/> 
     <property name="database" value="MYSQL"/> 
    </bean> 

<!-- <bean id="jpaAdapter" 
     class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" 
     p:database="MYSQL" p:showSql="true" p:generateDdl="true" /> --> 

<!-- <bean id="yazikontrolor" class="com.usta.spring.YaziKontolor" scope="request"/> --> 


</beans> 

Hatalar: Varsayılan olarak

May 27, 2012 7:21:49 AM org.apache.catalina.core.ApplicationContext log 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'yaziServisi': Injection of persistence dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/marmara.xml]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Cannot apply class transformer without LoadTimeWeaver specified 
    at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:341) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1073) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425) 
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:282) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:204) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601) 
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675) 
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502) 
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317) 
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:525) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/marmara.xml]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Cannot apply class transformer without LoadTimeWeaver specified 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1422) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:518) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192) 
    at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findDefaultEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:529) 
    at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:495) 
    at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.resolveEntityManager(PersistenceAnnotationBeanPostProcessor.java:656) 
    at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.getResourceToInject(PersistenceAnnotationBeanPostProcessor.java:629) 
    at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:147) 
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:84) 
    at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:338) 
    ... 37 more 
Caused by: java.lang.IllegalStateException: Cannot apply class transformer without LoadTimeWeaver specified 
+0

nasıl hataları vermeyin zaman bize bir şey anlatmak için bekliyorsunuz? – AHungerArtist

+0

ben düzenledim .. teşekkürler – UsTa

+0

bana hatalar sağlama ile herhangi bir şey söyler misiniz ??? – UsTa

cevap

60

, EclipseLink beklediğini çalışma zamanı dokuma aksi takdirde formda bir hata alırsınız, etkin olmasını 'LoadTimeWeaver belirtilen olmadan sınıf trafo uygulanamıyor'. Bu, yapı-zaman dokuması kullanan veya hiç dokuma yapmayan durumlarda, bu davranışı açıkça belirtmeniz gerektiği anlamına gelir.

<property name="jpaPropertyMap"> 
    <map> 
    <entry key="eclipselink.weaving" value="false"/> 
    </map> 
</property> 

veya uygulamanızın persistence.xml dosyasına

<property name="eclipselink.weaving" value="false"/> 

ekleyin: Eğer bir uygulamanın EntityManagerFactory Bahar fasulye yapılandırmak ya da olması gerekir dokuma EclipseLink devre dışı bırakmak amacıyla.

Performansı büyük ölçüde iyileştirdiğinden, dokumayı etkinleştirmenizi tavsiye ederim.

aşağıdakileri ekleyin, EclipseLink beklediği varsayılan çalışma zamanı dokumacı yapılandırmak için: uygulamanızın EntityManagerFactory Bahar fasulye için

<property name="loadTimeWeaver"> 
    <bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver"/> 
</property> 

.

Sonra JVM'nize için bu seçeneği ekleyin: Bahar ayında

-javaagent:/path-to-your-javaagent/org.springframework.instrument-3.1.1.RELEASE.jar 

javaagent org.springframework.instrument kavanozda lokalize edilir 3.x.

Sen aspectjweaver.jar aspectjrt.jar ve kütüphanelerle birlikte org.springframework.instrument kitaplık gerekir.

Referans

+1

Çok Çok Çok Çok Teşekkürler Kaalras, ama dokuma nedir? Hedef dokuma nedir? – UsTa

+4

Dokuma, derlenmiş Java sınıflarının bayt kodlarını işleme tekniğidir. EclipseLink, tembel yükleme, değişiklik izleme, getirme grupları ve iç optimizasyonlar gibi şeyler için hem JPA öğelerini hem de Düz Eski Nesne Nesnesi (POJO) sınıflarını geliştirmek için dokuma kullanır. – Kaalras

+0

Tekrar teşekkürler Kaalras – UsTa

İlgili konular