初学springmvc遇到“源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。“错误
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
我的项目有两层pom.xml太复杂这里解释的不对我发现第二层target中有class文件第一层out/artifacts中没有class文件而且不是pom.xml配置的问题。建议重建项目再试试。
以下解释有误
我通过复制已有项目的web.xml、applicationContext.xml创建了一个新的springmvc项目但是配置controller的映射路径都不能正常访问。
我重新创建项目手敲web.xml、applicationContext.xml问题还在。
对比发现pom.xml有差异
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>springmvcdemo</artifactId>
<groupId>org.jlcc</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.kuang</groupId>
<artifactId>springmvc-03-annotation</artifactId>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<build>
<!--这个元素描述了项目相关的所有资源路径列表例如和项目相关的属性文件这些资源被包含在最终的打包文件里。 -->
<resources>
<!--这个元素描述了项目相关或测试相关的所有资源路径 -->
<resource>
<!--描述存放资源的目录该路径相对POM路径 -->
<directory>src/main/java</directory>
<!--包含的模式列表例如**/*.xml. -->
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<!--描述存放资源的目录该路径相对POM路径 -->
<directory>src/main/resources</directory>
<!--包含的模式列表例如**/*.xml. -->
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>
新创建项目的pom.xmlIDEA自动生成缺build字段
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>springmvcdemo</artifactId>
<groupId>org.jlcc</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.kuang</groupId>
<artifactId>springmvc06ajax</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
</project>
对比out目录中生成的class文件发现没有配置 build->resources字段的代码没有生成class文件。
我查了下build->resources字段的作用
2) <resources>
资源往往不是代码无需编译而是一些properties或XML配置文件构建过程中会往往会将资源文件从源路径复制到指定的目标路径。
因为新项目没有配置build所以程序构建没有xml配置文件程序就无法允许。