Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从Camel cxfrs中的REST 404响应访问有效负载?_Java_Rest_Apache Camel - Fatal编程技术网

Java 如何从Camel cxfrs中的REST 404响应访问有效负载?

Java 如何从Camel cxfrs中的REST 404响应访问有效负载?,java,rest,apache-camel,Java,Rest,Apache Camel,我有一条骆驼路线,可以访问REST服务。如果REST响应为200 ok,则一切正常。但是,如果响应是404,REST服务将在有效负载中返回一些额外的信息,我无法找到访问这些信息的方法 这是运行调试日志的一部分: [Camel (rraaCamelContext) thread #2 - seda://from_rraa] INFO org.apache.cxf.interceptor.LoggingInInterceptor - Inbound Message -----------------

我有一条骆驼路线,可以访问REST服务。如果REST响应为200 ok,则一切正常。但是,如果响应是404,REST服务将在有效负载中返回一些额外的信息,我无法找到访问这些信息的方法

这是运行调试日志的一部分:

[Camel (rraaCamelContext) thread #2 - seda://from_rraa] INFO org.apache.cxf.interceptor.LoggingInInterceptor - Inbound Message
----------------------------
ID: 2
Response-Code: 404
Encoding: ISO-8859-1
Content-Type: application/json
Headers: {Accept=[application/json], breadcrumbId=[ID-Steves-MacBook-Pro-local-53701-1446241733043-1-7], content-type=[application/json], OriginalHeader=[{name=VerifyEmployeeRequest, version=1, scac=rraa, timeSent=null, uuid=abcd-1234}], pin=[1234], reason=[INIT], Server=[Jetty(9.2.11.v20150529)], transfer-encoding=[chunked], User-Agent=[Apache CXF 3.1.2]}
Payload: { "employeeID": "bad-name", "message": "id not found" }
我的路线设置为:

<route id="rraaIss">
  <from uri="seda:from_rraa"/>
  <process ref="issPreprocessor"/>
  <unmarshal ref="IssRequest"/>
  <process ref="webServiceProcessor"/>
  <to uri="cxfrs:bean:webService"/>
  <onException>
    <exception>javax.ws.rs.NotFoundException</exception>
    <handled><constant>true</constant></handled>
    <to uri="bean:crewServiceNotFoundProcessor"/>
  </onException>
  <process ref="packageWebServiceReplyForIss"/>
  <to uri="seda:to_rraa"/>
</route>

javax.ws.rs.NotFoundException
真的


我的
crewServiceNotFoundProcessor
bean在响应为404时被调用,它可以看到异常,但是我如何从原始HTTP响应中获取有效负载呢?

我现在可以工作了。主要问题是我将REST操作定义为:

@GET
@Path(value="/authentication/{scac}/employees/{id}")
@Produces({ MediaType.APPLICATION_JSON })
public String verifyEmployee(@PathParam("scac") String scac,
                             @PathParam("id") String id,
                             @QueryParam("pin") String pin,
                             @QueryParam("reason") String reason);
当我将返回类型从String更改为Response时,完整的响应现在可用,throweexceptionnfailure=false选项现在也起作用了。所以,这是一个新手的错误