2012-05-04 38 views
0

我有一個使用Hibernate的Maven構建的Web應用程序。它成功運行在Tomcat中,但是當jetty-maven-plugin內執行失敗,出現以下異常:與jetty-maven-plugin運行webapp的休眠錯誤

java.lang.TypeNotPresentException: Type org.hibernate.collection.PersistentCollection not present 
at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:98) 
at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:107) 
at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:31) 
at sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:50) 
at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:120) 
at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:31) 
at sun.reflect.generics.repository.ClassRepository.getSuperInterfaces(ClassRepository.java:82) 
at java.lang.Class.getGenericInterfaces(Class.java:794) 
at org.springframework.core.GenericTypeResolver.doResolveTypeArguments(GenericTypeResolver.java:170) 
at org.springframework.core.GenericTypeResolver.resolveTypeArguments(GenericTypeResolver.java:164) 
<snip> 
Caused by: 
java.lang.ClassNotFoundException: org.hibernate.collection.PersistentCollection 
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) 
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244) 
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230) 
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:424) 
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:377) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:247) 
at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:95) 
at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:107) 
at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:31) 
at sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:50) 
at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:120) 
at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:31) 
at sun.reflect.generics.repository.ClassRepository.getSuperInterfaces(ClassRepository.java:82) 
at java.lang.Class.getGenericInterfaces(Class.java:794) 

org.hibernate.collection.PersistentCollectionhibernate-core,這是作爲一個傳遞依賴於Web應用程序。這在WAR中是絕對可訪問的,因爲應用程序在放入Tomcat時可以正確運行。

的POM包含以下插件配置:

<plugin> 
    <groupId>org.mortbay.jetty</groupId> 
    <artifactId>jetty-maven-plugin</artifactId> 
    <version>8.1.3.v20120416</version> 

    <configuration> 
     <jettyXml>src/main/jetty/jetty-env.xml</jettyXml> 
    </configuration> 

    <dependencies> 
     <dependency> 
      <groupId>c3p0</groupId> 
      <artifactId>c3p0</artifactId> 
      <version>0.9.1.2</version> 
     </dependency> 

     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.9</version> 
     </dependency> 
    </dependencies> 
</plugin> 

爲什麼jetty-maven-plugin未能解決org.hibernate.collection.PersistentCollection

回答