我在运行web应用的时候,在web.xml中添加了listener后整个资源就变的不可用了。把listener去掉就正常,这是为什么呢?
下面是我添加listener后log的内容:
2009-4-23 19:01:04 org.apache.catalina.startup.HostConfig checkResources
信息: Reloading context [/testPetstore]
2009-4-23 19:01:05 org.apache.catalina.core.StandardContext listenerStart
严重: Error configuring application listener of class com.sun.javaee.blueprints.petstore.model.CatalogFacade
java.lang.NoClassDefFoundError: Ljavax/persistence/EntityManagerFactory;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2291)
at java.lang.Class.getDeclaredFields(Class.java:1743)
at org.apache.catalina.util.DefaultAnnotationProcessor.processAnnotations(DefaultAnnotationProcessor.java:134)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3790)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1116)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1214)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:293)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1337)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: javax.persistence.EntityManagerFactory
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 15 more
2009-4-23 19:01:05 org.apache.catalina.core.StandardContext listenerStart
严重: Skipped installing application listeners due to previous error(s)
2009-4-23 19:01:05 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2009-4-23 19:01:05 org.apache.catalina.core.StandardContext start
严重: Context [/testPetstore] startup failed due to previous errors
由此看错误出在:
Ljavax/persistence/EntityManagerFactory
但是如何解决呢?