1
我實現了Message接口以包含一些HeaderValueRouter在服務器端使用的頭文件。MessageHeaders在HttpOutboundGateway處迷路
在一個VM中工作(使用兩個端點之間的過濾器進行測試)。
但是,如果我通過HttpOutboundGatway發送消息,我的字段被剝離(不包括在HttpRequest中)。因此,路由信息在服務器端丟失。
我不應該操縱標題嗎?
public class TaskMessage implements Message<String> {
private MessageHeaders headers;
private String payload;
public TaskMessage(String taskId, String boxId, String payload) {
super();
this.taskId = taskId;
this.boxId = boxId;
this.payload = payload;
StringMessage sm = new StringMessage(payload);
Set<String> keySet = sm.getHeaders().keySet();
HashMap<String, Object> map = new HashMap<String, Object>();
for (String key : keySet) {
map.put(key, sm.getHeaders().get(key));
}
map.put("taskId", taskId);
map.put("boxId", boxId);
headers = new MessageHeaders(map);
}
@Override
public MessageHeaders getHeaders() {
return headers;
}
@Override
public String getPayload() {
return payload;
}
}
編輯:
的版本是1.0.3
我的配置的部分是:
<si:inbound-channel-adapter ref="jdbcInputAdapter" method="fetchData" channel="msgChannel">
<si:poller max-messages-per-poll="1">
<si:interval-trigger interval="5000" />
</si:poller>
</si:inbound-channel-adapter>
<http:outbound-gateway id="httpChannelAdapter" auto-startup="true" request-timeout="1000" request-channel="msgChannel" reply-channel="replyChannel" default-url="http://localhost:8080/taskserver/gateway"/>
@iwein我添加了版本和配置(部分)的問題。我想知道爲什麼標題被從我的消息中刪除。提前致謝。 – stacker 2010-07-17 07:06:26
答案更新後相應 – iwein 2010-07-18 12:45:29
@iwein非常感謝,我將工作負載更改爲o地圖的字符串,字符串現在工作 – stacker 2010-07-18 16:14:44