使用带有xml-dsl restlet组件

时间:2015-08-06 18:13:36

标签: apache-camel dsl restlet

我是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>

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

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

另外,我在stacktrace中看到BodyType和Body都为null。

有人可以为此提供帮助吗。

1 个答案:

答案 0 :(得分:0)

我认为问题在于你的方法。看起来骆驼无法将交换和/或身体转换为您指定的参数。 你可以试试这个:

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

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