0

我正在使用 Jersey 在 Mule 3 中创建 REST 服务。使用记录器我可以看到服务器中的响应。但是,我没有看到对服务的 ajax 调用的响应。使用 Firebug 调试时响应为空白。感谢任何帮助

INFO  2013-07-23 12:07:01,123 [[muletraining].connector.http.mule.default.receiver.04] org.mule.api.processor.LoggerMessageProcessor: from REST {"code":"200","message":"Successful","data":"SomeText"}

Mule 配置文件如下所示:

 <flow name="griduploaderFlow1" doc:name="griduploaderFlow1">
    <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="9099" path="grid" doc:name="HTTP"/>
    <logger message="from request #[payload]" level="INFO" doc:name="Logger"/>
    <jersey:resources doc:name="REST">
        <component class="com.mulesoft.training.GridUploaderImpl"/>
    </jersey:resources>
    <custom-transformer class="com.mulesoft.training.JerseyResponseTransformer" doc:name="Java" mimeType="application/json"/>
    <logger message="from REST #[payload]" level="INFO" doc:name="Logger"/>
</flow>
4

1 回答 1

0

如果您甚至没有看到您的第一个记录器输出,那么您不一定对 Jersey 有问题。“来自请求”日志应该出现在 Jersey 开始比赛之前。如果这没有发生,您需要确保您的 MULE 正常运行。注释掉 jersey 元素之前直到结束标记的代码:

<flow name="griduploaderFlow1" doc:name="griduploaderFlow1">
      <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="9099" path="grid" doc:name="HTTP"/>
      <logger message="from request #[payload]" level="INFO" doc:name="Logger"/>
<!--
<jersey:resources doc:name="REST">
    <component class="com.mulesoft.training.GridUploaderImpl"/>
</jersey:resources>
<custom-transformer class="com.mulesoft.training.JerseyResponseTransformer" doc:name="Java" mimeType="application/json"/>
<logger message="from REST #[payload]" level="INFO" doc:name="Logger"/>
-->
</flow>

如果这也没有向您显示任何内容,那是一般的骡子问题,而不是泽西岛。

如果您确实看到了记录器,但没有异常并且仍然​​没有响应,那么我敢打赌在您的 HTTP 组件上设置正确的 Content-Type。比如说,如果它设置为 image/png 并且您从 Jersey 返回 0,您将在浏览器中看不到任何内容。因此,重要的是要告诉浏览器您要返回的内容是什么,以便它解析并正确显示它。

于 2014-05-12T20:24:54.117 回答