【发布时间】:2019-12-16 19:46:49
【问题描述】:
我正在使用 IntelliJ 并导入 Spring MVC 项目。我配置了 maven 设置并使用mvn clean install 构建我的项目。为了运行,我在 IntelliJ 的配置上配置了 tomcat:run。但红色标记显示为:
<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>com.luv2code</groupId>
<artifactId>spring-security-demo</artifactId>
<version>1.0</version>
<packaging>war</packaging>
<name>spring-security-demo</name>
<properties>
<springframework.version>5.0.2.RELEASE</springframework.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<!-- Spring MVC support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springframework.version}</version>
</dependency>
<!-- Servlet, JSP and JSTL support -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<!-- TO DO: Add support for Maven WAR Plugin -->
<build>
<finalName>spring-security-demo</finalName>
<pluginManagement>
<plugins>
<plugin>
<!-- Add maven coordinate for maven war plugin-->
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-war-plugin -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.3</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
但它正在成功编译,并且在运行时打印的控制台是:
"C:\Program Files\Java\jdk1.8.0_111\bin\java.exe" -Dmaven.multiModuleProjectDirectory=C:\Users\AshwinPC\Desktop\Spring-Security\spring-security-demo-starter\spring-security-demo-01-base-app "-Dmaven.home=C:\Program Files\JetBrains\IntelliJ IDEA 社区 2019.2版\plugins\maven\lib\maven3" "-Dclassworlds.conf=C:\Program Files\JetBrains\IntelliJ IDEA 社区 2019.2版\plugins\maven\lib\maven3\bin\m2.conf" "-Dmaven.ext.class.path=C:\Program Files\JetBrains\IntelliJ IDEA 社区版 2019.2\plugins\maven\lib\maven-event-listener.jar" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 社区版 2019.2\lib\idea_rt.jar=61598:C:\Program Files\JetBrains\IntelliJ IDEA 社区版 2019.2\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA 社区版 2019.2\plugins\maven\lib\maven3\boot\plexus-classworlds-2.6.0.jar" org.codehaus.classworlds.Launcher -Didea.version2019.2 tomcat:run [INFO] 正在扫描项目... [INFO] [INFO] ---------------------------------- [INFO] 建设 spring-security-demo 1.0 [INFO] --------------------------------[ 战争 ]--------------------------------- [信息] [信息] >>> tomcat-maven-plugin:1.1:run (default-cli) > 编译@ spring-security-demo >>> [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ spring-security-demo --- [警告] 使用平台编码(UTF-8 实际上)复制过滤的资源,即构建是平台 依赖! [INFO] 跳过不存在的资源目录 C:\Users\AshwinPC\Desktop\Spring-Security\spring-security-demo-starter\spring-security-demo-01-base-app\src\main\resources [INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ spring-security-demo --- [INFO] 无需编译 - 所有类都是 最新的 [INFO] [INFO] http://localhost:8080/spring-security-demo [信息] 创建 Tomcat 服务器配置在 C:\Users\AshwinPC\Desktop\Spring-Security\spring-security-demo-starter\spring-security-demo-01-base-app\target\tomcat 2019 年 8 月 9 日上午 10:49:23 org.apache.catalina.startup.Embedded 开始 信息:启动 tomcat 服务器 2019 年 8 月 9 日上午 10:49:23 org.apache.catalina.core.StandardEngine 启动信息:启动 Servlet 引擎:Apache Tomcat/6.0.29 2019 年 8 月 9 日上午 10:49:24 org.apache.coyote.http11.Http11Protocol init INFO:初始化 Coyote http-8080 上的 HTTP/1.1 2019 年 8 月 9 日上午 10:49:24 org.apache.coyote.http11.Http11Protocol 启动信息:启动 Coyote http-8080 上的 HTTP/1.1
当我点击 :http://localhost:8080/spring-security-demo/
其他配置类有:
DemoController.java
package com.luv2code.springsecurity.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class DemoController {
@GetMapping("/")
public String showHome(){
return "home";
}
}
配置类:
package com.luv2code.springsecurity.demo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.luv2code")
public class DemoAppConfig {
//bean for viewresolver
@Bean
public ViewResolver viewResolver(){
InternalResourceViewResolver viewResolver=new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/view/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
Dispatcher Servlet 配置
package com.luv2code.springsecurity.demo.config;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class MySpringMVcDispatcherServletInitilizer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses(){
return null;
}
@Override
protected Class<?>[] getServletConfigClasses(){
return new Class[] {DemoAppConfig.class};
}
@Override
protected String[] getServletMappings(){
return new String[] { "/" };
}
}
【问题讨论】:
-
在控制器中,像这样修改getmapping @GetMapping("") 试试
-
输出没有变化
-
您可以尝试类似@Getmapping("home") 并ping URL localhost:8080/spring-security-demo/home 并尝试吗?
-
如果这不起作用,请在 servlet 配置中删除,在 getServletMappings 方法中使用空字符串而不是“/”
-
不,它没有运行
标签: java spring spring-mvc tomcat intellij-idea