Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 4.219 sec <<< FAILURE!
shouldBeAbleToSendMessage(se.extenda.core.messaging.channel.jms.test.InjectionTestCase) Time elapsed: 0.094 sec <<< ERROR!
java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.jms.QueueSession.createSender(Ljavax/jms/Queue;)Ljavax/jms/QueueSender;" the class loader (instance of org/jboss/classloader/spi/base/BaseClassLoader) of the current class, se/extenda/core/messaging/channel/jms/test/InjectionTestCase, and the class loader (instance of org/jboss/classloader/spi/base/BaseClassLoader) for resolved class, javax/jms/QueueSession, have different Class objects for the type javax/jms/QueueSender used in the signature
at se.extenda.core.messaging.channel.jms.test.InjectionTestCase.shouldBeAbleToSendMessage(InjectionTestCase.java:45)
@RunWith(Arquillian.class)
public class InjectionTestCase {
@Deployment
public static JavaArchive createTestArchive() {
return ShrinkWrap.create(JavaArchive.class, "test.jar")
.addClasses(QueueSender.class, JMSReceiver.class);
}
@Resource(mappedName = "/queue/DLQ")
private Queue dlq;
@Resource(mappedName = "/ConnectionFactory")
private ConnectionFactory factory;
@Test
public void shouldBeAbleToSendMessage() throws Exception {
Connection connection = factory.createConnection();
QueueSession session = (QueueSession) connection.createSession(false,
Session.DUPS_OK_ACKNOWLEDGE);
QueueSender sender = session.createSender(dlq);
BytesMessage msg = session.createBytesMessage();
msg.writeUTF("Hejsan");
sender.send(msg);
}
}