这是我的问题。我试图在服务器上运行以下应用程序:https://github.com/googleads/aw-reporting,我遵循自述,将项目导入到我的Eclipse中,并制作了一个可运行的Jar,该选项还创建了一个包含所有Jar的lib文件夹。现在,当我在我的机器中运行jar时,一切正常,但是我将jar和lib文件夹上传到我的服务器(这两台机器都运行在linux上),并且一直收到这个错误:
2014-04-11 04:21:45,467 [ERROR|com.google.api.ads.adwords.jaxws.extensions.AwReporting|AwReporting] Unexpected error accessing the API: Error creating bean with name 'sqlAuthTokenPersister' defined in URL [jar:file:/home/rst_ericg/aw-reporting/aw-report.jar!/com/google/api/ads/adwords/jaxws/extensions/report/model/persistence/sql/SqlAuthTokenPersister.class]: Unsatisfied dependency expressed through constructor argument with index 0 of type [org.hibernate.SessionFactory]: : Cannot find class [org.springframework.orm.hibernate4.LocalSessionFactoryBean] for bean with name 'sessionFactory' defined in class path resource [aw-report-sql-beans.xml]; nested exception is java.lang.ClassNotFoundException: org.springframework.orm.hibernate4.LocalSessionFactoryBean; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springframework.orm.hibernate4.LocalSessionFactoryBean] for bean with name 'sessionFactory' defined in class path resource [aw-report-sql-beans.xml]; nested exception is java.lang.ClassNotFoundException: org.springframework.orm.hibernate4.LocalSessionFactoryBean
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlAuthTokenPersister' defined in URL [jar:file:/home/rst_ericg/aw-reporting/aw-report.jar!/com/google/api/ads/adwords/jaxws/extensions/report/model/persistence/sql/SqlAuthTokenPersister.class]: Unsatisfied dependency expressed through constructor argument with index 0 of type [org.hibernate.SessionFactory]: : Cannot find class [org.springframework.orm.hibernate4.LocalSessionFactoryBean] for bean with name 'sessionFactory' defined in class path resource [aw-report-sql-beans.xml]; nested exception is java.lang.ClassNotFoundException: org.springframework.orm.hibernate4.LocalSessionFactoryBean; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springframework.orm.hibernate4.LocalSessionFactoryBean] for bean with name 'sessionFactory' defined in class path resource [aw-report-sql-beans.xml]; nested exception is java.lang.ClassNotFoundException: org.springframework.orm.hibernate4.LocalSessionFactoryBean
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:730)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:196)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1051)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:955)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:490)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at com.google.api.ads.adwords.jaxws.extensions.AwReporting.initApplicationContextAndProperties(AwReporting.java:438)
at com.google.api.ads.adwords.jaxws.extensions.AwReporting.main(AwReporting.java:126)
Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springframework.orm.hibernate4.LocalSessionFactoryBean] for bean with name 'sessionFactory' defined in class path resource [aw-report-sql-beans.xml]; nested exception is java.lang.ClassNotFoundException: org.springframework.orm.hibernate4.LocalSessionFactoryBean
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1269)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:578)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1338)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:356)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:335)
at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:187)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:895)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:853)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:768)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:795)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:723)
... 16 more
Caused by: java.lang.ClassNotFoundException: org.springframework.orm.hibernate4.LocalSessionFactoryBean
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:260)
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:416)
at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1290)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1261)
... 26 more
我双倍地检查了lib文件夹,包含org.springframework.orm.hibernate4.LocalSessionFactoryBean
的jar在那里,但不知怎么他找不到它,它在我的计算机上工作得很好。
清单-版本: 1.0类路径:。W-report_lib/javax.Injec-1.jar aw-report_lib/jdo2-api- 2.3-eb.jar aw-report_lib/transaction-api-1.1.jar aw-report_lib/servle beans 2.5.jar aw-report_ lib/spring 3.2.2.RELEASE.jar aw-report_liasE.jar aw-report_liasE.jar aw-report_lib/commons 1.1.1report_lib/spr aw-report_lib/spring-context-3.2.2.RELEASE.jar aw- .jar _lib/spr ing-aop-3.2.2.RELEASE.jar aw-.jar_lib/aopalliance-1.0.jar aw-report _lib/spring-表达式3.2.2.RELEASE.Jaw-report_lib/SpringTX-3.2。2.RELEASE.jar aw-report _lib/ nal.jar aw-report_lib/antlr-2.7.7.jar aw-report_lib/jboss-日志-3.1 .0.GA.jar aw-report_lib/dom4j-1.6.1.jar -报告_lib/jboss transacti on-api_1.1_spec-1.0.1.Final.jar aw-report_lib/hibernate-jpa-2.0-api-1 .0.1.Final.jar aw-report_lib/joda 3.15.0-GA.jar aw-report_lib/hi bernate-commons-注释-4.0.1.Final.jar aw-report_lib/joda-time-2 .2.jar aw-report_lib/opencsv-2。3.jar aw-report_lib/gson-2.2.4.jar aw- report_lib/番石榴-jdk5 5-16.0-rc1.jar aw- report_lib/ads 1.26.0.jar a w-report_lib/guice-3.0.jar -report_lib/guice-assistedinject-3.0.jar aw-report_lib/guice-复合绑定-3.0.jar-report_lib/1.7.aw-jar-1.7.aw-report_lib/collections 1.8.3.jar aw-report_lib/slf4j-api-1.6 .1.jar aw/google-api-客户端-1.17.0-rc.jar aw-报告_lib/google-oauth-client-1.17.0-rc.jar aw-report_lib/google-http-client-1.17 .0-rc.jar aw-report_lib/jsr305 305-1.3.9.jar aw-report_lib/httpclient-4.0 .1.jar aw/httpcore-4.0.1.jar aw-report_lib/commons 1 .3.jar .3.jarjar aw-report _lib/jackson-core-2.1.3.jar aw-report_lib/junit-4.10.jar aw-report _lib/hamcrest-core-1.1.jar aw-report_lib/spring-test-3.2.RELEASE.JAaw-report_lib/H2-1.3.172.jar aw-report_lib/mysql-连接器-java-5.1 .6.jar aw-report_lib/jtds-1.3.0.jar aw-report_lib/mongo-java-驱动程序-2 .11.0.jar aw-report_lib/objectify-4.0.jar aw-report_lib/番石榴-14.0.1。jar aw-report_lib/番石榴-16.0-rc1.jar aw-report_lib/adwords-appengine- 1.26.0.jar aw-report_lib/ads lib-appengine-1.26.0.jar aw-report_lib/g oogle-api-client-appengine-1.17.0-rc.jar aw-google-oauth-c lient-appengine-1.17.0-rc.jar aw-报告_lib/google-http-client-g ine1.17.0-rc.jar aw-report_lib/google-oauth-client-servlet-1.17.0-rc .jar aw-report_lib/google-http-client-jdo-1.17.0-rc.jar aw-report_lib /google-api-client-servlet-1.17.0-rc.jar aw-report_lib/log4j-1.2.17.j ar aw-report_lib/jmustrahe-1.8.jar aw-report_lib/core-renderer R8.jar aw-report_lib/itext-2.0.8.jar aw- report_lib/bcmail-jdk14 14-138.jar aw -report_lib/bcprov-jdk14 14-138.jar aw-report_lib/commons 1.3.2.jar aw-report_lib/commons 1.2.jar aw-report_lib/mockito-all-1.8.5.jar a w-report_lib/google-api-services-drive-v2-rev113-1.17.0-rc.jar主要类别: com.google.api.ads.adwords.jaxws.extensions.AwReporting
发布于 2014-04-11 14:07:18
作为解决问题的方法的另一种选择,我建议您添加一个Maven插件(如果您正在使用Maven),它会自动将应用程序及其所有依赖项打包到一个可执行的jar文件中。
只需将Maven程序集插件添加到插件列表中,并运行mvn包目标即可。就是这样,您可以获得完全打包的可执行jar +您的原始jar,而不需要依赖项。
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.mypackage.RunApp</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
https://stackoverflow.com/questions/23011589
复制相似问题