13:04:02.940 [http-bio-8081-exec-3] INFO o.s.web.servlet.DispatcherServlet - FrameworkServlet 'dispatcherServlet': initialization completed in 44 ms
13:04:03.177 [http-bio-8081-exec-3] ERROR o.s.boot.context.web.ErrorPageFilter - Cannot forward to error page for/sample/processgetMessage5 (response is committed), so this response may have the wrong status code
java.lang.IllegalStateException: Cannot forward after response has been committed
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:348) ~[catalina.jar:7.0.55]
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) ~[catalina.jar:7.0.55]
at org.springframework.boot.context.web.ErrorPageFilter.handleErrorStatus(ErrorPageFilter.java:123) [spring-boot-1.1.4.RELEASE.jar:1.1.4.RELEASE]
at org.springframework.boot.context.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:104) [spring-boot-1.1.4.RELEASE.jar:1.1.4.RELEASE]
at org.springframework.boot.context.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:89) [spring-boot-1.1.4.RELEASE.jar:1.1.4.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [catalina.jar:7.0.55]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [catalina.jar:7.0.55]
我想尝试一下在这里的链接描述中提到的选项,一旦我能够移除这个异常。
任何关于如何在Spring4中使用注释处理404的指针都将非常有帮助。
试用以下代码:-
@Configuration
@EnableWebMvc
@EnableSwagger
public class WebConfig extends WebMvcConfigurerAdapter {
.......
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return new EmbeddedServletContainerCustomizer() {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/401.html");
ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/401.html");
ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/401.html");
container.addErrorPages(error401Page, error404Page, error500Page);
}
};
}
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>1.1.5.RELEASE</version>
<exclusions>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.1.5.RELEASE</version>
<exclusions>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>1.1.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>1.1.5.RELEASE</version>
<scope>test</scope>
</dependency>
22:09:03.210 [http-bio-8081-exec-3] INFO o.s.web.servlet.DispatcherServlet - FrameworkServlet 'dispatcherServlet': initialization completed in 28 ms
22:09:03.413 [http-bio-8081-exec-3] ERROR o.s.boot.context.web.ErrorPageFilter - Cannot forward to error page for/applicationurl/processMessage11 (response is committed), so this response may have the wrong status code
java.lang.IllegalStateException: Cannot forward after response has been committed
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:348) ~[catalina.jar:7.0.55]
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) ~[catalina.jar:7.0.55]
at org.springframework.boot.context.web.ErrorPageFilter.handleErrorStatus(ErrorPageFilter.java:134) [spring-boot-1.1.5.RELEASE.jar:1.1.5.RELEASE]
at org.springframework.boot.context.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:111) [spring-boot-1.1.5.RELEASE.jar:1.1.5.RELEASE]
at org.springframework.boot.context.web.ErrorPageFilter.access$000(ErrorPageFilter.java:58) [spring-boot-1.1.5.RELEASE.jar:1.1.5.RELEASE]
at org.springframework.boot.context.web.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:87) [spring-boot-1.1.5.RELEASE.jar:1.1.5.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.0.6.RELEASE.jar:4.0.6.RELEASE]
at org.springframework.boot.context.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:100) [spring-boot-1.1.5.RELEASE.jar:1.1.5.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [catalina.jar:7.0.55]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [catalina.jar:7.0.55]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) [catalina.jar:7.0.55]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) [catalina.jar:7.0.55]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) [catalina.jar:7.0.55
该应用程序可以很好地进行有效的url映射。它是使用spring Boot构建的。PFB应用程序注释类:-
@EnableJpaRepositories
@EnableAutoConfiguration
public class AppConfig {
public static void main(String[] args) {
SpringApplication.run(AppConfig .class, args);
}
@Configuration
@EnableWebMvc
public class WebApplicationConfig extends WebMvcConfigurerAdapter {
@Override
public void configureMessageConverters(
List<HttpMessageConverter<?>> converters) {
MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
converters.add(mappingJackson2HttpMessageConverter);
converters.add(new StringHttpMessageConverter());
super.configureMessageConverters(converters);
}
public class WebApplicationXML extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(
SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}
我已经添加了映射,以便在发生404时重定向到自定义html页面。PFB为此所做的更改:
>
在WebConfig.java类和revenant html页面中添加以下代码:
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return new EmbeddedServletContainerCustomizer() {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED,
"/401.html");
ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND,
"/404.html");
ErrorPage error500Page = new ErrorPage(
HttpStatus.INTERNAL_SERVER_ERROR, "/500.html");
ErrorPage error505Page = new ErrorPage(
HttpStatus.HTTP_VERSION_NOT_SUPPORTED, "/505.html");
ErrorPage error506Page = new ErrorPage(
HttpStatus.METHOD_NOT_ALLOWED, "/405.html");
container.addErrorPages(error401Page, error404Page,
error500Page, error505Page, error506Page);
}
};
}
非常感谢你的建议。它非常有用。
我试图在完全使用JavaConfig配置的Spring MVC应用程序中使用处理404错误。 Spring MVC版本为4.1.5 我读过这样的话: null SpringConfigurationInitializer 请注意,我正在使用 而且 MVC配置 存储配置 安全配置
几天以来,我在运行Struts网络应用程序时遇到了一些问题。我尝试了StackOverflow中与我的问题相关的几个解决方案,但都不起作用。 网状物xml: struts。xml: 登录。jsp: 登录。爪哇: 我补充说: commons-logging-1.1.3。罐子 freemarker-2.3.19。罐子 ognl-3.0.6。罐子 struts2-core-2.3.15.1。罐子 xwo
问题内容: 与其他框架相比,Node.js + Express.js应用程序中的错误报告/处理似乎有所不同。我理解它的工作原理是否正确? A) 通过接收错误作为回调函数的参数来 检测 错误。例如: B) 通过调用next(err) 报告 MIDDLEWARE中的错误。例: C) 通过抛出错误来 报告 路由中的错误。例: d) 手柄 通过配置通过app.error自己的错误处理的错误()或使用通
[见底部更新]我试图通过Tomcat启动Spring Web应用程序,但是当我在浏览器中输入urlhttp://localhost:8080/demo-mvc/时,我收到了404错误和一条消息“请求的资源[/demo-mvc/]不可用”。起初,我试图通过NetBeans部署应用程序,它说部署成功,但是在浏览器启动时,我收到了404错误。我检查了Tomcat/webapp目录,不知为什么没有找到应用
问题内容: 我有2 ng-包括HTML。考虑服务器中是否不存在ng-include src之一。截至目前,它只会加载空白html,并且在浏览器控制台中会显示未找到http-404文件。 因此,在这种情况下,我只想将默认错误页面(服务器中存在)加载到该特定div中,即一半显示默认错误页面,另一部分显示通过nginclude加载的正确div。 我的逻辑是,使用HTTP拦截器拦截所有HTTP调用。无论何