2011-03-21 2 views
1

Ruby에서 JMS 메시지를 보내는 방법을 알아 내려고 노력했습니다. Ruby 측에서 Stomp를 사용하여 JMS와 Ruby 사이의 인터페이스를 위해 StompConnect를 설정했습니다.레일이없는 ActiveMessaging - JMS 속성 이름 문제

텔넷을 사용하여 대기열과 통화 할 수 있지만 Ruby가 StompConnect와 제대로 대화하는 데 문제가있었습니다.

이제 ActiveMessaging을 사용하여 통신 부분을 만들려고합니다. 그리고 나 자신의 폴러 스크립트를 작성했습니다. 다음 오류 메시지 큐가 생성 된 후에 발생하고, 메시지가 전송된다

=에 가입/큐 /하여 HelloWorld는 (ApplicationProcessor 처리) 아무도 응답 없음 "> [C4043] 할 : 잘못된 문자 사용 속성 이름에 잘못된 문자가 사용되었습니다. - com.sun.messaging.jmq.jmsclient.MessageImpl.checkValidPropertyName (MessageImpl)에서 최상위 수준의 에있는 잘못된 문자가 사용되었습니다 (속성 이름에서 - ""body = "javax.jms.JMSException" com.sun.messaging.jmq.jmsclient.MessageImpl.checkAndSetProperty (MessageImpl.java 라인 821 , 맨 위 com.sun.messaging.jmq.jmsclient.MessageImpl.setObjectProperty에서 최상위 레벨에있는 라인 757 의 .java (MessageImpl.java 라인 2054 a org.codehaus.stomp.jms.StompSession.copyStandardHeadersFromFrameToMessage (org.codehaus.stomp.jms.StompSession.convertFrame (StompSession.java 라인 257에서 맨 위 레벨의 2335 의 StompSession.java 상단의 최상위 레벨. 맨 위에있는 org.codehaus.stomp.jms.StompSession.sendToJms (org.codehaus.stomp.jms.ProtocolConverter.onStompSend (org.codehaus.stomp.jStartSend)의 최상위 레벨에있는 줄의 StompSession.java (최상위 레벨의 260에서 ProtocolConverter.java의) org.codehaus.stomp.jms.ProtocolConverter.onStompFrame (ProtocolConverter.java 132 행) org.codehaus.stomp.tcp.TcpTransport.run의 최상위 레벨에있는 (Java의 최상위 레벨에있는 라인의 TcpTransport.java .lang.Thread.run (Thread.java at line 680 '>

이제는 내가 설정 한 모든 속성에 '-'이 없습니다. Stomp 라이브러리 자체에 문제가 있습니까? 이것은 Ruby에서 StompConnect와 처음으로 대화하려고했던 것과 거의 같은 문제입니다.

Ruby에서 JMS와 통신하는 방법에 대해 다른 사람들이 어떻게 처리하고 있습니까? 미리 감사드립니다!

답변

1

서버가 속성 이름에 '-'를 허용하지 않는 것 같습니다. apache apollo stomp server을 사용해보세요. 그 제한이 없습니다.

+0

ActiveMQ가 처음부터 JMS를 지원하는 것처럼 보일 것이라고 생각합니다. 저에게 이것을 가르쳐 주셔서 감사합니다! –