Why you don't use the JMS API for this?

or if you really want to use the core API, use the getReadOnlyBuffer()
or getDataBuffer() on the Message instead.

On Mon, Mar 22, 2021 at 12:01 PM Justin Bertram <jbert...@apache.org> wrote:
>
> 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(RemoteTestRunner.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();
> > >        }
> > >
> >



-- 
Clebert Suconic

Reply via email to