Http Outbound Gateway从pojo有效负载发送Json请求

时间:2014-03-30 21:56:12

标签: java spring spring-integration

我正在尝试向REST端点发送一个简单的POST请求。我有一个简单的pojo,我想在有效载荷中发送为JSON。这是pojo(请注意我使用Spring与Grails集成,因此pojo / service在Groovy中):

class Person implements Serializable {
    String name
}

这是我的网关:

public interface PersonGateway {
    Person savePerson(Person person)
}

以下是布线的重要部分:

             

<int:channel id="requestChannel" />
<int:channel id="responseChannel" />
<int:header-enricher input-channel="requestChannel">
    <int:header name="Content-Type" value="application/json" />
</int:header-enricher>

<int:gateway id="PersonGateway"
             service-interface="com.example.PersonGateway"
             default-request-channel="requestChannel"
             default-reply-channel="responseChannel">
    <int:method name="savePerson" />
</int:gateway>
<int-http:outbound-gateway url="http://127.0.0.1:8000/person"
                           http-method="POST"
                           message-converters="jsonConverter"
                           expected-response-type="com.example.Person"
                           request-channel="requestChannel"
                           extract-request-payload="false"/>

此POST请求永远不会到达该服务,但不会抛出任何异常。当我记录所有级别时,我得到的唯一一个看起来像线索的是:

  

2014-03-30 16:35:07,313 [主要] DEBUG   outbound.HttpRequestExecutingMessageHandler - 无法尝试   消息有效负载类型的转换。零件   'org.springframework.integration.http.outbound.HttpRequestExecutingMessageHandler#0'   没有明确的ConversionService引用,也没有   上下文中的“integrationConversionService”bean。

除此之外,它并没有给我太多。我一整天都在尝试一些小事情,似乎无处可去。有人看到我错过了吗?谢谢!

1 个答案:

答案 0 :(得分:0)

  1. Unable to attempt conversion of Message payload types. 别担心:它对你没有价值。在大多数情况下,我们可以在没有integrationConversionService的情况下使用我们的应用程序。这里需要表达式。既然你不使用任何表达,那么WARN不会伤害你。

  2. 您说要将POJO作为JSON发送,那么您就不应该使用extract-request-payload="false"false <int-http:outbound-gateway> Message<?>个请求正文放置content-type并将application/x-java-serialized-object更改为jsonConverter

  3. 希望你的{{1}}在POJO周围做正确的事情&lt; - &gt; JSON