我正在尝试将字符串消息发送到在weblogic服务器中创建的JMS队列中。我正在使用Eclipseide,当我运行我的Web应用程序时,出现以下错误并且tomcat服务器关闭。错误是javax.naming.CommunicationException[Rootexceptionisjava.rmi.UnmarshalException:failedtounmarshalclassweblogic.security.acl.internal.AuthenticatedUser;nestedexceptionis:java.io.StreamCorruptedException:inva
我的场景是——我将消息发布到队列中,一旦消息被使用,我就会将它发送到第三方中间件应用程序。如果该中间件应用程序已关闭,那么我发布的消息就没有用了。如果中间件应用程序关闭,我不想丢失该消息,而是希望它暂停或在队列中等待。请建议如何处理这种情况? 最佳答案 你应该像这样创建session:Sessionsession=connection.createSession(false,Session.CLIENT_ACKNOWLEDGE);当您尝试将消息传递给您的第三方应用时:如果有效,您应该确认消息。如果它已关闭,您不应该确认它,这样J
这里有谁知道是否存在可以在Tomcat上或没有应用程序服务器的情况下执行的JMS服务器? 最佳答案 是的,几个。HornetQ(推荐)ActiveMQ(我不推荐,但很受欢迎)和其他几个,但那些都是大的。 关于java-是否可以在没有应用程序服务器的情况下使用JMS服务器?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1803019/
我在远程glassfish服务器上配置了一个JMS队列。我正在尝试从我的本地机器连接这个队列。是否可以直接连接到此服务器,或者我需要通过某些代理/代理连接?它是如何工作的?(我是jms区的新人)非常感谢 最佳答案 如果您的客户端应用程序在Glassfish外部运行,这里有一个开放式mq客户端的简单代码示例。要使其正常工作,您需要从glassfishInstall/mq/lib目录中引用2个openmqjar-imq.jar和jms.jarimportcom.sun.messaging.ConnectionConfiguration;
我目前正在学习JavaEE(从SE迁移),我对JavaEE环境中的异步执行感到困惑。基本上,根据我的理解,创建Thread或Timer并不完全推荐。目前我发现的另一种方法是使用JMS将消息传输到EJB消息Bean,它将异步执行。还有哪些其他方法可以实现这种行为?因为对于简单的任务,使用JMS看起来开销太大。 最佳答案 JavaEE6中最简单的可能解决方案是使用@AsynchronousEJB方法(或整个类)上的注释。它允许您异步调用业务方法,这意味着将委托(delegate)一个新线程来执行此方法,您将在调用方方法中取回控制权。在J
目前我正在使用RMI或hessianlibrary在我的服务器和客户端之间进行通信(通过LinkedBlockingQueue)。现在我读到了JMS这也可以用在这个领域。这个对吗?如果是,您介意给我一个简单的优点/缺点列表,因为它似乎是一个相当复杂且“成熟的企业”领域。有什么好处?与RMI+Queue相比性能如何?JMS能打败RMI+Queue吗?PS:我知道有similarquestions,但我希望JMS与RMI+Queue相比。 最佳答案 一个简化的比较是(不是特定于JMS,更像是与一般MQ的比较)...自动重试如果您是对服务
我发现了一些有趣的行为......我无法确定这是错误还是无能,但目前倾向于无能。这段代码不会进入循环,即使有消息在等待:Messagemsg;while((msg=consumer.receiveNoWait())!=null){System.out.println(msg);}这段代码确实进入了循环,注意空赋值:Messagemsg=null;while((msg=consumer.receiveNoWait())!=null){System.out.println(msg);}此代码在Windows32位的Glassfish3.1.1b10HotSpot1.6_26上运行。我想不出
我正在研究SpringBoot和JMS示例,是的,我对此很陌生由于我们使用Oracle,我想将SpringBoot和JMS示例从ActiveMQ迁移到OracleAdvancedQueueing。但是,我真的找不到这方面的信息。据我所知,我需要为Oracle版本替换下面的代码,但我没有找到如何替换的方法。@BeanpublicJmsListenerContainerFactorymyFactory(ConnectionFactoryconnectionFactory,DefaultJmsListenerContainerFactoryConfigurerconfigurer){Defa
我想查看已在ActiveMQ队列中排队的消息内容。我打开了web-console.(http://localhost:8161/admin/queues.jsp)并点击了队列消息的message-id。它在“消息详细信息”窗口中给我以下错误,而不是提供消息内容。"javax.jms.JMSException:Failedtobuildbodyfromcontent.Serializableclassnotavailabletobroker.Reason:java.lang.ClassNotFoundException:"此异常的原因是什么?我需要做什么来摆脱它?
我对JMS连接池和JMSsession池感到困惑。我有一个Java应用程序,它有大约20个线程处理从供应商产品接收到的消息。在推送到JMS主题(所有20个线程的主题相同)之前,每个线程都会对消息进行一些处理。我想确保没有线程在等待空闲的JMS连接,因为性能至关重要。但是,当我查看JMS连接工厂时,我看不到任何为我的JMS连接配置池大小的方法。现在我真的很困惑。我应该汇集JMSsession吗?对此非常感谢的任何帮助谢谢乔 最佳答案 来自theJ2EE6api一个javax.jms.Connectiontypicallyreprese