The stack trace is correct -----Ursprüngliche Nachricht----- Von: Justin Bertram <jbert...@apache.org> Gesendet: Montag, 22. März 2021 17:01 An: users@activemq.apache.org Betreff: Re: send message
The stack-trace indicates you're invoking the "readString" method on line 93 of MailServerActiveMQClient.java, but I don't see that call in the code you pasted. Therefore, that stack-trace doesn't seem correct. Can you clarify this? Justin On Mon, Mar 22, 2021 at 10:55 AM Dondorp, Erwin <erwin.dond...@cgi.com> wrote: > Fyi: > 1953068645(decimal) = 74697665(hexadecimal) = "tive"(ascii text) And > "tive" is likely part of the string "ActiveMQ"? > e. > > -----Oorspronkelijk bericht----- > Van: tobias.w...@t-systems.com <tobias.w...@t-systems.com> > Verzonden: maandag 22 maart 2021 16:41 > Aan: users@activemq.apache.org > Onderwerp: AW: send message > > > EXTERNAL SENDER: Do not click any links or open any attachments unless > you trust the sender and know the content is safe. > EXPÉDITEUR EXTERNE: Ne cliquez sur aucun lien et n’ouvrez aucune pièce > jointe à moins qu’ils ne proviennent d’un expéditeur fiable, ou que > vous ayez l'assurance que le contenu provient d'une source sûre. > > While sending / receiving a text message I get this > > java.lang.IndexOutOfBoundsException: Error reading in simpleString, > length=1953068645 is greater than readableBytes=3 > at > org.apache.activemq.artemis.api.core.SimpleString.readSimpleString(SimpleString.java:185) > at > org.apache.activemq.artemis.api.core.SimpleString.readSimpleString(SimpleString.java:173) > at > org.apache.activemq.artemis.core.buffers.impl.ChannelBufferWrapper.readStringInternal(ChannelBufferWrapper.java:113) > at > org.apache.activemq.artemis.core.buffers.impl.ChannelBufferWrapper.readString(ChannelBufferWrapper.java:98) > at com.tsystems.gematik.kim.mailserver.mq > .MailServerActiveMQClient.receiveTextMessageFromSmtpQueue(MailServerActiveMQClient.java:93) > at com.tsystems.gematik.kim.mailserver.mq > .MailServerActiveMQClientTest.sendAndReceive(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(RemoteTest > Runner.java:209) > > > -----Ursprüngliche Nachricht----- > Von: Justin Bertram <jbert...@apache.org> > Gesendet: Montag, 22. März 2021 16:34 > An: users@activemq.apache.org > Betreff: Re: send message > > What actually fails? Do you have a stack-trace? > > > Justin > > On Mon, Mar 22, 2021 at 9:53 AM <tobias.w...@t-systems.com> wrote: > > > I try to send and receive a netty ByteBuf message, but it fails. > > What I'm doing wrong here? I even don't know ist he mistake in > > sending or receiving! > > I was thinking to use the jms layer, but I'm receiving the data > > buffer throught a netty buffer and I want to avoid to convert the > > buffer to a byte array! > > > > public void sendMessageToSmtpQueue(ByteBuf buf) throws > > ActiveMQException { > > ClientSession session = this.sessionFactory.createSession(); > > try { > > session.start(); > > ClientMessage message = session.createMessage(true); > > message.getBodyBuffer().writeBytes(buf, 0, > > buf.readableBytes()); > > ClientProducer producer = > > session.createProducer(ACTIVE_MQ_SMTP_QUEUE); > > producer.send(message); > > } finally { > > session.close(); > > } > > } > > > > public ActiveMQBuffer receiveMessageFromSmtpQueue() throws > > ActiveMQException { > > ActiveMQBuffer result; > > ClientSession session = this.sessionFactory.createSession(); > > try { > > session.start(); > > ClientConsumer consumer = > > session.createConsumer(ACTIVE_MQ_SMTP_QUEUE); > > ClientMessage message = consumer.receive(); > > result = > > ActiveMQBuffers.fixedBuffer(message.getBodyBufferSize()); > > message.getBodyBuffer().readBytes(result); > > } finally { > > session.close(); > > } > > > > return result; > > } > > > > > > 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)); > > > > this.server = new ActiveMQServerImpl(this.configuration); > > this.server.start(); > > } > > >