Мне нужна помощь в моем приложении OEP. Я пытаюсь преобразовать входящее сообщение jms, используя мой собственный компонент-конвертер. Но при развертывании я получаю следующее исключение.IllegalArgumentException конвертер-компонент MessageConverter не реализует InboundMessageConverter
Исключение в потоке "SpringOsgiExtenderThread-171" org.springframework.beans.FatalBeanException: Ошибка в контекст инициализации жизненного цикла; вложенное исключение java.lang.IllegalArgumentException: конвертер боб MessageConverter не реализует InboundMessageConverter на com.bea.wlevs.spring.ApplicationContextLifecycle.onApplicationEvent (ApplicationContextLifecycle.java:146) на org.springframework.context.event. SimpleApplicationEventMulticaster.multicastEvent (SimpleApplicationEventMulticaster.java:97) на org.springframework.context.support.AbstractApplicationContext.publishEvent (AbstractApplicationContext.java:324) на org.springframework.context.support.AbstractApplicationContext.finishRefresh (AbstractApplicationContext.java: 929) по адресу: org.springframework.osgi.context.suppor t.AbstractOsgiBundleApplicationContext.finishRefresh (AbstractOsgiBundleApplicationContext.java:235) в org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext $ 4.run (AbstractDelegatedExecutionApplicationContext.java:358) в org.springframework.osgi.util.internal.PrivilegedUtils .executeWithCustomTCCL (PrivilegedUtils.java:85) на org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh (AbstractDelegatedExecutionApplicationContext.java:320) на org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor $ CompleteRefreshTask.run (DependencyWaiterApplicationContextExecutor.java:136) at ja va.lang.Thread.run (Thread.java:745) Вызвано: java.lang.IllegalArgumentException: конвертер-компонент MessageConverter не реализует InboundMessageConverter на com.bea.wlevs.adapters.jms.InboundJmsAdapter.initialize (InboundJmsAdapter .java: 122) на com.bea.wlevs.adapters.jms.InboundJmsAdapter.beforeResume (InboundJmsAdapter.java:228) в com.bea.wlevs.adapters.jms.InboundJmsAdapter $$ FastClassByCGLIB $$ fc18e7ee.invoke() в net.sf.cglib.proxy.MethodProxy.invoke (MethodProxy.java:149) в org.springframework.aop.framework.Cglib2AopProxy $ CglibMethodInvocation.invokeJoinpoint (Cglib2AopProxy.java:689) в org.springframework .aop.framework.Reflective MethodInvocation.proceed (ReflectiveMethodInvocation.java:150) на com.bea.wlevs.ede.impl.EventManagerAccessorProxy.invoke (EventManagerAccessorProxy.java:30) на org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation. Java: 172) на com.bea.wlevs.ede.impl.EventBeanProxy.invoke (EventBeanProxy.java:38) на org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:172) на org.springframework.aop.framework.Cglib2AopProxy $ DynamicAdvisedInterceptor.intercept (Cglib2AopProxy.java:622) at com.bea.wlevs.adapters.jms.InboundJmsAdapter $$ En hancerByCGLIB $$ fbc02af8.beforeResume() at com.bea.wlevs.spring.ActivationBeanPostProcessor.preProcessBeforeContextResume (ActivationBeanPostProcessor.Java: 27) в com.bea.wlevs.spring.DeferredBeanPostProcessor.beforeResume (DeferredBeanPostProcessor.java:33) в com.bea.wlevs.spring.ApplicationContextLifecycle.onApplicationEvent (ApplicationContextLifecycle.java:120) ... 9 более
Мой класс выглядит следующим образом ...
import com.bea.wlevs.adapters.jms.api.InboundMessageConverter; import com.bea.wlevs.adapters.jms.api.MessageConverterException; import com.bea.wlevs.adapters.jms.api.OutboundMessageConverter; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.Session; import javax.jms.TextMessage; import java.util.ArrayList; import java.util.List;
public class MessageConverter implements InboundMessageConverter, OutboundMessageConverter{
public List<TestEvent> convert(Message message) throws MessageConverterException, JMSException {
TestEvent event = new TestEvent();
TextMessage textMessage = (TextMessage) message;
event.setString_1(textMessage.getText());
List<TestEvent> events = new ArrayList<TestEvent>(1);
events.add(event);
return events;
}
public List<Message> convert(Session session, Object inputEvent) throws MessageConverterException, JMSException {
TestEvent event = (TestEvent) inputEvent;
TextMessage message = session.createTextMessage("Text message: " + event.getString_1());
List<Message> messages = new ArrayList<Message>();
messages.add(message);
return messages;
} }