홈>
일부 MQ 큐 연결을 작성 중입니다.
queueReceiver.Receivenowait()
에서 JMS 텍스트 메시지로 메시지 큐를 캐스트해야합니다.
.
queueReceiver.Receivenowait()
때문에
형식은 바이트입니다. 메시지를 배열 목록으로 나누려면 Textmessage로 변환해야합니다.
이미 사용하고 있습니다 :
queueReceiver = queueSession.createReceiver(ringQueue);
바이트 메시지를 받으려면 JMS 문자 메시지로 변환해야합니다 :
List<String> outputList = new ArrayList<String>();
while (loop) {
TextMessage msgResponse = (TextMessage) bytesMessage;
if (msgResponse.getText() == null) {
loop = false;
} else {
message = msgResponse.getText();
outputList.add(message);
msgResponse.acknowledge();
}
}
이 오류 코드가 있습니다 :
java.lang.ClassCastException: com.ibm.jms.JMSBytesMessage cannot be cast to javax.jms.TextMessage
- 답변 # 1
- 답변 # 2
BytesMessage의 API 문서를 보면 가능한 방법이있을 수 있습니다. 그저 단순히 메시지에서 바이트를 읽고
new String(bytes, charset)
를 사용하여 옵션입니다.일반적으로 수신 메시지를 확인하여 유형이 예상과 일치하는지 확인하는 것이 좋습니다.
if (message instanceof TextMessage) ...
네거티브 케이스를 적절하게 처리 할 수있는 방법입니다.
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- JavaScript 변수를 HTML div에 '출력'하는 방법
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- python - 화면에서 찾은 요소를 찾을 수없는 경우 셀레늄
제 생각 엔 당신이 정말로
물론,BytesMessage
를 변환하고 싶지 않다는 것입니다TextMessage
에BytesMessage
에서 바이트 배열을 변환하려고합니다.String
에 . 이것이 사실이라면 다음과 같은 코드를 사용할 수 있습니다 :bytesMessage
루프를 통해 매번 다른 메시지가되어야합니다.