Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] Help with static weaving on OC4J seeing ._toplink_setmyColumn

Thanks James.
I'm not sure how I would even go about removing spring, since the app
uses spring for _everything_.

I am using the static weaving ant task, and when I left the provider
off I get a stack trace when doing field accessing on a lazy field.
The trace is this:

So, it looks like it's like an odd mix of toplink weaved methods on my
eclipslink weaved class. If I try to set the persistence provider to
eclipselink I get the ClassLoader issues the first time I try to
access the app.



java.lang.NoSuchMethodError:
com.redacted.Enrollment._toplink_setclientRec(Lcom/redacted/Client;)V
	at com.redacted.Enrollment._persistence_set(Enrollment.java)
	at org.eclipse.persistence.internal.descriptors.PersistenceObjectAttributeAccessor.setAttributeValueInObject(PersistenceObjectAttributeAccessor.java:46)
	at org.eclipse.persistence.mappings.DatabaseMapping.setAttributeValueInObject(DatabaseMapping.java:1367)
	at org.eclipse.persistence.mappings.ForeignReferenceMapping.buildCloneFromRow(ForeignReferenceMapping.java:198)
	at org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildAttributesIntoWorkingCopyClone(ObjectBuilder.java:1260)
	at org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildWorkingCopyCloneFromRow(ObjectBuilder.java:1381)
	at org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildObjectInUnitOfWork(ObjectBuilder.java:547)


./tch



On Tue, Jul 6, 2010 at 2:55 PM, James Sutherland <jamesssss@xxxxxxxxx> wrote:
>
> I think the reason you get EclipseLink even when to setting the provider in
> OC4J is that you have set EclipseLink in your Spring config file, so Spring
> is ensuring that EclipseLink is being used.
>
> I think your class loader issue may be a conflict between using Spring
> inside OC4J where both have their own class loaders.
>
> You should use the static weaving ant task, and set weaving to static.
>
> You may want to try deploying to OC4J without Spring, to see if you issues
> are Spring related.
>
>
>
> tch wrote:
>>
>> I'm probably talking to myself here, but here's what I've determined
>> so far today.
>>
>> I disabled static weaving in my persistence.xml and deployed in two
>> different ways.
>>
>> Once, while leaving my persistence provider blank.
>>
>> When the application deployed I see al the EL Config weaving
>> messages,etc. So I know that my app IS using Eclipselink, even though
>> I did not define a persistence provider. When I start up the app and
>> try to make my first DB connection spring starts up EL again and
>> everything works great.
>>
>> Now, I edit the persistence.xml to specify EL as the persistence
>> provider and restart the server. I get all the same EL Config messages
>> as the server starts up. When I try to access the app this time, I get
>> the ClassLoader error about the ClassLoader for my app already being
>> closed.
>>
>> I inspect both ClassLoader log outputs, both times indeed the
>> ClassLoader for my app is closed after predeployment of the
>> persistence unit. However, there must be something special happening
>> when I define the persistence provider, because only then do I get the
>> class loader errors. Of course my end game here is to use Lazy Loading
>> so I would think it should be possible to statically weave a spring
>> app on oc4j with eclipselink.
>>
>>
>> Once again any ideas on debugging this would be much appreciated.
>>
>> Some relevant spring EL config stuff:
>>
>>       <bean id="jpaAdapter"
>>               class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter">
>>               <property name="databasePlatform"
>>                       value="org.eclipse.persistence.platform.database.oracle.OraclePlatform"
>> />
>>               <property name="showSql" value="true" />
>>       </bean>
>>
>>       <bean id="entityManagerFactory"
>>
>> class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
>>               <property name="persistenceUnitName" value="CSHCSModel" />
>>               <property name="dataSource" ref="dataSource" />
>>               <property name="jpaVendorAdapter" ref="jpaAdapter" />
>>       </bean>
>>
>> ./tch
>>
>>
>>
>> On Sat, Jul 3, 2010 at 1:54 PM, Tim Hollosy <hollosyt@xxxxxxxxx> wrote:
>>> This has been bothering me all weekend, I just don't understand enough
>>> about the guts of this EJB 3 stuff.
>>>
>>> So, some background. In the past I had a spring application deployed
>>> to OC4J with eclipselink 1.x, I didn't specify a provider so I just
>>> kind of assumed when I deployed it was using eclipselink as the
>>> provider since my DAO's all referenced the Eclipselink packages for
>>> query classes, etc. Now, I'm not sure if I used any weaving or not,
>>> though I think I do in that app. So what code base is really
>>> executing? Toplink essentials since I don't tell the container who the
>>> provider is, even though I reference all the EL packages in my code?
>>>
>>> So, anyway. I was having some issues with spring and EL 1, with
>>> weaving. It just didn't want to work sometimes. So I decided on this
>>> next app to move on to EL 2 and just statically weave. In my dev
>>> container (jetty) everything is working great. The first deploy to
>>> OC4J works fine as well. Though, in this first deploy I'm not using
>>> any weaving features. My next deploy I actually attempt to use lazy
>>> loading, etc. This time it fails, with my original error message. I
>>> tried removing the el jar's out of my WEB-INF/lib and adding them as a
>>> shared lib, and I get all these classloader issues I detailed later in
>>> the thread. Which I can only think has something do with Spring,
>>> though it's over my head.
>>>
>>> Is what you're saying though that I could try to weave my jar with the
>>> toplink essentials weaver and my code would work in OC4J? Which code
>>> base would be used though? I use some JPA 2 features in my new
>>> project, would that even work. I wouldn't have to reference toplink
>>> essentials packages in my DAO's etc?
>>>
>>> Thanks for your help, I'm really trying to understand the guts of how
>>> this actually works
>>>
>>>
>>> ./tch
>>>
>>>
>>
>>
>
>
> -----
> http://wiki.eclipse.org/User:James.sutherland.oracle.com James Sutherland
> http://www.eclipse.org/eclipselink/
>  EclipseLink ,  http://www.oracle.com/technology/products/ias/toplink/
> TopLink
> Wiki:  http://wiki.eclipse.org/EclipseLink EclipseLink ,
> http://wiki.oracle.com/page/TopLink TopLink
> Forums:  http://forums.oracle.com/forums/forum.jspa?forumID=48 TopLink ,
> http://www.nabble.com/EclipseLink-f26430.html EclipseLink
> Book:  http://en.wikibooks.org/wiki/Java_Persistence Java Persistence
> --
> View this message in context: http://old.nabble.com/Help-with-static-weaving-on-OC4J-seeing-._toplink_setmyColumn-tp29058272p29086725.html
> Sent from the EclipseLink - Users mailing list archive at Nabble.com.
>
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>


Back to the top