Apache camel - CXFRS:处理输入格式异常

时间:2016-03-16 09:48:22

标签: java web-services exception-handling apache-camel cxfrs

我使用Apache Camel CXFRS创建了一个休息Web服务,我想控制输入格式。

这是blueprint.xml:

<cxf:rsServer id="rsServer" address="http://URL/" serviceClass="ngt.sas2sendsms.Getparams"/>

<camelContext xmlns="http://camel.apache.org/schema/blueprint">
    <route id="GET_DLR">
        <from uri="cxfrs://bean://rsServer"/>
         <setBody>
                <simple>${body[0]} ${body[2]} ${body[1]}</simple>
        </setBody>
    </route>
</camelContext>

这是Getparams.class

public class Getparams  {
    @GET
    @Path("rxstatus")
    @Produces("text/plain")
    public String getAssets (@QueryParam("msgid") String msgid,  
                            @QueryParam("ts") int ts,
                            @QueryParam("status") int status
                            ) 
    {
     return null;
    }
}

当我在浏览器中通过此网址运行此路线时:http://url/rxstatus?msgid=3&status=test&ts=44443

我收到此消息错误:

java.lang.NumberFormatException: For input string: "test"

在状态参数中它是正常的因为我设置了一个字符串而不是一个整数。所以我试着处理这个例外。

我试过这个:

 public class Getparams implements ExceptionMapper<NumberFormatException> {
            @GET
            @Path("rxstatus")
            @Produces("text/plain")
            public String getAssets(@QueryParam("msgid") String msgid,  
                                    @QueryParam("ts") int ts,
                                    @QueryParam("status") int status
                                    )
                    {
                     return null;
            }
  @Override 
  public Response toResponse(NumberFormatException arg0)
  {         
    return Response.serverError().build();
  }
}

但我仍然得到:java.lang.NumberFormatException For input string: "test" 我怎么处理它?<​​/ p>

0 个答案:

没有答案