【问题标题】:How to add application context in web.xml如何在 web.xml 中添加应用程序上下文
【发布时间】:2013-02-27 13:37:36
【问题描述】:

如何将我的测试资源文件夹中的 applicationcontext.xml 添加到 web.xml。 我试过这个

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/test/resources/com/reg/applicationcontext.xml</param-value>
</context-param>

<listener>
   <listener-class>
       org.springframework.web.context.ContextLoaderListener
   </listener-class>
</listener> 

我运行mvn war:war 命令,并在apache 中部署war 文件。但它显示错误。

Mar 12, 2013 11:31:07 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
Mar 12, 2013 11:31:07 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/myapp] startup failed due to previous errors

谁能帮帮我?谢谢

本地主机。

Mar 12, 2013 11:19:57 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Skipped installing application listeners due to previous error(s)
Mar 12, 2013 11:31:07 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1713)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4733)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5291)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    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)

Mar 12, 2013 11:31:07 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Skipped installing application listeners due to previous error(s)

【问题讨论】:

  • 你用的是tomcat吧?你能发布 catalina.log 吗?
  • 请查看以下链接...stackoverflow.com/questions/9197112/…
  • 链接@GMR在哪里?
  • @IswantoSan 2013 年 3 月 12 日上午 11:31:07 org.apache.catalina.core.StandardContext startInternal 严重:错误 listenerStart 2013 年 3 月 12 日上午 11:31:07 org.apache.catalina。 core.StandardContext startInternal SEVERE: Context [/appanalytix] 由于先前的错误而启动失败
  • @ShijuKBabu,localhost.log 怎么样?你能把它贴在你的问题中吗?

标签: java spring web.xml applicationcontext


【解决方案1】:

这是简单的 web xml 文件。参考它并根据您的需要更改路径。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>

<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- Processes application requests -->
<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

编辑: 此外,您的应用似乎缺少 spring-web jar。确保你在类路径中有它。

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>${your_spring_vserion}</version>
</dependency>

【讨论】:

  • servlet-context.xml 是邮件 xml 文件。上面声明的可以用来声明与hibernate、spring security相关的bean。最好有这些不同的 xml 文件。
【解决方案2】:

您的类路径中缺少spring-web.jar

尝试在你的 maven 配置中添加这个:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <type>jar</type>
    <scope>compile</scope>
</dependency>

【讨论】:

    【解决方案3】:

    您将 applicationContext.xml 放在测试目录中?这是一个巨大的错误。既然你使用mvn,你应该把它放在main->resource dir中,因为当你使用mvn war:war时,它不会在test dir中收集文件。然后放到web.xml下面

     <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
               classpath:**the sub dir in you resource which the config xml is in** /applicationContext.xml
            </param-value>
        </context-param>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-02
      • 1970-01-01
      • 1970-01-01
      • 2014-07-12
      • 2017-12-09
      • 1970-01-01
      • 2021-10-10
      相关资源
      最近更新 更多