XMLを使用して設定されたSpring MVCアプリケーションにSTOMPを使用してWebSocketサポートを追加しようとしています。これまでのところ、これは本当にうまくいっています。私はWebSocketsサーバーのリスニングを手に入れました。そしてstomp.jsはそれに接続してメッセージを送信し、応答を受け取ることができます。Spring WebSockets XML設定でbrokerMessagingTemplateが提供されない
私がまだ取り組まなかったのは、サーバーがクライアントから受信したメッセージに応答しない任意のメッセージをクライアントに送信するサポートです。つまりこれはこれまでのRESTのほんの複雑なバージョンであり、それほど有用ではありません。
マイXMLの設定は次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:websocket="http://www.springframework.org/schema/websocket"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/websocket http://www.springframework.org/schema/websocket/spring-websocket.xsd">
<websocket:message-broker>
<websocket:stomp-endpoint path="/api/websocket/stomp" allowed-origins="*">
</websocket:stomp-endpoint>
<websocket:simple-broker prefix="/topic,/queue" />
<websocket:message-converters>
<bean class="org.springframework.messaging.converter.MappingJackson2MessageConverter">
<property name="objectMapper" ref="objectMapper" />
</bean>
</websocket:message-converters>
</websocket:message-broker>
<bean class="uk.co.grahamcox.webapp.DebugController">
<constructor-arg name="clock" ref="clock" />
<constructor-arg name="template" ref="brokerMessagingTemplate" />
</bean>
</beans>
(DebugControllerはRESTとWSハンドラの両方として正常に動作し、サーバの時刻を返すように、単一のメソッドを持つクラスである)
そして、
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'brokerMessagingTemplate' is defined
イライラする事はのIntelliJ私にとって「brokerMessagingTemplate」の参照を自動的に完了したことである、と私は@Bean definにそれをクリックスルーすることができます:起動時に私が取得しますAbstractMessageBrokerConfigurationの中にあります。
私は、この作業を行うためにXMLの設定をいくつか欠落していると思いますが、ドキュメントではこれが何であるかを知ることはできません。
提案がありますか? は、クライアントから受け取った1への応答ではないことを、クライアントに任意のメッセージを送信するサーバーの
これは主に動作します。型によるコンストラクタ-argは、厄介なことではありません - クラスは有効な属性ではありませんが、クラス内のプロパティをautowiringするとうまくいきました。 – Graham
どのようにしてXMLの設定が決定しますか? REBOOKMessagingTemplateを持つBeanが 'AbstractMessageBrokerConfiguration'で定義された、その型の特定のインスタンスである場合、単に型の名前を指定するのはなぜですか? – jordanpg
私はあなたの質問を理解していません。 javaconfigとxml configの間に矛盾がある場合は、このためのstackoverflowに関する具体的な質問を作成するか、jira.spring.ioに問題を作成してください。 –