These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 11 posts ] 
Author Message
 Post subject: problem using weblogic 9.1
PostPosted: Tue Apr 18, 2006 4:13 am 
Newbie

Joined: Tue Apr 18, 2006 3:59 am
Posts: 9
Hello, I'm using :

- hibernate : 3.2.0.cr1
- hibernate-annotations : 3.1beta9

My problem is to build the session factory, I have this error :

Caused by: java.lang.NoSuchMethodError: javax.persistence.ManyToMany.mappedBy()Ljava/lang/String;
at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1285)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:641)
at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:295)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:216)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1172)
at util.HibernateUtil.(HibernateUtil.java:23)


any idea ?


(the same program works well outside the application server)


Top
 Profile  
 
 Post subject:
PostPosted: Tue Apr 18, 2006 4:25 am 
Expert
Expert

Joined: Tue Dec 07, 2004 6:57 am
Posts: 285
Location: Nürnberg, Germany
looks like a classpath problem. Maybe ejb-persistence.jar is missing?

_________________
Please don't forget to rate


Top
 Profile  
 
 Post subject:
PostPosted: Tue Apr 18, 2006 4:32 am 
Newbie

Joined: Tue Apr 18, 2006 3:59 am
Posts: 9
ejb3-persistence.jar is not missing


Top
 Profile  
 
 Post subject:
PostPosted: Tue Apr 18, 2006 4:33 am 
Expert
Expert

Joined: Tue Dec 07, 2004 6:57 am
Posts: 285
Location: Nürnberg, Germany
Have you checked the complete classpath between container and local?

_________________
Please don't forget to rate


Top
 Profile  
 
 Post subject:
PostPosted: Tue Apr 18, 2006 11:19 am 
Newbie

Joined: Tue Apr 18, 2006 3:59 am
Posts: 9
yes, I'm using same jar in both classpath of both programme (independant and on application server).

but :
- hibernate 3.2.0.cr1 with annotations without weblogic 9.1 : no problem
- hibernate 3.2.0.cr1 without annotations with weblogic 9.1 : no problem

It's strange... :(


Top
 Profile  
 
 Post subject:
PostPosted: Sat Apr 22, 2006 8:36 am 
Newbie

Joined: Sat May 29, 2004 2:32 am
Posts: 8
Folks,

I have the same problem. The interfaces in package javax.persistence in weblogic.jar and ejb3.jar (hibernate) are somehow different! I didn't check the EJB specification.
The code works in Tomcat 5.5/JDK 1.5, but throws exceptions in weblogic 9.1.

Any comment or suggestion is welcome,
Amin Emami
http://www.FourSunIT.com

Exception is like this :
Code:
java.lang.NoSuchMethodError: javax.persistence.TableGenerator.table()Ljava/lang/String;
        at org.hibernate.cfg.AnnotationBinder.buildIdGenerator(AnnotationBinder.java:243)
        at org.hibernate.cfg.AnnotationBinder.buildLocalGenerators(AnnotationBinder.java:1883)
        at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:544)
        at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:276)
        at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:210)
        at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:997)
        at org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:722)
        at org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:161)
        at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:567)
        at org.hibernate.ejb.Ejb3Configuration.createFactory(Ejb3Configuration.java:118)
        at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:165)
        at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:103)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:37)
        at com.foursun.bonyad.pk.util.hibernate.HibernateUtils.<clinit>(HibernateUtils.java:53)
        at com.foursun.bonyad.pk.application.HibernateInitializerPlugin.init(HibernateInitializerPlugin.java:30)
        at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:869)
        at org.apache.struts.action.ActionServlet.init(ActionServlet.java:336)
        at javax.servlet.GenericServlet.init(GenericServlet.java:256)
        at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:276)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
        at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:68)
        at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)
        at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:48)
        at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:493)
        at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1688)
        at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1665)
        at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1585)
        at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2678)
        at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:874)
        at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:326)
        at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:114)
        at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
        at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
        at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:25)
        at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:640)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
        at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:252)
        at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:154)
        at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80)
        at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:176)
        at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:347)
        at weblogic.management.deploy.internal.DeploymentAdapter$1.activate(DeploymentAdapter.java:50)
        at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30)
        at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:232)
        at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:168)
        at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:122)
        at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
        at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
        at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
        at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
<Apr 22, 2006 3:59:47 PM GMT+03:30> <Error> <HTTP> <BEA-101216> <Servlet: "action" failed to preload on startup in Web applicati
on: "bonyad".
javax.servlet.UnavailableException: javax.persistence.TableGenerator.table()Ljava/lang/String;
        at org.apache.struts.action.ActionServlet.init(ActionServlet.java:368)
        at javax.servlet.GenericServlet.init(GenericServlet.java:256)
        at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:276)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
        Truncated. see log file for complete stacktrace
>


Here is a sample :
Weblogic:
Code:
package javax.persistence;

public interface EntityManager {
    void create(java.lang.Object object);

    <T> T merge(T t);

    void remove(java.lang.Object object);

    java.lang.Object find(java.lang.String string, java.lang.Object object);

    <T> T find(java.lang.Class<T> aClass, java.lang.Object object);

    void flush();

    javax.persistence.Query createQuery(java.lang.String string);

    javax.persistence.Query createNamedQuery(java.lang.String string);

    javax.persistence.Query createNativeQuery(java.lang.String string);

    void refresh(java.lang.Object object);

    void evict(java.lang.Object object);

    boolean contains(java.lang.Object object);
}



Hibernate:

Code:
package javax.persistence;


public interface EntityManager {
    void persist(java.lang.Object object);

    <T> T merge(T t);

    void remove(java.lang.Object object);

    <T> T find(java.lang.Class<T> aClass, java.lang.Object object);

    <T> T getReference(java.lang.Class<T> aClass, java.lang.Object object);

    void flush();

    void setFlushMode(javax.persistence.FlushModeType flushModeType);

    javax.persistence.FlushModeType getFlushMode();

    void lock(java.lang.Object object, javax.persistence.LockModeType lockModeType);

    void refresh(java.lang.Object object);

    void clear();

    boolean contains(java.lang.Object object);

    javax.persistence.Query createQuery(java.lang.String string);

    javax.persistence.Query createNamedQuery(java.lang.String string);

    javax.persistence.Query createNativeQuery(java.lang.String string);

    javax.persistence.Query createNativeQuery(java.lang.String string, java.lang.Class aClass);

    javax.persistence.Query createNativeQuery(java.lang.String string, java.lang.String string1);

    void close();

    boolean isOpen();

    javax.persistence.EntityTransaction getTransaction();
}


Top
 Profile  
 
 Post subject:
PostPosted: Mon Apr 24, 2006 5:05 am 
Newbie

Joined: Tue Apr 18, 2006 3:59 am
Posts: 9
Thanks for your answer !

I checked both jars and compared with specification...

specifications JSR220 : EJB3 - Java Persistence API :
Code:
@Target ({METHOD, FIELD}) @Retention(RUNTIME)
public @interface ManyToMany {
   Class targetEntity() default void.class;
   CascadeType[] cascade() default {};
   FetchType fetch() default LAZY;
   String mappedBy() default "";
}


ejb3-persistence.jar from Hibernate :
Code:
public abstract @interface javax.persistence.ManyToMany extends java.lang.Object implements java.lang.annotation.Annotation {
   public abstract Class targetEntity() ;
   public abstract CascadeType[] cascade() ;
   public abstract FetchType fetch() ;
   public abstract String mappedBy() ;
}


weblogic.jar from weblogic 9.1 :
Code:
public abstract @interface javax.persistence.ManyToMany extends java.lang.Object implements java.lang.annotation.Annotation {
   public abstract String inverseOwner() ;
   public abstract String targetEntity() ;
   public abstract CascadeType[] cascade() ;
   public abstract FetchType fetch() ;
   public abstract boolean isInversed() ;
}


There is not mappedBy() inside it!
I will try to modify the classpath in order to load ejb3-persistence.jar before weblogic.jar... will see


Top
 Profile  
 
 Post subject:
PostPosted: Mon Apr 24, 2006 8:21 am 
Newbie

Joined: Tue Apr 18, 2006 3:59 am
Posts: 9
some "solutions" :

- put ejb3-persistence.jar before weblogic.jar in the classpath
- delete all javax.persistence.* in weblogic.jar


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jun 14, 2006 5:02 am 
Newbie

Joined: Wed Jun 14, 2006 4:50 am
Posts: 1
Hi,

its not necessary to remove the "javax.persistence.*" classes from
the "weblogic.jar" archive.

You just have to modify the "setDomainEnv.cmd" script. Search for the
"PRE_CLASSPATH" variable and specify the path to the
"ejb3-persistence.jar" archive from Hibernate.

So far that works.

Regards, Frank


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jun 14, 2006 5:07 am 
Newbie

Joined: Tue Apr 18, 2006 3:59 am
Posts: 9
Hi,

yep, I agree with you, it's the first solution :)


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jun 14, 2006 5:07 am 
Newbie

Joined: Tue Apr 18, 2006 3:59 am
Posts: 9
Hi,

yep, I agree with you, it's the first solution :)


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 11 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.