无法打开类路径资源[applicationContext.xml],因为使用Java config不存在该资源

哈米德

我使用弹簧4.0.2,日食JEE marseTomcat v7.0我必须从这里测试一个例子我的项目结构是:

Java Resources 
    src
        com.test.config 
            HelloConfig.java
            HelloController.java
            HelloInitializer.java
WebContent
    META-INF
        MANIFEST.MF
    WEB-INF
        lib
        view
            welcome.jsp

我的内容HelloConfig.java是:

package com.test.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.test.config")
public class HelloConfig {
    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver = new  InternalResourceViewResolver();
        viewResolver.setViewClass(JstlView.class);
        viewResolver.setPrefix("/WEB-INF/view/");
        viewResolver.setSuffix(".jsp");

        return viewResolver;
    }
}

和我的内容HelloInitializer.java

package com.test.config;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

public class HelloInitializer implements WebApplicationInitializer {
    public void onStartup(ServletContext container) throws ServletException {

        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
        ctx.register(HelloConfig.class);
        ctx.setServletContext(container);

        ServletRegistration.Dynamic servlet = container.addServlet("dispatcher", new DispatcherServlet(ctx));

        servlet.setLoadOnStartup(1);
        servlet.addMapping("/hello/*");
    }
}

和我的内容HelloController.java

package com.test.config;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/")
public class HelloController {

    @RequestMapping(method = RequestMethod.GET)
    public String sayHello(ModelMap model) {
        model.addAttribute("greeting", "Hello World from Spring 4 MVC");
        return "welcome";
    }

    @RequestMapping(value = "/helloagain", method = RequestMethod.GET)
    public String sayHelloAgain(ModelMap model) {
        model.addAttribute("greeting", "Hello World Again, from Spring 4 MVC");
        return "welcome";
    }
}

但是我在服务器上运行了这个项目,并得到了这个错误:

org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:343)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:216)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:187)
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:540)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:454)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5014)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5524)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:158)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:329)
... 21 more

Jul 27, 2016 10:14:38 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
Jul 27, 2016 10:14:38 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/HelloMVC] startup failed due to previous errors
Jul 27, 2016 10:14:38 AM org.apache.catalina.core.ApplicationContext log
INFO: Closing Spring root WebApplicationContext
Jul 27, 2016 10:14:38 AM org.apache.catalina.core.StandardContext listenerStop
SEVERE: Exception sending context destroyed event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
    at org.springframework.context.support.AbstractRefreshableApplicationContext.getBeanFactory(AbstractRefreshableApplicationContext.java:170)
    at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:921)
    at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:895)
    at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:841)
    at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:579)
    at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:115)
    at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:5061)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5719)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

我用的是这段代码,而不是last HelloInitializer.java

package com.test.config;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class HelloInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return null;
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[] { HelloConfig.class };
    }

    @Override
    protected String[] getServletMappings() {
        return new String[] { "/" };
    }
}

但是我得到了这个错误:

java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/HelloMVC]]
    at java.util.concurrent.FutureTask.report(Unknown Source)
    at java.util.concurrent.FutureTask.get(Unknown Source)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:816)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/HelloMVC]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    ... 6 more
Caused by: java.lang.IllegalArgumentException: getServletConfigClasses() did not return any configuration classes
    at org.springframework.util.Assert.notEmpty(Assert.java:214)
    at org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer.createServletApplicationContext(AbstractAnnotationConfigDispatcherServletInitializer.java:75)
    at org.springframework.web.servlet.support.AbstractDispatcherServletInitializer.registerDispatcherServlet(AbstractDispatcherServletInitializer.java:88)
    at org.springframework.web.servlet.support.AbstractDispatcherServletInitializer.onStartup(AbstractDispatcherServletInitializer.java:70)
    at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:175)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5513)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 6 more

Jul 27, 2016 11:30:34 AM org.apache.catalina.core.ContainerBase startInternal
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
    at java.util.concurrent.FutureTask.report(Unknown Source)
    at java.util.concurrent.FutureTask.get(Unknown Source)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:739)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:689)
    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.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
Caused by: org.apache.catalina.LifecycleException: Failed to start component     [StandardEngine[Catalina].StandardHost[localhost]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:816)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 6 more

Jul 27, 2016 11:30:34 AM org.apache.catalina.startup.Catalina start
SEVERE: The required Server component failed to start so Tomcat is unable to start.
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:689)
    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.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:739)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 11 more

如何解决此错误?

阿基里斯范

您的前控制器Dispatcherservlet无法找到您的Config类。试试这个

@ComponentScan(basePackages = "com.test")
public class HelloConfig { }

或者

@ComponentScan(basePackages = "com.test.*")
public class HelloConfig { }

代替这个

@ComponentScan(basePackages = "com.test.config")
public class HelloConfig {}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Hibernate:无法打开类路径资源,因为它不存在

来自分类Dev

无法打开类路径资源[pointsconfig.properties],因为它不存在

来自分类Dev

添加了新的bean.xml并获取具有根本原因的类路径资源[Spring-Mail.xml]无法打开,因为它不存在]

来自分类Dev

java.io.FileNotFoundException:类路径资源[WEB-INF / classes / library.properties]无法打开,因为它不存在

来自分类Dev

Spring Boot 1.4:类路径资源[]无法解析为URL,因为它不存在

来自分类Dev

Spring Data JPA:类路径资源[]无法解析为URL,因为它不存在

来自分类Dev

Spring Data JPA:类路径资源[]无法解析为URL,因为它不存在

来自分类Dev

为什么我得到的类路径资源[src / main / resources / databaseconfig.properties]无法打开,因为它不存在错误?

来自分类Dev

为什么我得到的类路径资源[src / main / resources / databaseconfig.properties]无法打开,因为它不存在错误?

来自分类Dev

找不到Spring类路径资源,因为它不存在

来自分类Dev

找不到Spring类路径资源,因为它不存在

来自分类Dev

IOException从类路径资源解析XML文档-文件不存在-Spring

来自分类Dev

无法打开ServletContext资源[/WEB-INF/applicationContext.xml]

来自分类Dev

引起原因:java.io.FileNotFoundException:无法打开ServletContext资源[/applicationContext.xml]

来自分类Dev

java.io.FileNotFoundException: 无法打开 ServletContext 资源 [/WEB-INF/applicationContext.xml]

来自分类Dev

无法运行命令“ adb reverse”,因为该命令不存在

来自分类Dev

无法运行命令“ adb reverse”,因为该命令不存在

来自分类Dev

春季批处理:输入资源不存在类路径资源

来自分类Dev

如果使用Spring集成的远程分区中不存在资源路径,Spring批处理中的MessageChannelPartitionHandler会如何表现?

来自分类Dev

如果使用Spring集成的远程分区中不存在资源路径,Spring批处理中的MessageChannelPartitionHandler会如何表现?

来自分类Dev

当我已经设置了 URL 时,为什么我的嵌套资源表单尝试使用不存在的路径方法?

来自分类Dev

使用HTTP 204 vs 200 vs 404安全地表明资源不存在

来自分类Dev

Rspec:如何使用期望接收到的资源尚不存在?

来自分类Dev

Spring无法使用@PropertySource查找类路径资源

来自分类Dev

如果父资源不存在,则在REST API中为子资源使用哪个HTTP代码?

来自分类Dev

如果在发布子资源时资源不存在,在 REST API 中使用哪个 HTTP 状态代码?

来自分类Dev

Optaplanner-网站资源不存在

来自分类Dev

无法为“MyTable”类型的实体调用成员“CurrentValues”,因为上下文中不存在该实体

来自分类Dev

JAVA JSON Restfull Web服务所请求的资源上不存在“ Access-Control-Allow-Origin”标头

Related 相关文章

  1. 1

    Hibernate:无法打开类路径资源,因为它不存在

  2. 2

    无法打开类路径资源[pointsconfig.properties],因为它不存在

  3. 3

    添加了新的bean.xml并获取具有根本原因的类路径资源[Spring-Mail.xml]无法打开,因为它不存在]

  4. 4

    java.io.FileNotFoundException:类路径资源[WEB-INF / classes / library.properties]无法打开,因为它不存在

  5. 5

    Spring Boot 1.4:类路径资源[]无法解析为URL,因为它不存在

  6. 6

    Spring Data JPA:类路径资源[]无法解析为URL,因为它不存在

  7. 7

    Spring Data JPA:类路径资源[]无法解析为URL,因为它不存在

  8. 8

    为什么我得到的类路径资源[src / main / resources / databaseconfig.properties]无法打开,因为它不存在错误?

  9. 9

    为什么我得到的类路径资源[src / main / resources / databaseconfig.properties]无法打开,因为它不存在错误?

  10. 10

    找不到Spring类路径资源,因为它不存在

  11. 11

    找不到Spring类路径资源,因为它不存在

  12. 12

    IOException从类路径资源解析XML文档-文件不存在-Spring

  13. 13

    无法打开ServletContext资源[/WEB-INF/applicationContext.xml]

  14. 14

    引起原因:java.io.FileNotFoundException:无法打开ServletContext资源[/applicationContext.xml]

  15. 15

    java.io.FileNotFoundException: 无法打开 ServletContext 资源 [/WEB-INF/applicationContext.xml]

  16. 16

    无法运行命令“ adb reverse”,因为该命令不存在

  17. 17

    无法运行命令“ adb reverse”,因为该命令不存在

  18. 18

    春季批处理:输入资源不存在类路径资源

  19. 19

    如果使用Spring集成的远程分区中不存在资源路径,Spring批处理中的MessageChannelPartitionHandler会如何表现?

  20. 20

    如果使用Spring集成的远程分区中不存在资源路径,Spring批处理中的MessageChannelPartitionHandler会如何表现?

  21. 21

    当我已经设置了 URL 时,为什么我的嵌套资源表单尝试使用不存在的路径方法?

  22. 22

    使用HTTP 204 vs 200 vs 404安全地表明资源不存在

  23. 23

    Rspec:如何使用期望接收到的资源尚不存在?

  24. 24

    Spring无法使用@PropertySource查找类路径资源

  25. 25

    如果父资源不存在,则在REST API中为子资源使用哪个HTTP代码?

  26. 26

    如果在发布子资源时资源不存在,在 REST API 中使用哪个 HTTP 状态代码?

  27. 27

    Optaplanner-网站资源不存在

  28. 28

    无法为“MyTable”类型的实体调用成员“CurrentValues”,因为上下文中不存在该实体

  29. 29

    JAVA JSON Restfull Web服务所请求的资源上不存在“ Access-Control-Allow-Origin”标头

热门标签

归档