Чтение темы ActiveMQ с использованием cURL - Получение тел сообщений - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь отладить некоторый код JMS, запустив ActiveMQ локально - используя образ Docker rmohr/activemq:5.15.4-alpine - и используя cURL, чтобы прочитать сообщения, опубликованные в теме.В основном это работает, но я не получаю фактическое тело сообщения.

То, что я делаю, это:

curl -v -XGET http://admin:admin@localhost:8161/api/message?destination=topic://Events&json=true&oneShot=true

И это работает следующим образом:

> GET /api/message?destination=topic://Events&json=true&oneShot=true HTTP/1.1
> Host: localhost:8161
> Authorization: Basic YWRtaW46YWRtaW4=
> User-Agent: curl/7.54.0
> Accept: */*
>

< HTTP/1.1 200 OK
< Date: Tue, 20 Nov 2018 17:09:03 GMT
< X-FRAME-OPTIONS: SAMEORIGIN
< Set-Cookie: JSESSIONID=mcjaka6dsuz6534j0gj0gfnv;Path=/api
< Expires: Thu, 01 Jan 1970 00:00:00 GMT
< Cache-Control: no-cache, no-store, must-revalidate
< Pragma: no-cache
< Content-Type: application/x-www-form-urlencoded; charset=ISO-8859-1
< destination: topic://Events
< id: ID:b8b750274409-46243-1542707161912-1:23:1:1:6
< eventTime$iso8601: 2018-11-20T17:09:13.216Z
< eventTime$millis: 1542733753216
< eventName: ProcessItemEvent
< Transfer-Encoding: chunked
< Server: Jetty(9.2.22.v20170606)
<

Однако фактическая полезная нагрузка сообщения не возвращается.Если я снимаю json=true&oneShot=true, тогда я получаю это:

{ [5 bytes data]

Но все же не более того.И для этих сообщений должно быть намного больше 5 байт данных полезной нагрузки.

Чего мне не хватает для правильной передачи этих сообщений?

Приветствия

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Я попробовал вашу команду.Как вы можете видеть ниже, я am получаю тело сообщения.

Может быть, вы получаете двоичные данные, которые не отображаются в терминале?Можете ли вы попробовать сохранить тело сообщения в файл.например, curl -o body.dat -v -XGET ...

$ curl -v -XGET 'http://admin:admin@localhost:8161/api/message?destination=topic://bayCarrState'
> GET /api/message?destination=topic://bayCarrState HTTP/1.1
> Authorization: Basic YWRtaW46YnJva2VyYWRtaW4=
> User-Agent: curl/7.29.0
> Host: localhost:8161
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Fri, 23 Nov 2018 04:55:59 GMT
< X-FRAME-OPTIONS: SAMEORIGIN
< Set-Cookie: JSESSIONID=sbwv48hmp5w9zw4zgttrbmyn;Path=/api
< Expires: Thu, 01 Jan 1970 00:00:00 GMT
< Cache-Control: no-cache, no-store, must-revalidate
< Pragma: no-cache
< Content-Type: text/plain; charset=ISO-8859-1
< destination: topic://bayCarrState
< id: ID:prd-rh7.mirrabooka.local-40596-1541746708502-3:160:-1:1:105
< Transfer-Encoding: chunked
< Server: Jetty(9.2.22.v20170606)
< 
[{"elemId":"BayCarrState1","elemType":"BayCarrState","elemValue":{"bayId":"1","binFullWt":0,"binTipng":0,"binUntipdWt":0,"continuableRailSam
":0,"delivType":"R","frontPos":14,"lastSamTipng":0,"lastTickTipng":0,"locNum":1,"milltrainId":"A","rearPos":1,"samInProgress":0,"samTipng":0
,"tickTipng":0,"tipInProgress":0,"tipReady":0},"version":294},{"elemId":"BayCarrState2","elemType":"BayCarrState","elemValue":{"bayId":"2","
binFullWt":0,"binTipng":0,"binUntipdWt":0,"continuableRailSam":0,"delivType":"T","frontPos":28,"lastSamTipng":0,"lastTickTipng":0,"locNum":1
,"milltrainId":"A","rearPos":15,"samInProgress":0,"samTipng":0,"tickTipng":0,"tipInProgress":0,"tipReady":0},"version":294}]
* Connection #0 to host localhost left intact
0 голосов
/ 22 ноября 2018

Вы подписываетесь на topic://Events.Может ли быть так, что вся информация о событии находится в заголовке ответа http, и ActiveMQ не добавляет в тело ничего лишнего?

< destination: topic://Events
< id: ID:b8b750274409-46243-1542707161912-1:23:1:1:6
< eventTime$iso8601: 2018-11-20T17:09:13.216Z
< eventTime$millis: 1542733753216
< eventName: ProcessItemEven

Если вы хотите, чтобы сообщения публиковались в определенной теме, скажите «foo.bar 'вы должны подписаться на topic://foo.bar.

...