我使用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>