当前位置: 首页 > 知识库问答 >
问题:

MessageTemplate导致在MVC控制器中没有发现异常的转换器?

韶浩博
2023-03-14

控制器代码

@Autowired
    MessageChannel invokeChannel;
    @RequestMapping(value="/invoke/{payload}")
    public ResponseEntity<String> sayHello(@PathVariable String payload)
    {
        //trigger gateway to send a message     
        MessagingTemplate template = new MessagingTemplate();       
        template.send(invokeChannel, new GenericMessage<String>(payload));      
        return new ResponseEntity<String>(payload, HttpStatus.OK);
    }

例外

java.lang.IllegalArgumentException:没有为以下类型的返回值找到转换器:class java.lang.string org.springframework.web.servlet.mvc.method.annotation.abstractMessageConterMethodProcessor.writeWithWithMessageConverters(80)org.springframework.web.servlet.mvc.method.annotation.servletInvocableHandlerMethod.InvokeandHandland(servletInvocableHandlerMethod.java:126)org.springframework.web.servlet.mvc.method.annotation.requestMappingHandlerAdapter.InvokeHandlormethod(requestMappingHandlerAdapter.java:814)org.springframework.web.servlet.mvc.method.mmvc.method.abstractHandlerMethodAdapter.handle(abstractHandlerMethodAdapter.java:85)org.springframework.web.servlet.dispatcherservlet.doDispatch(dispatcherservlet.java:959)org.springframework.web.servlet.dispatcherservlet.doService(dispatcherservlet.java:893)org.springframework.web.servlet.dispatcherservlet.doService(frameworkServlet.Service(frameworkServlet.java:845)javax.servlet.http.httpservlet.Service(httpservlet.java:729)org.apache.tomcat.websocket.server.wsfilter.doFilter(wsfilter.java:52)

我找不到是什么原因造成的。未到达return new ResponseEntity(...)处的断点。

我的webmvcconfig

@EnableWebMvc
@Configuration
@ComponentScan({ "helloworldmvc" })
public class WebappConfig extends WebMvcConfigurerAdapter {

    @Bean
    public static PropertySourcesPlaceholderConfigurer propertyConfigIn() {
        return new PropertySourcesPlaceholderConfigurer();
    }

    @Override
    public void configureMessageConverters(
            List<HttpMessageConverter<?>> converters) {
        converters.add(new MongoMessageConverter());
    }
}

共有1个答案

彭建业
2023-03-14

//触发网关发送消息

您应该确保template.send(invokeChannel)的流确实是单向的。没有一个网关可以在那里等待依靠。这是你的评论,比如:

未到达return new ResponseEntity(...)处的断点。

    List<MediaType> producibleMediaTypes = getProducibleMediaTypes(servletRequest, clazz, type);

    if (value != null && producibleMediaTypes.isEmpty()) {
        throw new IllegalArgumentException("No converter found for return value of type: " + clazz);
    }
 类似资料:
  • spring MVC中controllin异常流的良好实践是什么? 假设我有一个DAO类,它将对象保存到数据库中,但如果违反了某些规则,例如名称太长、年龄太低,则抛出异常, 现在,如果我想保存名称超过10的A,它应该抛出异常。 但是有一个dataManipulator对象 和控制器 我希望在不抛出异常的情况下保留控制器(我听说这是一个很好的做法)。 但我的问题是,在这种情况下,A\u Data\u

  • 我有一个spring-boot应用程序,没有任何控制器类。如何为该应用程序编写异常处理程序。用@ControllerAdvice注释的异常处理程序类不起作用。

  • 方言设置为java,我的drools版本是6.4.0。我如何避免这个错误? 编辑:字符串到int:

  • 你们能分享一些关于如何在Spring MVC中设计一个处理异常的良好实现的建议吗?以下是我在网上花了一些时间试图找出处理异常的合适或更好的实现后的一些想法。 以下是我正在进行的项目的一些背景: 使用的MVC框架是Spring Boot Web。与其他使用 Spring MVC 的项目类似,我将代码分为几层:控制器、服务和模型。 在控制器中,主要是验证来自视图(前端)层的表单输入并执行一些业务逻辑。

  • 问题内容: 我是Java的新手,正在尝试理解为什么第一个代码片段不会导致此异常,而第二个代码片段会导致此异常。由于在两种情况下都将字符串数组传递到Arrays.asList中,所以两个代码片段都不应该产生异常还是不产生异常? 第一个代码段(毫无例外): 第二段(导致上述异常): 如果相关,我正在Eclipse Helios中使用JavaSE 1.6。 问题答案: 对我来说(使用Java 1.6.0

  • 这是jsp文件 问题是,虽然在中有正确的映射方案,但从jsp来看,它不能用于我的控制器。我已经检查了我的网站,但他们都显示相同。如果有人能在他们的系统上运行它并检查它,请…请尽快恢复。 错误报告。 在路径为[/employee_management_tool]的上下文中,servlet[emp]的servlet.service()引发异常[请求处理失败;嵌套异常是java.lang.NullPoi