当前位置: 首页 > 知识库问答 >
问题:

带MVC的SpringMVC4:资源不工作

柳培
2023-03-14

我试图使用SpringMVC制作一个简单的JavaWeb应用程序。我试图在我的资源文件夹中添加CSS和JS文件,该文件夹分别位于/Webcontents/resources/和Webcontents/JS。因此,我需要在我的servlet中进行一些配置。xml并在该文件中包含spring webmvc。我的servlet。xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="
        http://www.springframework.org/schema/beans   
        http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-4.3.xsd">
 
	<context:component-scan base-package="com.webrtc.controller" />

	<bean id="viewResolver"
		class="org.springframework.web.servlet.view.UrlBasedViewResolver">
		<property name="viewClass"
			value="org.springframework.web.servlet.view.JstlView" />
		<property name="prefix" value="/WEB-INF/jsp/" />
		<property name="suffix" value=".jsp" />
		<mvc:resources mapping="/resources/**" location="/resources/" />
		<mvc:resources mapping="/js/**" location="/js/" />
        <mvc:annotation-driven />
	</bean>
 
</beans>

下面给出了我的POM. xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>WebRTCProject</groupId>
  <artifactId>WebRTCProject</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <properties>
        <jdk.version>1.8</jdk.version>
        <spring.version>4.3.7.RELEASE</spring.version>
  </properties>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.6.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.0.0</version>
        <configuration>
          <warSourceDirectory>WebContent</warSourceDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencyManagement>
  <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
    </dependencies>
  </dependencyManagement>
</project>

一旦我使用Maven构建项目,并尝试使用Eclipse IDE上添加的Tomcat在服务器上运行它,我就会得到以下错误:

    SEVERE: Context initialization failed
org.springframework.beans.factory.parsing.BeanDefinitionParsingException:

配置问题:找不到元素[resources]的BeanDefinitionDecorator。有问题的资源:ServletContext资源[/WEB-INF/webrtc servlet.xml]位于org。springframework。豆。工厂解析。失败问题记者。致命(FailFastProblemReporter.java:60)在org。springframework。豆。工厂解析。ReaderContext。org上的致命错误(ReaderContext.java:68)。springframework。豆。工厂解析。ReaderContext。在org上致命(ReaderContext.java:55)。springframework。豆。工厂xml。NamespaceHandlerSupport。findDecoratorForNode(NamespaceHandlerSupport.java:121)位于org。springframework。豆。工厂xml。NamespaceHandlerSupport。在org上装饰(NamespaceHandlerSupport.java:99)。springframework。豆。工厂xml。BeanDefinitionParserDelegate。decorateiFrequered(beandDefinitionParserDelegate.java:1448)位于org。springframework。豆。工厂xml。BeanDefinitionParserDelegate。DecorateBeandDefinitionFrequered(beandDefinitionParserDelegate.java:1435)位于org。springframework。豆。工厂xml。BeanDefinitionParserDelegate。DecorateBeandDefinitionFrequered(beandDefinitionParserDelegate.java:1415)位于org。springframework。豆。工厂xml。DefaultBeanDefinitionDocumentReader。org上的processBeanDefinition(DefaultBeanDefinitionDocumentReader.java:301)。springframework。豆。工厂xml。DefaultBeanDefinitionDocumentReader。org上的parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:190)。springframework。豆。工厂xml。DefaultBeanDefinitionDocumentReader。org上的parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:169)。springframework。豆。工厂xml。DefaultBeanDefinitionDocumentReader。doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:142)位于org。springframework。豆。工厂xml。DefaultBeanDefinitionDocumentReader。org上的registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:94)。springframework。豆。工厂xml。XmlBeanDefinitionReader。org上的registerBeanDefinitions(XmlBeanDefinitionReader.java:508)。springframework。豆。工厂xml。BeandeXmlReader。doLoadBeanDefinitions(XmlBeanDefinitionReader.java:392)位于org。springframework。豆。工厂xml。XmlBeanDefinitionReader。在org上加载BeanDefinitions(XmlBeanDefinitionReader.java:336)。springframework。豆。工厂xml。XmlBeanDefinitionReader。在org上加载BeanDefinitions(XmlBeanDefinitionReader.java:304)。springframework。豆。工厂支持AbstractBeanDefinitionReader。在org上加载BeanDefinitions(AbstractBeanDefinitionReader.java:181)。springframework。豆。工厂支持AbstractBeanDefinitionReader。在org上加载BeanDefinitions(AbstractBeanDefinitionReader.java:217)。springframework。豆。工厂支持AbstractBeanDefinitionReader。在org上加载BeanDefinitions(AbstractBeanDefinitionReader.java:188)。springframework。网状物上下文支持XmlWebApplicationContext。在org上加载BeanDefinitions(XmlWebApplicationContext.java:125)。springframework。网状物上下文支持XmlWebApplicationContext。在org上加载BeanDefinitions(XmlWebApplicationContext.java:94)。springframework。上下文支持AbstractRefreshableApplicationContext。位于org的refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)。springframework。上下文支持AbstractApplicationContext。在org上获得FreshBeanFactory(AbstractApplicationContext.java:613)。springframework。上下文支持AbstractApplicationContext。在org上刷新(AbstractApplicationContext.java:514)。springframework。网状物servlet。FrameworkServlet。在org上配置和刷新WebApplicationContext(FrameworkServlet.java:668)。springframework。网状物servlet。FrameworkServlet。在org上创建WebApplicationContext(FrameworkServlet.java:634)。springframework。网状物servlet。FrameworkServlet。在org上创建WebApplicationContext(FrameworkServlet.java:682)。springframework。网状物servlet。FrameworkServlet。位于org的initWebApplicationContext(FrameworkServlet.java:553)。springframework。网状物servlet。FrameworkServlet。位于org的initServletBean(FrameworkServlet.java:494)。springframework。网状物servlet。HttpServletBean。javax上的init(HttpServletBean.java:138)。servlet。GenericServlet。org上的init(GenericServlet.java:158)。阿帕奇。卡塔琳娜。果心标准包装。org上的initServlet(StandardWrapper.java:1183)。阿帕奇。卡塔琳娜。果心标准包装。loadServlet(StandardWrapper.java:1099)位于org。阿帕奇。卡塔琳娜。果心标准包装。在组织中加载(StandardWrapper.java:989)。阿帕奇。卡塔琳娜。果心标准上下文。loadOnStartup(StandardContext.java:4931)位于org。阿帕奇。卡塔琳娜。果心标准上下文。startInternal(StandardContext.java:5241)位于org。阿帕奇。卡塔琳娜。util。生命周期酶。在org上启动(LifecycleBase.java:150)。阿帕奇。卡塔琳娜。果心ContainerBase$StartChild。在org上调用(ContainerBase.java:1419)。阿帕奇。卡塔琳娜。果心ContainerBase$StartChild。在java上调用(ContainerBase.java:1409)。util。同时发生的未来任务。在java上运行(FutureTask.java:266)。util。同时发生的线程池执行器。java上的runWorker(ThreadPoolExecutor.java:1149)。util。同时发生的线程池执行器$Worker。在java上运行(ThreadPoolExecutor.java:624)。朗。丝线。运行(Thread.java:748)

我的其他确认如下:

视窗10

Eclipse IDE

Spring4.3.7

JavaSDK1.8

Tomcat 8.5

我尝试了不同的解决方案来解决这个问题,如版本控制问题,更改servlet.xml文件等,但无法解决这个问题。

有人知道我如何解决这个问题吗?

任何帮助或建议都将不胜感激!如果你需要更多的项目细节,我将能够为你提供更多的细节。

共有1个答案

虞唯
2023-03-14

我的servlet.xml如下

配置/WEB-INF/webrtc-servlet.xml有错误。删除此文件或修复错误。

这些元素应该在bean定义之外

<mvc:resources mapping="/resources/**" location="/resources/" />
<mvc:resources mapping="/js/**" location="/js/" />
 类似资料:
  • 我在Spring MVC中测试了一些请求映射,在我的应用程序中遇到了一个奇怪的情况。我决定创建一个简单的cenario,以便您能够理解我的问题。我将首先向您展示我的项目(源代码)的详细信息,然后再开始我的问题。 我的项目中有以下目录结构: 我的Tomcat部署描述符: DispatcherServlet的我的应用程序上下文: 第1页的我的控制器类。jsp: 我的page1.jsp: 我可以访问第1

  • 22.7.2.定义一个新的 source set 要定义一个新的源组, sourceSets {} 块中引用它.下面是一个例子: 例22.5.定义一个新的 source set build.gradle sourceSets { intTest } 当你定义一个新的 source set, java 插件会为该 source set 添加一些如Table 22.6, “Java plugi

  • 然而,使用getInputStream是可行的。 如果有人能分享这背后的原因,以及在spring Boot中加载xml文件是否有更好的/替代的方法,这将是非常有帮助的。如有任何帮助,我将不胜感激

  • 22.7.3.一些 source set 的例子 加入含有类文件的 sorce set 的 JAR: 例22.8.为 source set 组装 JAR build.gradle task intTestJar(type: Jar) { from sourceSets.intTest.output } 为 source set 生成 javadoc: 例22.9.为 source set

  • 22.7.1.Source Set 属性 下表列出了 Source Set 的一些重要属性, 更多细节请查看 SourceSet 的 API 文档. 表22.9.java 插件- Source Set 属性 配置名称 类型 默认值 描述 name String (read-only) Not null 用来识别source set的名称 output SourceSetOutput(read-on

  • 导入资源 提供了三种 导入资源 的方式: 以新建文件的方式,通过 Cocos Creator 3D 窗口的 资源管理器 面板 创建按钮 导入资源 以复制文件的方式,在操作系统的文件管理器中,将资源文件复制到项目资源文件夹下,之后打开编辑器或激活编辑器窗口会自动刷新 资源管理器 的资源列表,完成导入资源。 以拖拽文件的方式,从操作系统的文件管理器中拖拽资源文件到 资源管理器 面板的某个文件夹位置,完