組み込みブローカー ActiveMq を使用し、JavaScript アプリケーションから接続します。使用されるプロトコルは STOMP over WebSocket です。Spring の XML 構成:
<amq:broker id="broker" useJmx="false" persistent="false" brokerId="1" brokerName="locHost">
<amq:transportConnectors>
<amq:transportConnector name="websocket" uri="ws://0.0.0.0:6661"/>
</amq:transportConnectors>
</amq:broker>
<!-- JMS ConnectionFactory to use, configuring the embedded broker using XML -->
<amq:connectionFactory id="jmsFactory" brokerURL="vm://localhost"/>
<bean id="jmsConnectionFactory"
class="org.springframework.jms.connection.SingleConnectionFactory"
depends-on="broker"
p:targetConnectionFactory-ref="jmsFactory"
/>
<jms:listener-container
container-type="default"
connection-factory="jmsConnectionFactory"
>
. . . . .
<jms:listener destination="toggle" ref="consumer" method="toggle" response-destination="toggle"/>
. . . . .
</jms:listener-container>
この形式のリスナーもいくつかあります(そのうちの1つ):
@Component
public class Consumer {
. . . . .
public String toggle(String message) {
return "Responce" + message;
}
. . . . .
}
一部のリスナーは機能していますが、例外タイプがあるものもあります。
09:33:25,196 WARN [Transport:203] Transport Connection to: StompSocket_1661562307 failed: java.io.IOException: closedOut 1006:null
メッセージが受信者に届いていません。私たちは何ができる?