web-dev-qa-db-ja.com

JMSメッセージリスナーの呼び出しに失敗しました。原因:識別子に無効なJMS識別子文字「-」が含まれています:「x-request-id」

JMSとキュー(Azureキュー)を初めて使用しています。私はRubiサーバーがデータを書き込み、Javaがキューからデータを読み取り、さらに実行するキューを作成する必要があります。このプロセスは私のマシンでローカルに正常に動作しています。作成されたRESTエンドポイントはキューにデータを書き込み、データがキューに書き込まれると、リスナーがデータを引き継ぎ、読み取り、実行します。それをAzureにデプロイすると、エラーIキューを開始させていないログで見ることができます

Setup of JMS message listener invoker failed for destination 'queue' - trying to recover. Cause: Identifier contains invalid JMS identifier character '-': 'x-request-id' 

ZipkinはAzureサーバー上にも分散トレースシステムとして存在しており、これはx-request-idが問題を引き起こしているZipkinに関連していると思います。私は問題をGoogleで検索しましたが、なぜそれが起こっているのか理解できませんでした。

詳細なエラーメッセージは次のとおりです。

[36mc.m.s.l.NextGenRequestLoggingFilter     [0;39m [2m:[0;39m 
Before request [uri=/services/deal-service/api/v2/deals/ack;headers= 
[x-request-id:"2d8d86d7-4fbf-9db6-8e95-28813f21a85c", 
x-envoy-internal:"true", x-b3-parentspanid:"a209cdc649b0b890", content- 
length:"575", x-forwarded-proto:"http", postman-token:"ad074595- 
76a5-474b-9711-7e071b12b3b0", x-b3-sampled:"1", x-forwarded- 
for:"10.244.2.1", accept:"*/*", 
authorization: "some-token-YJc4tg--34jPRziJNSACqNQ", x-b3- 
traceid:"6b40ff22781be67ba209cdc649b0b890", x-b3- 
spanid:"702684ddb62cfe6b", 
Host:"portal-gateway.52.228.65.225.nip.io", 
cache-control:"no-cache", accept-encoding:"gzip, deflate, br", 
user-agent:"PostmanRuntime/7.22.0", 
Content-Type:"application/xml;charset=UTF-8"]]
2020-02-18T15:19:34.197666458Z [2m2020-02-18 15:19:34.197[0;39m  . 
[32mDEBUG 
[,6b40ff22781be67ba209cdc649b0b890,702684ddb62cfe6b,true][0;39m  . 
[35m9[0;39m [2m---[0;39m [2m[ XNIO-1 task-15][0;39m
9
Omar Bahir

エラーの詳細(Javaスタックトレース)は、ここで非常に役立ちます。

私が想定するエラーメッセージでは、メッセージプロパティの名前のチェックを実行している qpid JMS client を使用しています。これらの名前には、有効な Java識別子文字 の文字のみを含めることができます。

文字列 'queue-name'には '-'文字がありますが、これはJava識別子ではありません。修正するには、 'queue-name'を有効な文字を含むものに変更する必要があります。たとえば、 'queue_name'(アンダースコア付き)、または 'queueName'(キャメルケース)。

0
AreSo