No one has any ideas or feedback?
>
> From: <[EMAIL PROTECTED]>
> Date: 2008/02/11 Mon AM 09:35:30 CST
> To: <users@openjpa.apache.org>
> Subject: Can't weave entity in Spring
>
> Hello all,
>
> I'm having a small problem with entities while deploying OpenJPA 1.0.1 on a
> Spring 2.5.1 based Tomcat 6 server using an embedded Derby database.
>
> The exception I'm getting is:
> SEVERE: Exception sending context initialized event to listener instance of
> class org.springframework.web.context.ContextLoaderListener
> java.lang.IllegalStateException: Could not weave class
> [org/whitetail/sawhorse/model/Configuration]
> at
> org.springframework.orm.jpa.persistenceunit.ClassFileTransformerAdapter.transform(ClassFileTransformerAdapter.java:76)
> at
> org.springframework.instrument.classloading.WeavingTransformer.transformIfNecessary(WeavingTransformer.java:95)
> at
> org.springframework.instrument.classloading.WeavingTransformer.transformIfNecessary(WeavingTransformer.java:78)
> at
> org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader.findResourceInternal(TomcatInstrumentableClassLoader.java:114)
> at
> org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1757)
> at
> org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
> at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
> at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> at java.lang.Class.getDeclaredMethods0(Native Method)
> at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
> at java.lang.Class.getDeclaredMethods(Class.java:1791)
> at
> org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:396)
> at
> org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:379)
> at
> org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findPersistenceMetadata(PersistenceAnnotationBeanPostProcessor.java:364)
> at
> org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessMergedBeanDefinition(PersistenceAnnotationBeanPostProcessor.java:295)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(AbstractAutowireCapableBeanFactory.java:678)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:419)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:383)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:353)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
> at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:400)
> at
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:736)
> at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:369)
> at
> org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:261)
> at
> org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
> at
> org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
> at
> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3830)
> at
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4337)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
> at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
> at
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
> at
> org.apache.catalina.core.StandardService.start(StandardService.java:516)
> at
> org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
> Caused by: <openjpa-1.0.1-r420667:592145 fatal user error>
> org.apache.openjpa.util.MetaDataException: Fields
> "org.whitetail.sawhorse.model.Configuration.expires,
> org.whitetail.sawhorse.model.Configuration.id,
> org.whitetail.sawhorse.model.Configuration.oplock,
> org.whitetail.sawhorse.model.Configuration.registrationCode,
> org.whitetail.sawhorse.model.Configuration.serviceUrl" are not a default
> persistent type, and do not have any annotations indicating their persistence
> strategy. If you do not want these fields to be persisted, annotate them
> with @Transient.
> at
> org.apache.openjpa.persistence.PersistenceMetaDataFactory.validateStrategies(PersistenceMetaDataFactory.java:399)
> at
> org.apache.openjpa.persistence.PersistenceMetaDataFactory.load(PersistenceMetaDataFactory.java:205)
> at
> org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:433)
> at
> org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:288)
> at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:240)
> at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:211)
> at
> org.apache.openjpa.enhance.PCClassFileTransformer.transform(PCClassFileTransformer.java:127)
> at
> org.apache.openjpa.persistence.PersistenceProviderImpl$ClassTransformerImpl.transform(PersistenceProviderImpl.java:176)
> at
> org.springframework.orm.jpa.persistenceunit.ClassFileTransformerAdapter.transform(ClassFileTransformerAdapter.java:56)
> ... 45 more
>
> Here's my Spring appicationContext.xml file
> <?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.2.5.xsd
> http://www.springframework.org/schema/beans
>
> http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
> http://www.springframework.org/schema/context
>
> http://www.springframework.org/schema/context/spring-context-2.5.xsd
> http://www.springframework.org/schema/jee
>
> http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
> http://www.springframework.org/schema/tx
>
> http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
>
> <!-- Resource definitions -->
>
> <bean
> class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"
> />
>
> <context:property-placeholder location="classpath:jdbc.properties"/>
>
> <bean id="dataSource"
> class="org.springframework.jdbc.datasource.DriverManagerDataSource"
> p:driverClassName="${jdbc.driverClassName}"
> p:url="${jdbc.url}"/>
>
> <bean id="entityManagerFactory"
> class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
> p:dataSource-ref="dataSource">
> <property name="loadTimeWeaver">
> <bean
> class="org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver"></bean>
> </property>
> </bean>
>
> <tx:annotation-driven transaction-manager="transactionManager"/>
>
> <bean id="transactionManager"
> class="org.springframework.orm.jpa.JpaTransactionManager"
> p:entityManagerFactory-ref="entityManagerFactory"
> autowire="byName"/>
>
> <bean id="sawhorse-setup" autowire="byName"
> class="org.whitetail.sawhorse.dao.impl.ConfigurationDaoImpl"/>
> </beans>
>
> My persistence.xml
> <persistence xmlns="http://java.sun.com/xml/ns/persistence"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
>
> http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
> version="1.0">
> <persistence-unit name="sawhorse-setup" transaction-type="JTA">
>
> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
> </persistence-unit>
> </persistence>
>
> My web.xml
> <?xml version="1.0" encoding="UTF-8"?>
> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns="http://java.sun.com/xml/ns/javaee"
> xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
> http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID"
> version="2.5">
> <display-name>sawhorse-setup</display-name>
> <welcome-file-list>
> <welcome-file>/index.jsp</welcome-file>
> </welcome-file-list>
> <listener>
>
> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
> </listener>
> <persistence-unit-ref>
>
> <persistence-unit-ref-name>persistence/sawhorse-setup</persistence-unit-ref-name>
> <persistence-unit-name>sawhorse-setup</persistence-unit-name>
> </persistence-unit-ref>
> <context-param>
> <param-name>contextConfigLocation</param-name>
> <param-value>/WEB-INF/applicationContext-dao.xml</param-value>
> </context-param>
> <servlet>
> <servlet-name>action</servlet-name>
>
> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
> <load-on-startup>1</load-on-startup>
> </servlet>
> <servlet-mapping>
> <servlet-name>action</servlet-name>
> <url-pattern>*.html</url-pattern>
> </servlet-mapping>
> <jsp-config>
> <taglib>
> <taglib-uri>http://www.springframework.org/tags</taglib-uri>
> <taglib-location>/WEB-INF/tld/spring.tld</taglib-location>
> </taglib>
> <taglib>
> <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
> <taglib-location>/WEB-INF/tld/c.tld</taglib-location>
> </taglib>
> <taglib>
> <taglib-uri>http://java.sun.com/jsp/jstl/fmt</taglib-uri>
> <taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
> </taglib>
> </jsp-config>
> </web-app>
>
> And finally, my entity bean:
> package org.whitetail.sawhorse.model;
>
> import java.io.Serializable;
> import java.util.Date;
>
> import javax.persistence.Column;
> import javax.persistence.Entity;
> import javax.persistence.GeneratedValue;
> import javax.persistence.Id;
> import javax.persistence.Table;
> import javax.persistence.Version;
>
> @Entity
> @Table(name="CONFIG")
> @SuppressWarnings("serial")
> public class Configuration implements Serializable {
>
> @Id @GeneratedValue
> @Column(name="ID")
> private Integer id;
>
> @SuppressWarnings("unused")
> @Version
> private int oplock;
>
> @Column(name="REGISTRATION_CODE")
> private String registrationCode;
>
> @Column(name="SERvICE_URL")
> private String serviceUrl;
>
> @Column(name="EXPIRES")
> private Date expires;
>
> public Integer getId() {
> return id;
> }
>
> public String getRegistrationCode() {
> return registrationCode;
> }
>
> public String getServiceUrl() {
> return serviceUrl;
> }
>
> public Date getExpires() {
> return expires;
> }
>
> public void setId(Integer id) {
> this.id = id;
> }
>
> public void setRegistrationCode(String registrationCode) {
> this.registrationCode = registrationCode;
> }
>
> public void setServiceUrl(String serviceUrl) {
> this.serviceUrl = serviceUrl;
> }
>
> public void setExpires(Date expires) {
> this.expires = expires;
> }
> }
>
>
> Any clues where I have made a mistake?
>
> Thanks in advance for the help getting this resolved!
>
> Cheers!
>
>