dispatcherServlet 报错 org.springframework.transaction.TransactionSystemException: Could not commit JDBC transaction
时间: 2023-12-17 09:28:24 浏览: 34
根据提供的引用内容,这个错误可能是由于事务回滚引起的。当一个事务B在另一个事务A中嵌套时,如果事务B发生异常并被捕获,但是异常被直接吃掉,那么事务A将无法得知事务B发生了异常,因此事务A会抛出TransactionSystemException异常。这个异常通常是由于事务回滚引起的,因为事务B发生异常时被标记为回滚,但是事务A无法得知这个异常,因此事务A无法正确地提交事务。
解决这个问题的方法是在事务B发生异常时,将异常重新抛出,以便事务A能够正确地处理异常并回滚事务。另外,还可以使用REQUIRED_NEW传播行为来避免这个问题,这样事务B将在一个新的事务中运行,而不是在事务A中嵌套运行。
相关问题
springMVC 报错org.springframework.web.servlet.DispatcherServlet noHandlerFound
这个错误通常表示 DispatcherServlet 找不到处理请求的 Handler,可能有以下几个原因:
1. 没有配置正确的 HandlerMapping:DispatcherServlet 会根据请求的 URL 和 HandlerMapping 来查找对应的 Handler。如果没有配置正确的 HandlerMapping,就会找不到对应的 Handler。
2. 没有配置正确的 HandlerAdapter:HandlerAdapter 用来将 Handler 适配成一个可以处理请求的方法。如果没有配置正确的 HandlerAdapter,就会找不到可以处理请求的方法。
3. 没有定义正确的请求参数或请求路径:如果请求的路径或请求参数与 Handler 不匹配,就会找不到对应的 Handler。
4. 没有定义正确的视图解析器:如果没有正确的配置视图解析器,就无法将 Handler 返回的视图解析成最终的响应结果。
解决方法:
1. 检查 HandlerMapping 是否正确配置,并确保它能够正确地将请求映射到对应的 Handler。
2. 检查 HandlerAdapter 是否正确配置,并确保它能够正确地将 Handler 适配成一个可以处理请求的方法。
3. 检查请求的路径和参数是否与 Handler 匹配,并确保它们与 Handler 的注解或配置一致。
4. 检查视图解析器是否正确配置,并确保它能够正确地将 Handler 返回的视图解析成最终的响应结果。
postman接口调用idea,idea控制台报错org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'text/plain;charset=UTF-8' not supported at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:225) at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:158) at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:131) at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:121) at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:170) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:893) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:807) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1061) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:961) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
这个错误提示是因为 Spring 框架中没有支持 'text/plain;charset=UTF-8' 这种类型的数据传输。你可以修改请求的 Content-Type,或者在 Spring 配置文件中添加一个支持该类型的转换器。具体方法可以参考以下步骤:
1. 修改请求的 Content-Type,例如改为 'application/json'。
2. 在 Spring 配置文件中添加一个支持 'text/plain;charset=UTF-8' 的转换器,例如:
```
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
</list>
</property>
</bean>
```
这样应该就可以解决这个错误了。