Chris Council [http://community.jboss.org/people/chriscouncil] created the discussion
"Re: How to stop my WAR loading JBoss's provided 3rd party classes?" To view the discussion, visit: http://community.jboss.org/message/578811#578811 -------------------------------------------------------------- So I'm having a similar issue to Petr, I'm getting the following exception when I try to start up JBoss with my war in the server/default/deploy directory: Caused by: org.hibernate.AnnotationException: java.lang.NoSuchMethodException: org.hibernate.validator.ClassValidator.<init>(java.lang.Class, java.util.ResourceBundle, org.hibernate.validator.MessageInterpolator, java.util.Map, org.hibernate.annotations.common.reflection.ReflectionManager) at org.hibernate.cfg.Configuration.applyHibernateValidatorLegacyConstraintsOnDDL(Configuration.java:1651) [:3.6.0.Final] at org.hibernate.cfg.Configuration.applyConstraintsToDDL(Configuration.java:1623) [:3.6.0.Final] at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1415) [:3.6.0.Final] at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1345) [:3.6.0.Final] > Caused by: org.hibernate.AnnotationException: > java.lang.NoSuchMethodException: > org.hibernate.validator.ClassValidator.<init>(java.lang.Class, > java.util.ResourceBundle, org.hibernate.validator.MessageInterpolator, > java.util.Map, org.hibernate.annotations.common.reflection.ReflectionManager) > at > org.hibernate.cfg.Configuration.applyHibernateValidatorLegacyConstraintsOnDDL(Configuration.java:1651) > [:3.6.0.Final] > at > org.hibernate.cfg.Configuration.applyConstraintsToDDL(Configuration.java:1623) > [:3.6.0.Final] > at > org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1415) > [:3.6.0.Final] > ... Note that I'm using JPA 2.0/Hibernate 3.6.0.Final*.* I have a fairly simple project - in my case, it's just a war. It's a stock JBoss 6.0.0.Final install - all I've done is put my war, together with an associated db-ds.xml file, into the server/default/deploy directory. I'm also using Spring 3.0.5. Here's the relevant section of my project's pom.xml: > <dependency> > <groupId>org.hibernate</groupId> > <artifactId>hibernate-entitymanager</artifactId> > <version>3.6.0.Final</version> > <exclusions> > <exclusion> > <groupId>javax.transaction</groupId> > <artifactId>jta</artifactId> > </exclusion> > </exclusions> > </dependency> > I have also tried changing the scope of hibernate-entitymanager to "provided*"*, in which case my project should be using JBoss 6's provided hibernate libraries, but when I do that I get this exception: > Caused by: java.lang.IncompatibleClassChangeError: Class > org.hibernate.ejb.HibernatePersistence does not implement the requested > interface javax.persistence.spi.PersistenceProvider > at > org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:225) > [:3.0.5.RELEASE] > at > org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:308) > [:3.0.5.RELEASE] > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477) > [:3.0.5.RELEASE] I have also tried removing the hibernate libraries from $JBOSS_HOME/common/lib, but then the server immediately halts with this exception: > 13:37:45,775 INFO [AbstractServer] Starting: JBossAS [6.0.0.Final "Neo"] > 13:37:47,530 INFO [ServerInfo] Java version: 1.6.0_22,Apple Inc. > 13:37:47,530 INFO [ServerInfo] Java Runtime: Java(TM) SE Runtime Environment > (build 1.6.0_22-b04-307-10M3261) > 13:37:47,530 INFO [ServerInfo] Java VM: Java HotSpot(TM) 64-Bit Server VM > 17.1-b03-307,Apple Inc. > 13:37:47,530 INFO [ServerInfo] OS-System: Mac OS X 10.6.5,x86_64 > 13:37:47,531 INFO [ServerInfo] VM arguments: -Xms128m -Xmx512m > -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true > -Dsun.rmi.dgc.client.gcInterval=3600000 > -Dsun.rmi.dgc.server.gcInterval=3600000 -Dprogram.name=run.sh > -Djava.library.path=/wdev/jboss-6.0.0.Final/bin/native/lib64 > -Djava.endorsed.dirs=/wdev/jboss-6.0.0.Final/lib/endorsed > 13:37:47,620 INFO [JMXKernel] Legacy JMX core initialized > 13:37:52,790 ERROR [AbstractKernelController] Error installing to PreInstall: > name=CEMFBuilder state=Real: java.lang.NoClassDefFoundError: > javax/persistence/spi/PersistenceUnitInfo > at java.lang.Class.getDeclaredMethods0(Native Method) [:1.6.0_22] > at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) [:1.6.0_22] > at java.lang.Class.getDeclaredMethods(Class.java:1791) [:1.6.0_22] > I've tried using this jboss-classloading-domain.xml in my WEB-INF directory, but it seems to have no effect: > > > > > > > <?xml version="1.0" encoding="UTF-8"?> > > > > <classloading-domain xmlns="urn:jboss:classloading-domain:1.0" > > name="MyDomain"> > > <parent-policy> > > <before-filter> > > <javabean xmlns="urn:jboss:javabean:2.0" > > class="org.jboss.classloader.plugins.filter.NegatingClassFilter"> > > <constructor> > > <parameter> > > <javabean xmlns="urn:jboss:javabean:2.0" > > class="org.jboss.classloader.spi.filter.RecursivePackageClassFilter"> > > <constructor> > > <parameter>org.hibernate</parameter> > > </constructor> > > </javabean> > > </parameter> > > </constructor> > > </javabean> > > </before-filter> > > </parent-policy> > > </classloading-domain> I do get further when I remove *just* the hibernate-validator-legacy.jar from common/lib - but I really don't want to modify the stock JBoss installation. Any thoughts? Thanks in advance. -------------------------------------------------------------- Reply to this message by going to Community [http://community.jboss.org/message/578811#578811] Start a new discussion in JBoss Microcontainer at Community [http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2114]
_______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user