【问题标题】:Body is null error when using camel with xml-dsl restlet component将骆驼与 xml-dsl restlet 组件一起使用时,正文为空错误
【发布时间】:2015-08-06 18:13:36
【问题描述】:

我是 apache camel 和 restlet 组件的新手。

我正在尝试从 rest url 接收 POST 请求并使用 POJO bean 验证它们。

我有以下使用 Apache camel xml-dsl restlet 组件的路线。

      <route>
        <from uri="restlet:/members?restletMethod=POST"/>
        <!--    <to uri="registerMemberBean"/>-->
        <bean ref="registerMemberBean" method="registermember"/>
    </route>

基本上,我正在尝试发布到 /members 网址。我想在 POJO bean 中接收它们和/或调用 POJO bean 中的指定方法,该方法应该继续接收到的值。然后,我想在传递给 db 之前验证 bean 中的值。

我已尝试使用上述两种方式。 我总是看到错误“org.apache.camel.RuntimeExchangeException:IllegalArgumentException 发生调用方法:”。 公共 java.lang.String org.sample.service.RegisterMemberBean.regi sterMember(int,java.lang.String) 在交换中使用参数:[null, null]:Exchange[Message: [Body is null]]`` 在 org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:412

另外,我在堆栈跟踪中看到 BodyType 和 Body 都是空的。

有人可以帮忙吗?

【问题讨论】:

    标签: apache-camel dsl restlet


    【解决方案1】:

    我认为问题出在你的方法上。看起来骆驼无法将交换和/或正文转换为您指定的参数。 你能试试这个吗:

    public void registermember(Exchange exchange){
      System.out.println("Body: " + exchange.getIn().getBody());
    }
    

    您现在应该可以看到正文内容,您可以使用调试器打破那里,看看正文是什么类型的类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-08
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多