获取java.lang.ClassNotFoundException:SessionFactory,当我尝试部署战争时

时间:2017-03-29 17:16:43

标签: java eclipse hibernate tomcat

我正在尝试使用STS在TC服务器上部署war。我能够在没有任何依赖性问题的情况下构建项目。但是一旦我尝试将战争添加到服务器,我就会收到以下错误:

[2017-03-29 09:27:14,303] ERROR [ContextLoader]Context initialization failed 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ApplConfigService': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'configManager': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'UserAuthentication': Injection of resource dependencies failed; nested exception is java.lang.NoClassDefFoundError: SessionFactory
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:311)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4729)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5167)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:586)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1750)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

我尝试过的故障排除步骤:

  1. 我确保所建的战争在WEB_INF / lib
  2. 下有所有必要的罐子
  3. 尝试将jar添加到buildpath
  4. 确保在首选项 - >部署程序集
  5. 下添加了maven依赖项
  6. 多次清理服务器
  7. 强迫maven再次下载所有的罐子
  8. Maven是否从命令行安装以确保战争正在建设
  9. 尝试将war手动部署到tomcat / STS并在命令行启动服务器。它在没有此错误的情况下启动,但为应用程序URL提供404。
  10. 尝试过STS和Eclipse

    由于某种原因,它无法从服务器中找到Hibernate jar。我已经尝试了我在堆栈溢出时遇到的大部分解决方案,但它并没有消失。

  11. 对此的任何见解将不胜感激!

2 个答案:

答案 0 :(得分:0)

问题出在IDE上。我从项目的目标文件夹中复制了WEB-INF文件夹,并将其粘贴到服务器路径中,覆盖了那里存在的WEB-INF:

Server path location

我现在可以启动服务器而没有任何问题

答案 1 :(得分:0)

我没有足够的评论意见,作为评论会更好。但是为了后人的缘故:很多人都不知道war文件和ear文件只是压缩了特定位置的特定文件的内容。要查看该文件,您可以将扩展名重命名为“.zip”,然后浏览其中的文件。

我知道你已经回答了自己的问题,但其他人可能会觉得这很有用。 :)