- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在努力解决这个问题,现在需要一个不同的视角。我正在使用 spring 并合并了这个 spring boot 启动包,这样我就可以利用 AMQP 协议(protocol):amqp-10-jms-spring-boot-starter 我已经成功配置并且目前有在职的。当我将其部署到 Jboss eap7 容器“THIS A REQ”时,问题就出现了。所以当我第一次部署这个应用程序时,一切都很好。当我在没有先关闭容器的情况下重新部署同一个应用程序时,问题就出现了(因为我不应该这样做)。到目前为止,这是我想到和尝试过的:
Jboss 部署结构
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<exclude-subsystems>
<subsystem name="jaxrs" />
<subsystem name="messaging-activemq" />
</exclude-subsystems>
<exclusions>
<module name="org.hibernate" slot="main" />
<module name="org.apache.activemq.artemis" slot="main" />
<module name="org.apache.activemq.artemis.ra" slot="main" />
</exclusions>
</deployment>
</jboss-deployment-structure>
请记住,我这里还有其他代码,包括 JSR 包、Hibernate、spring-web 等依赖项。为了完整起见,我留下了这些。
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Spring Data/DB -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
<dependency> <!-- works with spring 4.3.10-->
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.11.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-java8</artifactId>
<exclusions>
<exclusion>
<artifactId>hibernate-core</artifactId>
<groupId>org.hibernate</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<exclusions>
<exclusion>
<artifactId>hibernate-core</artifactId>
<groupId>org.hibernate</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!-- Spring JMS-->
<dependency>
<groupId>org.amqphub.spring</groupId>
<artifactId>amqp-10-jms-spring-boot-starter</artifactId>
<version>0.4.0</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
</dependency>
最后是我的堆栈跟踪
22:44:08,293 ERROR [org.apache.qpid.jms.provider.ProviderFactory] (ServiceEvent-144) Failed to create Provider instance for amqp, due to: java.io.IOException: Provider scheme NOT recognized: [amqp]
22:44:08,293 ERROR [org.apache.qpid.jms.JmsConnectionFactory] (ServiceEvent-144) Failed to create JMS Provider instance for: amqp
22:44:08,293 ERROR [stderr] (ServiceEvent-144) Exception in thread "ServiceEvent-144" org.springframework.jms.UncategorizedJmsException: Uncategorized exception occurred during JMS processing; nested exception is javax.jms.JMSException: Provider scheme NOT recognized: [amqp]
22:44:08,293 ERROR [stderr] (ServiceEvent-144) at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:316)
22:44:08,293 ERROR [stderr] (ServiceEvent-144) at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:169)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:487)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:570)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at org.springframework.jms.core.JmsTemplate.convertAndSend(JmsTemplate.java:658)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at my.test.Producertest.send(Producertest:62)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at sun.reflect.GeneratedMethodAccessor92.invoke(Unknown Source)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at java.lang.reflect.Method.invoke(Method.java:498)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at org.springframework.context.event.ApplicationListenerMethodAdapter.doInvoke(ApplicationListenerMethodAdapter.java:256)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at org.springframework.context.event.ApplicationListenerMethodAdapter.processEvent(ApplicationListenerMethodAdapter.java:177)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at org.springframework.context.event.ApplicationListenerMethodAdapter.onApplicationEvent(ApplicationListenerMethodAdapter.java:140)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:134)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at java.lang.Thread.run(Thread.java:745)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) Caused by: javax.jms.JMSException: Provider scheme NOT recognized: [amqp]
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at org.apache.qpid.jms.exceptions.JmsExceptionSupport.create(JmsExceptionSupport.java:86)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at org.apache.qpid.jms.exceptions.JmsExceptionSupport.create(JmsExceptionSupport.java:108)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at org.apache.qpid.jms.JmsConnectionFactory.createConnection(JmsConnectionFactory.java:211)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at org.apache.qpid.jms.JmsConnectionFactory.createConnection(JmsConnectionFactory.java:191)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at org.springframework.jms.support.JmsAccessor.createConnection(JmsAccessor.java:180)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:474)
22:44:08,294 ERROR [stderr] (ServiceEvent-144) ... 21 more
22:44:08,294 ERROR [stderr] (ServiceEvent-144) Caused by: java.io.IOException: Provider scheme NOT recognized: [amqp]
22:44:08,295 ERROR [stderr] (ServiceEvent-144) at org.apache.qpid.jms.provider.ProviderFactory.findProviderFactory(ProviderFactory.java:124)
22:44:08,295 ERROR [stderr] (ServiceEvent-144) at org.apache.qpid.jms.provider.ProviderFactory.findProviderFactory(ProviderFactory.java:99)
22:44:08,295 ERROR [stderr] (ServiceEvent-144) at org.apache.qpid.jms.provider.ProviderFactory.create(ProviderFactory.java:70)
22:44:08,295 ERROR [stderr] (ServiceEvent-144) at org.apache.qpid.jms.JmsConnectionFactory.createProvider(JmsConnectionFactory.java:329)
22:44:08,295 ERROR [stderr] (ServiceEvent-144) at org.apache.qpid.jms.JmsConnectionFactory.createConnection(JmsConnectionFactory.java:200)
22:44:08,295 ERROR [stderr] (ServiceEvent-144) ... 24 more
22:44:08,295 ERROR [stderr] (ServiceEvent-144) Caused by: java.lang.ClassCastException: Cannot cast org.apache.qpid.jms.provider.amqp.AmqpProviderFactory to org.apache.qpid.jms.provider.ProviderFactory
22:44:08,295 ERROR [stderr] (ServiceEvent-144) at org.apache.qpid.jms.util.FactoryFinder.newInstance(FactoryFinder.java:129)
22:44:08,295 ERROR [stderr] (ServiceEvent-144) at org.apache.qpid.jms.provider.ProviderFactory.findProviderFactory(ProviderFactory.java:122)
22:44:08,295 ERROR [stderr] (ServiceEvent-144) ... 28 more
没有什么能帮助我在这里捕获救命稻草。所以任何方向都是有帮助的。我可以只使用 JMS API,我稍后会尝试。但我希望弄清楚这一点。提前致谢。
更新
我将我所有的代码都从方程式中取出并创建了一个简单的服务。 amqp-10-jms-spring-boot-starter 不是罪魁祸首。我怀疑我的 Spring 事件监听器或我的 AsynchronousSocketChannel 以某种方式干扰(通过 Jboss 或直接)并保持差事连接。
最佳答案
好的,我发现了这个问题。请注意,我将此应用程序移至 Tomcat 后才发现核心问题。其中指出“您创建了一个未被删除的线程”。我的代码使用我用来监听我关心的端口的 AsynchronousSocketChannel 类。默认实现使用 AnsychronousChannelGroup 类,在这种情况下它不会被清理,一旦你将一个 channel 组分配给你的 socketchannel,你就可以用这种方式清理线程。我将在今天晚些时候将我的代码上传到一个 github 帐户,以便人们可以使用它。 Java 8 错误?
关于java - 无法将 org.apache.qpid.jms.provider.amqp.AmqpProviderFactory 转换为 org.apache.qpid.jms.provider.ProviderFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48636442/
我正在读这个 question和 corresponding answer并被答案第一行中的术语 JMS broker 弄糊涂了: MS (ActiveMQ is a JMS broker imple
我正在学习 API 中的 Reactive Streams,我对它与 JMS 之间的相似性感到震惊。在 JMS 中,我们也有异步处理、发布者和订阅者。我在进行这种等效时缺少什么观点? 最佳答案 Rea
假设生产者向 JMS 主题“新闻”发送一条消息。消费者 1 读取了消息,但消费者 2 处于离线状态,因此他还没有读取消息。 是否有任何内置(针对规范或实现)的方式来通知生产者消费者 1 已阅读他的消息
目前我正在开发一个 JMS 应用程序。但我使用普通的 JMS API 和属性文件进行配置。我的应用程序在 Weblogic 中运行并连接到我客户端的 MQ 系列服务器。 最近我知道我可以使用 Webl
我正在尝试使用 Solace 中可用的异步发送功能,但我打算使用 JMS 进行抽象,而不是直接使用 JCSMP 使用它。 JMS 2.0 支持异步发送以及其他新功能:http://www.oracle
我无法获得 javax.jms.ConnectionFactory注入(inject)我的独立 JMS 客户端。 我得到一个 java.lang.NullPointerException在 conne
保持 JMS 连接/ session /消费者始终打开是一种不好的做法吗? 代码草稿示例: // app startup code ConnectionFactory cf = (Connection
我有几个作业,每个作业都有多条消息排队。每个作业的消息随机交错。如果用户决定取消作业,我想从队列中删除属于该作业的所有消息。我已经能够使用 browse() 找到所有要删除的消息,但一直无法弄清楚如何
是否可以将主题配置为仅存储最后一条消息的副本并将其发送到新连接而不知道客户端标识符或其他信息? 更新: 从 Shashi 提供的信息中,我发现这两页使用 retroactive consumer 描述
目前正在使用 WebLogic 和分布式队列。我从文档中了解到,分布式队列允许您使用全局 JNDI 名称检索到集群中任何队列的连接。分布式队列为您提供的主要功能之一似乎是跨多个托管服务器的负载平衡连接
再见,我的基本要求是有一个可以发送消息的路由,并将其放在 JMS 队列中。 camel 上下文在 JavaEE 6 容器中运行,即 JBoss AS 7.1.1,因此它是 HornetQ for JM
我正在阅读 JMS 2.0 规范,其中提到(相关摘录下方)如果客户端尝试修改 Message 对象,则 JMS 提供程序可能会抛出异常。 我的问题是 JMS 提供者如何知道客户端是否试图修改 Mess
我的 spring 上下文文件中有以下设置。 "PowerEventQueue" “${
我正在尝试使用 JSP 连接到 ActiveMQ。但是,当我运行该程序时,它给了我以下类型的异常: NoClassDefFoundError: javax/jms/Destination . 我不确定
我刚看了CORBA和JMS,他们好像都是用来实现的代理架构/模式。 我对他们有几个问题 1.他们之间的区别我还不是很清楚,谁能解释一下? 2.CORBA 是否用于当今的 IT 解决方案?还是正在失去魅
我正在更新现有的 Mule 配置,任务是增强它以根据消息的某些属性将消息路由到不同的端点,因此最好对我手头的两个选项有一些利弊: 在消息上添加属性,使用“message-properties-tran
我有一个订阅 JMS 主题应用程序的 Java 应用程序,该应用程序偶尔会出现以下异常: javax.jms.JMSException: Connection has been terminated
我知道 Camel 的 JMS 组件用于接收消息,使用 Springs DefaultMessageListenerContainer。它可以配置为使用 CLIENT_ACKNOWLEDGE 模式来确
通常不鼓励使用从 JMS 提供者返回的消息 ID 作为相关 ID,将消息发布到队列中。人们如何为请求/响应架构生成相关 ID? 最佳答案 客户端可以使用唯一的 ID 标准,如 UUID生成新的 ID。
我有一个简单的代码可以将 2 条消息放入队列中。 1) 我用两台服务器设置了 connectionNameList。 2) 这两个服务器是独立的,但有相同的队列管理器和定义相同名称的队列,例如“QMg
我是一名优秀的程序员,十分优秀!