Я пытаюсь создать веб-службу RESTful. Я выполнил инструкции от spring.io и сделал "привет проект" (localhost: 8080/приветствие). PS: Я использовал проект Maven. Проект уже опубликован в Github: https://github.com/Tommzy/OutlierDemo/
Однако, когда я пытался позволить весеннему mvc разрешить одно из моих представлений (.jsp). Он сказал
Страница ошибки Whitelabel
Это приложение не имеет явного отображения для /error, поэтому вы видите это как резерв.
Wed Mar 25 01:31:04 EDT 2015 Появилась непредвиденная ошибка (type = Not Found, status = 404). Нет доступных сообщений
Я не уверен, почему это всегда происходит, потому что у меня уже есть файл конфигурации, как показано ниже.
@Configuration
@EnableWebMvc
@ComponentScan(basePackages="config")
public class WebConfig extends WebMvcConfigurerAdapter {
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
}
Все дерево каталогов моего проекта:
src-main|- java |- config |- WebConfig.java
|- hello |- Application.java
|- Greeting.java
|- GreetingController.java
|- PMethodController.java
|- webapp |- WEB-INF |- views |- pmethod.jsp
|- web.xml
Я скопировал 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">
<servlet>
<servlet-name>mvc-Dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>config</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>mvc-Dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/</welcome-file>
</welcome-file-list>
</web-app>
и мой PMethodController.java:
@Controller
public class PMethodController {
@RequestMapping("/method1")
public String handleRequest() {
return "pmethod";
}
}
Мои приложения.java
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Зависит от всего выше, если я запускаю проект, а затем набираю http://localhost: 8080/method1. Он покажет мне страницу ошибок Whitelabel в верхней части страницы.
Вы найдете полный, простой, рабочий пример JSP с Spring Boot в репозитории spring-boot-samples.
Несколько идей по исправлению вашего приложения:
InternalResourceViewResolver
в свой класс Application. В любом случае, это не подхвачено, потому что вы не просматриваете этот пакетпопробуй это:
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
"org.springframework.web.servlet.view.InternalResourceViewResolver"
качестве viewResolver. Проверьте это