2016-11-21 1 views
1

나는 blueprint.xml을 가지고 있는데, 나는 activex에 pojo를 넣으려고한다. 난 단지 POJO 형식의 다른 경로에서이를 사용하려면 ...하지만 난 대기열에 POJO를 밀어있을 때, 퓨즈는 경고는 말한다 :pojo를 activemq로 푸시하고 그로부터 검색하는 방법은 무엇입니까?

Cannot determine specific JmsMessage type to use from body class. Will use generic JmsMessage. Body class: com.sia.csl.payment.mpgs.model.vo.CaptureQueueMessageBean. If you want to send a POJO then your class might need to implement java.io.Serializable, or you can force a specific type by setting the jmsMessageType option on the JMS endpoint. 

내 POJO는 java.io.Serializable 구현하고, 퓨즈가 여전히 이 경고를 표시합니다. 어떻게하면 pojo를 큐에 넣고 그 큐에서 가져올 수 있습니까? 여기

<route id="sampleroute"> 
    <form uri="activemq:queue:request" /> 
    <log message="${body.num}"/> 
</route> 

가 여기에 내가 빈 필드 num에 액세스하려면 내 두 blueprint.xml

청사진 1, 경로

<from uri="direct-vm:csl-mpgs-payment-1.0-cap"/> 
<bean ref="BusinessImpl" method="assembleBeandemo"></bean> 
<to uri="activemq:queue:request" /> 

청사진 2, 경로입니다. 나는 그것을 할 수 없다.

+0

모두 클라이언트에서 당신은 당신이 강하게 자바와 연결되어 메시징으로 POJO를 사용하는 –

+0

그것의 아주 나쁜를 사용하는 경로 개체를 공유하기를/서버 측. –

+0

나는 사람들이 확인할 수있는 경로를 추가했다. –

답변

0

참고 : Java 객체 사용에 대한 Claus의 두 번째 메모는 일반적으로 아키텍처, 실용적 및 장기적인 지원의 여러 이유로 잘못된 디자인 선택입니다. 여기

는 엔드 포인트 구성하는 방법입니다 :

uri="activemq:queue:request?jmsMessageType=Object" 

Camel JMS Reference

+0

'uri = "activemq : queue : request? jmsMessageType = Object"'그러나 java.io.NotSerializableException'을 얻고있다. –

+0

@ SAJINA.JJOHNYA.G, 그럼 당신은 POJO [serializable] (http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html). – Ralf

+0

나는 나의 pojo를 직렬화 가능하게 만들었지 만,'JMS message listener의 실행에 실패했습니다. 원인 : [org.apache.camel.RuntimeCamelException - 다음으로 인해 본문을 추출하지 못했습니다 : javax.jms.JMSException : 내용에서 본문을 작성하지 못했습니다. 브로커는 Serializable 클래스를 사용할 수 없습니다. 이유 : java.lang.ClassNotFoundException : 금지 된 클래스 com.sia.csl.payment.mpgs.model.vo.CaptureQueueMessageBean! 이 클래스는 직렬화 할 수 없습니다. 'org.apache.activemq.SERIALIZABLE_PACKAGES'시스템 속성이있는 패키지를 추가하십시오. –

관련 문제