我有一个简单的应用程序,它应该根据提供的URL加载一些简单的JSP页面
在IntelliJ中使用应用程序时,上述URL按预期工作。
然而,在使用-java-jar应用程序启动应用程序时。jar——Spring。配置。位置=文件:/应用属性,它为上述所有URL返回404。
无法找出原因,如果有人能指出我可能错过的任何东西,我将不胜感激。
我的项目细节如下。没有提供JSP的细节,因为它们是带有一行文本的简单页面。
Java version : 11.9
Spring Boot version : 2.3.4.RELEASE
Spring Version : 5.2.9.RELEASE
Maven项目结构
├── src
│ └── main
│ ├── java
│ │ └── com.springjsp
│ │ └── config
| | └── Config.java
│ │ └── controller
| | └── TestController.java
│ │ └── App.java
│ ├── resources
│ │ └── application.properties
│ └── webapp
| └── WEB-INF
│ └── jsp
│ └── ui
│ └── page1.jsp
│ └── page2.jsp
│ └── error.jsp
应用程序。Java语言
@SpringBootApplication
public class App {
public static void main(String[] args){SpringApplication.run(App.class, args);}
Config.java
@Configuration
public class Config {
@Bean
TestController page1(){
return new TestController("/ui/page1","/ui/error");
}
@Bean
TestController page2(){
return new TestController("/ui/page2","/ui/error");
}
@Bean
SimpleUrlHandlerMapping simpleUrlHandlerMapping() {
SimpleUrlHandlerMapping simpleUrlHandlerMapping = new SimpleUrlHandlerMapping();
simpleUrlHandlerMapping.setOrder(1);
Map<String, Object> mappings = new HashMap<>();
mappings.put("", page1());
mappings.put("first.do", page1());
mappings.put("second.do", page2());
simpleUrlHandlerMapping.setUrlMap(mappings);
return simpleUrlHandlerMapping;
}
}
测试ontroller.java
public class TestController implements Controller {
private String formView;
private String errorView;
public TestController(String formView, String errorView) {
this.formView = formView;
this.errorView = errorView;
}
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
try {
return new ModelAndView(formView);
} catch (Exception ex) {
return new ModelAndView(errorView);
}
}
}
application.properties
server.port=9191
server.servlet.context-path=/mypath
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
pom。xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
</dependencies>
<resources>
<resource>
<directory>${basedir}/src/main/resources/</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>${basedir}/src/main/webapp</directory>
</resource>
</resources>
控制台出错
2021-05-19T11:48:34.387 [http-nio-11970-exec-2] INFO o.a.c.c.C.[.[localhost].[/mypath] - Initializing Spring DispatcherServlet 'dispatcherServlet'
2021-05-19T11:48:34.388 [http-nio-11970-exec-2] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
2021-05-19T11:48:34.388 [http-nio-11970-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - Detected StandardServletMultipartResolver
2021-05-19T11:48:34.399 [http-nio-11970-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - enableLoggingRequestDetails='false': request parameters and headers will be masked to prevent unsafe logging of potentially sensitive data
2021-05-19T11:48:34.399 [http-nio-11970-exec-2] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 11 ms
2021-05-19T11:48:34.412 [http-nio-11970-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - GET "/mypath/", parameters={}
2021-05-19T11:48:34.420 [http-nio-11970-exec-2] DEBUG o.s.w.s.h.SimpleUrlHandlerMapping - Mapped to com.springjsp.controllers.TestController@e638281
2021-05-19T11:48:34.424 [http-nio-11970-exec-2] DEBUG o.s.w.s.v.ContentNegotiatingViewResolver - Selected 'text/html' given [text/html, application/xhtml+xml, image/avif, image/webp, image/apng, application/xml;q=0.9, application/signed-exchange;v=b3;q=0.9, */*;q=0.8]
2021-05-19T11:48:34.425 [http-nio-11970-exec-2] DEBUG o.s.web.servlet.view.JstlView - View name '/ui/page1', model {}
2021-05-19T11:48:34.432 [http-nio-11970-exec-2] DEBUG o.s.web.servlet.view.JstlView - Forwarding to [/WEB-INF/jsp//ui/page1.jsp]
2021-05-19T11:48:34.436 [http-nio-11970-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - Completed 404 NOT_FOUND
2021-05-19T11:48:34.437 [http-nio-11970-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/mypath/error", parameters={}
2021-05-19T11:48:34.440 [http-nio-11970-exec-2] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#errorHtml(HttpServletRequest, HttpServletResponse)
2021-05-19T11:48:34.489 [http-nio-11970-exec-2] DEBUG o.s.w.s.v.ContentNegotiatingViewResolver - Selected 'text/html' given [text/html, text/html;q=0.8]
2021-05-19T11:48:34.494 [http-nio-11970-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 404
使用jar打包时不支持JSP。您应该通过设置
我试图将一个由点组成的GeoJSON层从EPSG:4326重新投影到EPSG:3857。当我在一个独立的程序中运行下面的代码时(如下所示),输出与预期一样。 上述代码的输出为: 然而,当我使用完全相同的代码创建一个函数时,输出是EPSG: 3857中的shapefile,其中所有点的坐标都是0.00000, 0.00000。大多数时候,这甚至不会在QGIS中显示。此函数的输入参数是要重新项目的Ge
我创建了一个Spring Boot应用程序,它通过HTTP POST将一些经过分析的Twitter-stuff作为JSON对象。JSON对象如下所示: 当我从IntelliJ运行代码并将此JSON发布到我的服务时,AnalyzedKeyWordList中填充了关键字对象“VW”和“Tesla”。所以起作用了。 类“AnalyzedKeywordList”如下所示: 导入java.util.List
我已经用JavaFX创建了我的应用程序。一切都很好,所以我使用Jpackage在Windows中制作了一个可安装的应用程序版本。 在我安装包之后,Windows计算机仍然要求安装JVM。 我的期望是,我可以使用Jpackage在任何计算机上安装我的JavaFX应用程序,并自动设置JVM。。用户只需点击图标并运行应用程序。 关于Jpackage中的正确命令的任何建议,以将我的JavaFX应用程序ja
我有Intellij-IDEA 13.1.2。[已编辑,以前是13.0.2]我使用scala-plugin。我正在尝试使用工作表来评估代码。 但我得到的只有两个错误: 更新:现在它在Intellij13.1.5、Scala Plugin0.41.2和Scala-2.10和2.11下都能正常工作
我想知道为什么我的Java程序在控制台工作,当我做: javac Main.java Java美因河 ...而不是在Eclipse中,因为我有这个错误: 线程“main”java.lang.NullPointerException在codepin.main.main(main.java:48)-->char passwordarray[]=console.readpassword(“enter p
我正在尝试使用bin/spark-submit运行一个spark应用程序。当我引用本地文件系统中的应用程序jar时,它会正常工作。但是,当我将我的应用程序jar复制到hdfs中的一个目录时,我得到了以下异常: 我使用的是hadoop版本2.6.0和spark版本1.2.1