嗨,这是我的弹簧集成配置..当我使用mozilla fire fox rest console两次调用我的服务时。例如,如果我在service-activator(CA请求激活器)中点击某些服务,则可以预测它被调用两次。我不知道它是mozilla问题还是配置问题。我尝试使用新窗口但这个问题仍然存在。在第一种情况下,我的服务激活器正确地返回xml响应但是立即再次调用它。仅在罕见情况下它的召唤两次。
<int:channel id="accountRequest" />
<int:channel id="accountResponse" />
<int:channel id="catRequestChannel" />
<int:channel id="mataccountRequest" />
<int:channel id="errorChannel"/>
<int-http:inbound-gateway id="cwebAccountManagementGateway"
supported-methods="GET, POST"
request-channel="accountRequest"
reply-channel="accountResponse"
mapped-request-headers="*"
mapped-response-headers="*"
view-name="/policies"
path="/services/{class}/{method}"
reply-timeout="50000"
error-channel="errorChannel">
<int-http:header name="serviceClass" expression="#pathVariables.class"/>
<int-http:header name="serviceMethod" expression="#pathVariables.method"/>
</int-http:inbound-gateway>
<int:header-value-router input-channel="accountRequest"
header-name="state"
default-output-channel="accountRequest" resolution-required="false">
<int:mapping value="MA"
channel="mataccountRequest" />
<int:mapping value="CA"
channel="catRequestChannel" />
</int:header-value-router>
<int:service-activator id="accountServiceActivator"
input-channel="mataccountRequest"
output-channel="accountResponse"
ref="serviceGatewayAdapter"
method="requestHandler"
send-timeout="60000"/>
<int:service-activator id="caRequestActivator"
input-channel="catRequestChannel"
output-channel="accountResponse"
ref="caServiceGatewayAdapter"
method="requestHandler"
send-timeout="60000"/>
<int:service-activator id="errorRequestActivator"
input-channel="errorChannel"
output-channel="accountResponse"
ref="errorGatewayAdapter"
method="errorHandler"
send-timeout="60000"/>
例如:这是我的网址
http://localhost:9085/springintegrationsample/create?mail=15999999@mail.com&idNumber=80010600010
如果我将邮件编辑为其他一些值,它将被调用两次 如果我改变agan它工作正常。我不明白它被调用两次的情况
答案 0 :(得分:0)
您正在使用相同的&#34; requestHandler&#34;对于你的两个服务激活器,所以很明显它会被调用两次。 您无法知道为调试器方法调用哪个激活器,因为在调试时您只能检查被调用的处理程序方法。 为了更好地处理这个问题,请为每个服务激活器使用不同的处理程序方法。即使他们使用类似的操作,它也会更清晰,更容易调试。
我建议添加频道拦截器来记录传入和传出的消息,以便更好地了解。
欢呼声