Ok I see. What is wrong here in the jms client code? Connection connection = this.connectionFactory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination smtpQueue = session.createQueue(MailServerEmbeddedActiveMQServer.ACTIVE_MQ_SMTP_QUEUE); MessageProducer producer = session.createProducer(smtpQueue); MessageConsumer consumer = session.createConsumer(smtpQueue); connection.start(); TextMessage message = session.createTextMessage("This is an order"); producer.send(message); TextMessage receivedMessage = (TextMessage) consumer.receive(); --> HERE COMES THE EXCEPTION!!!! System.out.println("Got order: " + receivedMessage.getText());
java.lang.ClassCastException: class org.apache.activemq.artemis.jms.client.ActiveMQMessage cannot be cast to class javax.jms.TextMessage (org.apache.activemq.artemis.jms.client.ActiveMQMessage and javax.jms.TextMessage are in unnamed module of loader 'app') at com.tsystems.gematik.kim.mailserver.mq.MailServerActiveMQJmsClient.sendJMSMessageToSmtpQueue(MailServerActiveMQJmsClient.java:47) at com.tsystems.gematik.kim.mailserver.mq.MailServerActiveMQClientTest.sendAndReceiveByteBufMessage(MailServerActiveMQClientTest.java:28) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:89) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:41) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:541) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209) -----Ursprüngliche Nachricht----- Von: Justin Bertram <jbert...@apache.org> Gesendet: Donnerstag, 25. März 2021 15:44 An: users@activemq.apache.org Betreff: Re: EmbeddedJMS Yes. EmbeddedActiveMQ supports JMS. However, it will probably be helpful to read the short chapter on how JMS is mapped to core [1]. The EmbeddedJMS class was removed because it was ultimately redundant. There's really nothing special about JMS support from the broker's point of view. The heaving lifting is done by the JMS & JNDI client implementations. Justin [1] http://activemq.apache.org/components/artemis/documentation/latest/jms-core-mapping.html On Thu, Mar 25, 2021 at 8:50 AM <tobias.w...@t-systems.com> wrote: > Hi Domenico, > > does "EmbeddedActiveMQ" support JMS? > > -----Ursprüngliche Nachricht----- > Von: Domenico Francesco Bruscino <bruscin...@gmail.com> > Gesendet: Donnerstag, 25. März 2021 14:46 > An: users@activemq.apache.org > Betreff: Re: EmbeddedJMS > > Hi Tobias, > > EmbeddedJMS was deprecated in favor of > org.apache.activemq.artemis.core.server.embedded.EmbeddedActiveMQ, > according the java doc[1]. You can find further detail in the ActiveMQ > Artemis documentation[2]. > > [1] > > https://activemq.apache.org/components/artemis/documentation/javadocs/ > javadoc-latest/org/apache/activemq/artemis/jms/server/embedded/Embedde > dJMS.html > [2] > > https://activemq.apache.org/components/artemis/documentation/latest/em > bedding-activemq.html > > Regards, > Domenico > > > On Thu, 25 Mar 2021 at 14:28, <tobias.w...@t-systems.com> wrote: > > > I saw that EmbeddedJMS is deprecated. > > Is there already a successor class which can be used instead of? > > I'm currently using this code to start activemq artemis server and I > > want now to implement/start the jms server too. > > > > public void startServer() throws Exception { > > this.configuration = new ConfigurationImpl(); > > this.configuration.addAcceptorConfiguration("in-vm", > > ACTIVE_MQ_EMBEDDED_SERVER_URL); > > this.configuration.setPersistenceEnabled(true); > > this.configuration.setSecurityEnabled(false); > > this.configuration.addQueueConfiguration(new > > QueueConfiguration(ACTIVE_MQ_SMTP_QUEUE)); > > > > JMSConfiguration jmsConfig = new > > JMSConfigurationImpl(); > > > > TransportConfiguration connectorConfig = new > > TransportConfiguration(InVMAcceptorFactory.class.getName()); > > ConnectionFactoryConfiguration cfConfig = new > > ConnectionFactoryConfigurationImpl(); > > jmsConfig.getConnectionFactoryConfigurations().add(cfConfig); > > > > JMSQueueConfiguration queueConfig = new > > JMSQueueConfigurationImpl(); > > jmsConfig.getQueueConfigurations().add(queueConfig); > > > > this.server = new ActiveMQServerImpl(this.configuration); > > this.server.start(); > > } > > > > public void stopServer() throws Exception { > > if (this.server != null) > > this.server.stop(); > > } > > >