我正在尝试向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。
除此之外,它并没有给我太多。我一整天都在尝试一些小事情,似乎无处可去。有人看到我错过了吗?谢谢!
答案 0 :(得分:0)
Unable to attempt conversion of Message payload types.
别担心:它对你没有价值。在大多数情况下,我们可以在没有integrationConversionService
的情况下使用我们的应用程序。这里需要表达式。既然你不使用任何表达,那么WARN不会伤害你。
您说要将POJO作为JSON发送,那么您就不应该使用extract-request-payload="false"
。 false
<int-http:outbound-gateway>
Message<?>
个请求正文放置content-type
并将application/x-java-serialized-object
更改为jsonConverter
希望你的{{1}}在POJO周围做正确的事情&lt; - &gt; JSON