2010-06-09 251 views
1

有沒有人在jetty 7中成功運行任何spring和JPA應用程序?我得到以下異常。該應用程序將引發在碼頭6Spring,JPA,Hibernate,Jetty 7集成

INFO [main] org.eclipse.jetty.util.log - Logging to org.slf4j.impl.Log4jLoggerAdapter(org.eclipse.jetty.util.log) via org.eclipse.jetty.util.log.Slf4jLog 
INFO [main] org.eclipse.jetty.util.log - jetty-7.1.2.v20100523 
INFO [main] org.eclipse.jetty.util.log - Deployment monitor G:\_Java\_Jetty\jetty-distribution-7.1.2.v20100523\contexts at interval 5 
INFO [main] org.eclipse.jetty.util.log - Deployment monitor G:\_Java\_Jetty\jetty-distribution-7.1.2.v20100523\webapps at interval 5 
INFO [main] org.eclipse.jetty.util.log - Deployable added: G:\_Java\_Jetty\jetty-distribution-7.1.2.v20100523\webapps\gwtrpc-spring.war 
INFO [main] org.eclipse.jetty.util.log - Copying WEB-INF/lib jar:file:/G:/_Java/_Jetty/jetty-distribution-7.1.2.v20100523/webapps/gwtrpc-spring.war!/WEB-INF/lib/ to C:\Documents and Settings\Jewel2\Local Settings\Temp\Jetty_0_0_0_0_8080_gwtrpc.spring.war__gwtrpc.spring__az1wdj\webinf\WEB-INF\lib 
INFO [main] org.eclipse.jetty.util.log - Copying WEB-INF/classes from jar:file:/G:/_Java/_Jetty/jetty-distribution-7.1.2.v20100523/webapps/gwtrpc-spring.war!/WEB-INF/classes/ to C:\Documents and Settings\Jewel2\Local Settings\Temp\Jetty_0_0_0_0_8080_gwtrpc.spring.war__gwtrpc.spring__az1wdj\webinf\WEB-INF\classes 
INFO [main] /gwtrpc-spring - Initializing Spring root WebApplicationContext 
INFO [main] org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization started 
INFO [main] org.springframework.web.context.support.XmlWebApplicationContext - Refreshing Root WebApplicationContext: startup date [Thu Jun 10 00:13:32 GMT+06:00 2010]; root of context hierarchy 
INFO [main] org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml] 
INFO [main] org.springframework.beans.factory.support.DefaultListableBeanFactory - Pre-instantiating singletons in org.s[email protected]467991: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,greetingServiceImpl,testService,testService2,taskExecutor,dataSource,entityManagerFactory,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,transactionManager,org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor#0]; root of factory hierarchy 
INFO [main] org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'taskExecutor' 
INFO [main] org.springframework.jdbc.datasource.DriverManagerDataSource - Loaded JDBC driver: com.mysql.jdbc.Driver 
INFO [main] org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean - Building JPA container EntityManagerFactory for persistence unit 'gwtrpc-spring-data-source' 
INFO [main] org.hibernate.cfg.annotations.Version - Hibernate Annotations 3.4.0.GA 
INFO [main] org.hibernate.cfg.Environment - Hibernate 3.3.1.GA 
INFO [main] org.hibernate.cfg.Environment - hibernate.properties not found 
INFO [main] org.hibernate.cfg.Environment - Bytecode provider name : javassist 
INFO [main] org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling 
INFO [main] org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.1.0.GA 
INFO [main] org.hibernate.ejb.Version - Hibernate EntityManager 3.4.0.GA 
INFO [main] org.hibernate.ejb.Ejb3Configuration - Processing PersistenceUnitInfo [ 
name: gwtrpc-spring-data-source 
...] 
INFO [main] org.springframework.beans.factory.support.DefaultListableBeanFactory - Destroying singletons in org.s[email protected]467991: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,greetingServiceImpl,testService,testService2,taskExecutor,dataSource,entityManagerFactory,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,transactionManager,org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor#0]; root of factory hierarchy 
INFO [main] org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor - Shutting down ExecutorService 'taskExecutor' 
ERROR [main] org.springframework.web.context.ContextLoader - Context initialization failed 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: gwtrpc-spring-data-source] class or package not found 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1403) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450) 
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:545) 
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:871) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423) 
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:272) 
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:196) 
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) 
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:636) 
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:188) 
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:995) 
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:579) 
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:381) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) 
at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36) 
at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:182) 
at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:497) 
at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:135) 
at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:61) 
at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:436) 
at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:349) 
at org.eclipse.jetty.util.Scanner.scan(Scanner.java:306) 
at org.eclipse.jetty.util.Scanner.start(Scanner.java:242) 
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:136) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) 
at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:562) 
at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:212) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) 
at org.eclipse.jetty.server.Server.doStart(Server.java:209) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) 
at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1018) 
at java.security.AccessController.doPrivileged(Native Method) 
at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:983) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.eclipse.jetty.start.Main.invokeMain(Main.java:447) 
at org.eclipse.jetty.start.Main.start(Main.java:605) 
at org.eclipse.jetty.start.Main.parseCommandLine(Main.java:238) 
at org.eclipse.jetty.start.Main.main(Main.java:77) 
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: gwtrpc-spring-data-source] class or package not found 
at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1093) 
at org.hibernate.ejb.Ejb3Configuration.addClassesToSessionFactory(Ejb3Configuration.java:871) 
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:758) 
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:425) 
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:131) 
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:225) 
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:308) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1460) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1400) 
... 45 more 
Caused by: java.lang.ClassNotFoundException: WEB-INF.classes.org.gwtrpcspring.example.server.Person 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClassInternal(Unknown Source) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Unknown Source) 
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:135) 
at org.hibernate.ejb.Ejb3Configuration.classForName(Ejb3Configuration.java:1009) 
at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1081) 
... 53 more 
WARN [main] org.eclipse.jetty.util.log - Failed startup of context [email protected]@149f041/gwtrpc-spring,file:/C:/Documents and Settings/Jewel2/Local Settings/Temp/Jetty_0_0_0_0_8080_gwtrpc.spring.war__gwtrpc.spring__az1wdj/webinf/;jar:file:/G:/_Java/_Jetty/jetty-distribution-7.1.2.v20100523/webapps/gwtrpc-spring.war!/;,G:\_Java\_Jetty\jetty-distribution-7.1.2.v20100523\webapps\gwtrpc-spring.war 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: gwtrpc-spring-data-source] class or package not found 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1403) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450) 
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:545) 
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:871) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423) 
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:272) 
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:196) 
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) 
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:636) 
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:188) 
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:995) 
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:579) 
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:381) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) 
at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36) 
at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:182) 
at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:497) 
at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:135) 
at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:61) 
at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:436) 
at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:349) 
at org.eclipse.jetty.util.Scanner.scan(Scanner.java:306) 
at org.eclipse.jetty.util.Scanner.start(Scanner.java:242) 
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:136) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) 
at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:562) 
at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:212) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) 
at org.eclipse.jetty.server.Server.doStart(Server.java:209) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) 
at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1018) 
at java.security.AccessController.doPrivileged(Native Method) 
at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:983) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.eclipse.jetty.start.Main.invokeMain(Main.java:447) 
at org.eclipse.jetty.start.Main.start(Main.java:605) 
at org.eclipse.jetty.start.Main.parseCommandLine(Main.java:238) 
at org.eclipse.jetty.start.Main.main(Main.java:77) 
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: gwtrpc-spring-data-source] class or package not found 
at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1093) 
at org.hibernate.ejb.Ejb3Configuration.addClassesToSessionFactory(Ejb3Configuration.java:871) 
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:758) 
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:425) 
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:131) 
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:225) 
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:308) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1460) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1400) 
... 45 more 
Caused by: java.lang.ClassNotFoundException: WEB-INF.classes.org.gwtrpcspring.example.server.Person 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClassInternal(Unknown Source) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Unknown Source) 
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:135) 
at org.hibernate.ejb.Ejb3Configuration.classForName(Ejb3Configuration.java:1009) 
at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1081) 
... 53 more 
INFO [main] org.eclipse.jetty.util.log - Started [email protected]:8080 

沒有錯誤,這是我的applicationContext.xml文件

<?xml version="1.0" encoding="UTF-8"?> 
<beans> 

<context:annotation-config /> 

<context:component-scan base-package="org.gwtrpcspring.example.server" /> 

<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> 
    <property name="corePoolSize" value="5" /> 
    <property name="maxPoolSize" value="10" /> 
    <property name="queueCapacity" value="25" /> 
</bean> 

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
    <property name="url" value="jdbc:mysql://localhost:3306/test" /> 
    <property name="username" value="jewel" /> 
    <property name="password" value="jewel" /> 
</bean> 

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 

    <property name="jpaVendorAdapter"> 
    <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
    <property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect" /> 
    <!-- 
    <property name="databasePlatform" value="org.hibernate.dialect.HSQLDialect" /> 
    --> 

    <property name="showSql" value="false" /> 
    <property name="generateDdl" value="true" /> 
    </bean> 
    </property> 
</bean> 

<tx:annotation-driven /> 

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory" /> 
</bean> 

<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /> 


</beans> 
+0

我不知道這個問題是什麼,但是......你從Jetty 7使用的是什麼,你沒有在Jetty 6中使用?如果答案不是什麼,只需堅持使用Jetty 6,並給Jetty 7一些時間以使其更加穩定。 – 2010-06-10 00:35:11

+0

嗨帕斯卡,感謝您的回覆。是的,我也這麼認爲,但不幸的是,我在我的項目中使用了Cometd,他們似乎解決了jetty7代碼中的一些關鍵錯誤。例如,請參閱:http://groups.google.com/group/cometd-users/browse_thread/thread/fde24f3cbdaaadee/472103e24a3813f8?lnk=gst&q=Unknown+client+jetty7#472103e24a3813f8 – Jewel 2010-06-10 06:28:49

+0

啊,我明白了。我建議在[Jetty的bug跟蹤器](http://wiki.eclipse.org/Jetty/Contributor/Bug_Tracking)中創建一個新的bug,也許你會在那裏得到更多的反饋。 – 2010-06-10 20:33:18

回答

2

我得到了一些時間再次與這個問題作鬥爭。看起來類加載是主要問題。休眠錯誤地解釋了包爲:

WEB-INF.classes.org.gwtrpcspring.example.server.Person

我剛拉上的WEB-INF/classes所有的東西WEB-INF/lib和一切工作正常。