我在JBoss7 JMS集群上运行Spring webapp时遇到了一个问题。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="ConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="ConnectionFactory" />
</bean>
<bean id="testQueue" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jms/queue/test" />
</bean>
<bean id="listener" class="eu.cuptech.jms.ExampleListener" />
<bean id="listenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="ConnectionFactory" />
<property name="destination" ref="testQueue" />
<property name="messageListener" ref="listener" />
</bean>
</beans>
exampleListener.java如下所示:
package eu.cuptech.jms;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
public class ExampleListener implements MessageListener {
public void onMessage(Message message) {
try {
String msg = ((TextMessage) message).getText();
System.out.println("MESSAGE TEXT: " + msg);
} catch (JMSException e) {
throw new RuntimeException(e);
}
}
}
当我启动live服务器时,消息由ExampleListener处理--这是可以的。当我启动备份服务器时,我得到了错误javax.naming.NameNotFoundException beacauseConnectionFactory
在JNDI下没有公开--这时只有主服务器在工作,它不是集群。当live server失败时,这里没有备份。
当我尝试为ConnectionFactory和testQueue设置lazy-init=“true”
和loadonstartup=“false”
(+代理接口)时,没有什么变化,因为listenerContainer将在备份服务器启动时创建它。我需要listenerContainer将等待,直到备份服务器成为活的,然后将连接到队列。
下面是一个webapp源代码,使用mavenMVN包
(Eclipse project)构建它。下面是一个简单的JMS客户机源代码(Eclipse项目)。
注意,备份服务器是一个被动的HornetQ消息传递服务器,在故障转移之前不能有任何生产者或消费者。
HornetQ文档(实时备份组):http://Docs.jboss.org/HornetQ/2.3.0.final/Docs/user-manual/html_single/#d0e11266
问题内容: 我需要从Docker容器中在后台运行的Java应用程序中启动Selenium。启动失败,因为在运行时无法访问X11环境。请参阅下面的内容。 我该怎么办? 问题 我从安装Java 8和Jetty 9.3.x 的简单程序开始运行一个简单的服务(实际上是selenium的东西)。该服务实际上是为了启动一些需要UI才能执行的事情而设置的。我遇到的问题是其中的任何内容执行失败,因为UI在我运行的
我需要更改log4j2配置文件的默认位置。我按照这里的文档 https://logging.apache.org/log4j/2.x/manual/webapp.html 但是 log4j2 可以看到的唯一文件是 log4j2.xml类路径中。否则我得到“找不到log4j2配置文件” 我试过: -1.设置上下文参数 -2将系统属性Log4jContextSelector设置为“org . Apac
注意:我对Configuration类做了一点修改,现在我得到了以下异常:
我有两个docker容器: 一个容器运行我的Spring Boot应用程序,它侦听端口8080:这个容器将8080端口暴露给其他docker容器。docker网络中的容器ip为172.17.0.2。 另一个容器运行发布端口80的nginx 我可以成功地将我的spring boot应用程序放在nginx之后,在我的nginx容器中使用以下配置: } 对我的 REST API (http://my-i
2015年7月30日,我们的Spring Boot应用程序运行良好,但当我们在2015年8月3日尝试运行它时,它失败了,出现了以下错误: 任何帮助都将不胜感激!