Java 是否可以从Spring集成http入站通道适配器返回204?

Java 是否可以从Spring集成http入站通道适配器返回204?,java,http,spring-integration,Java,Http,Spring Integration,我有一个入站通道适配器,它转发给一个返回null的bean方法,但是由于http必须返回响应,所以返回了一个200。在某些情况下,我想指定返回值是多少,例如a 204,我尝试了很多方法,但似乎没有任何效果 我正在使用SpringIntegration3.0.2 谢谢, Justin是,将回复消息中的http\u statusCode头设置为204 编辑:(见下面的评论) 假设主流不返回结果 如果要等待流完成,请删除任务执行器 您可能还需要一个转换器,将有效负载转换为”,即使使用入站通道适配器

我有一个入站通道适配器,它转发给一个返回null的bean方法,但是由于http必须返回响应,所以返回了一个200。在某些情况下,我想指定返回值是多少,例如a 204,我尝试了很多方法,但似乎没有任何效果

我正在使用SpringIntegration3.0.2

谢谢,
Justin

是,将回复消息中的
http\u statusCode
头设置为204

编辑:(见下面的评论)


假设主流不返回结果

如果要等待流完成,请删除任务执行器


您可能还需要一个转换器,将有效负载转换为

,即使使用入站通道适配器也可以吗?通道适配器本身不会生成应答——http适配器只会生成应答,因为协议需要它。那我该怎么做呢?我见过其他人引用头enricher,但同样,由于入站通道适配器的性质,这似乎不可能。对不起,误读了您的问题,您必须使用网关返回自定义响应。如果要立即发送,而不是等待下游进程完成,请使用带有task executor的发布子通道-主流将异步运行,发布子通道的第二个订阅服务器可以是一个简单的标头enricher。我会编辑我的答案和细节。明白了。谢谢你的回复!为了便于交谈,这与我刚刚编写控制器并使用MessagingGateway时的配置/代码行数量差不多。您认为在这种情况下,XML与Java相比有什么优势吗?如果能够将响应代码指定为入站通道适配器的属性,而不是上面的配置,这将是一个很好的特性。对于不介意编写一点Java的人来说,控制器路由可能更简单。也就是说,在入站适配器上有一个
状态代码表达式
,这不是一个坏主意;请随便开一家店。
<int-http:inbound-gateway request-channel="receiveChannel"
                      path="/receiveGateway"
                      supported-methods="POST"/>

<int:publish-subscribe-channel id="receiveChannel" task-executor="exec" />

<int:service-activator input-channel="receiveChannel" expression="payload + ' from the other side'" output-channel="next"/>

<int:chain input-channel="receiveChannel">  
    <int:header-enricher>
            <int:header name="http_statusCode" value="204"/>
    </int:header-enricher>
    <int:transformer expression="''"/>
</int:chain>