- 浏览: 2567027 次
- 性别:
- 来自: 成都
-
文章分类
最新评论
-
nation:
你好,在部署Mesos+Spark的运行环境时,出现一个现象, ...
Spark(4)Deal with Mesos -
sillycat:
AMAZON Relatedhttps://www.godad ...
AMAZON API Gateway(2)Client Side SSL with NGINX -
sillycat:
sudo usermod -aG docker ec2-use ...
Docker and VirtualBox(1)Set up Shared Disk for Virtual Box -
sillycat:
Every Half an Hour30 * * * * /u ...
Build Home NAS(3)Data Redundancy -
sillycat:
3 List the Cron Job I Have>c ...
Build Home NAS(3)Data Redundancy
Java Generate/Merge Files(4)Spring and AWS SQS
Dependencies
<!-- AWS Connections -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.11.113</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-sqs</artifactId>
<version>1.11.113</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>amazon-sqs-java-messaging-lib</artifactId>
<version>1.0.1</version>
<exclusions>
<exclusion>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-sqs</artifactId>
</exclusion>
</exclusions>
</dependency>
How to use JMS Configuration with Spring to Send message?
<!-- JMS -->
<bean id="credentialsProviderBean" class="com.j2c.feeds2g.services.base.J2CAWSCredentialsProviderChain" />
<bean id="connectionFactoryBuilder"
class="com.amazon.sqs.javamessaging.SQSConnectionFactory$Builder">
<property name="regionName" value="us-east-1" />
<property name="numberOfMessagesToPrefetch" value="10" />
<property name="awsCredentialsProvider" ref="credentialsProviderBean" />
</bean>
<bean id="connectionFactory" class="com.amazon.sqs.javamessaging.SQSConnectionFactory"
factory-bean="connectionFactoryBuilder" factory-method="build" />
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory" />
</bean>
Java MessageServiceImpl to send out the messages
package com.j2c.feeds2g.services;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import com.j2c.feeds2g.services.base.BaseService;
public class MessageServiceImpl extends BaseService implements MessageService{
private JmsTemplate jmsTemplate;
public void sendJobBucket(String jobBucket) {
jmsTemplate.send("test-jobbucket", new MessageCreator() {
public Message createMessage(Session session) throws JMSException {
final TextMessage msg = session.createTextMessage(jobBucket);
return msg;
}
});
}
public void setJmsTemplate(JmsTemplate jmsTemplate) {
this.jmsTemplate = jmsTemplate;
}
}
In the configuration file, we need to have the key and secret for SQS
aws.accessKeyId=xxxxxx
aws.secretKey=xxxxxx
How to use Message Driven Bean to consume the messages?
<!-- MDB for jobbucket queue -->
<bean id="amazonMessageListener" class="com.j2c.feeds2g.services.mdb.JobBucketMessageDrivenBean">
<property name="actorSystemFactory" ref="actorSystemFactory" />
</bean>
<bean id="messageListener"
class="org.springframework.jms.listener.adapter.MessageListenerAdapter">
<property name="delegate" ref="amazonMessageListener" />
<property name="defaultListenerMethod" value="onMessage" />
<property name="messageConverter">
<null />
</property>
</bean>
<bean id="jmsContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destinationName" value="test-jobbucket" />
<property name="messageListener" ref="messageListener" />
</bean>
<!-- MDB end -->
package com.j2c.feeds2g.services.mdb;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.TextMessage;
import com.j2c.feeds2g.services.base.ActorSystemFactory;
import com.j2c.feeds2g.services.base.BaseService;
import akka.actor.ActorSelection;
import akka.actor.ActorSystem;
public class JobBucketMessageDrivenBean extends BaseService{
private ActorSystemFactory actorSystemFactory;
private ActorSelection sourceRouter;
public void onMessage(Message message) {
logger.info("step1 receive information");
if(sourceRouter == null){
ActorSystem system = actorSystemFactory.getActorSystem();
sourceRouter = system.actorSelection("akka://feeds2g/user/sourceRouter");
}
if (message instanceof TextMessage) {
try {
logger.info(String.format("MDB received: %s ", ((TextMessage) message).getText()));
//sourceRouter.tell(null, null);
} catch (JMSException ex) {
throw new RuntimeException(ex);
}
} else {
throw new IllegalArgumentException("Message must be of type TextMessage");
}
}
public void setActorSystemFactory(ActorSystemFactory actorSystemFactory) {
this.actorSystemFactory = actorSystemFactory;
}
}
References:
https://pragmaticintegrator.wordpress.com/2015/04/21/using-aws-sqs-as-jms-provider-with-spring/
https://pragmaticintegrator.wordpress.com/2015/05/05/creating-a-message-driven-bean-with-aws-sqs-in-spring/
https://codingbone.wordpress.com/2010/02/28/how-to-load-properties-files-into-spring-and-expose-to-the-java-classes/
Dependencies
<!-- AWS Connections -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.11.113</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-sqs</artifactId>
<version>1.11.113</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>amazon-sqs-java-messaging-lib</artifactId>
<version>1.0.1</version>
<exclusions>
<exclusion>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-sqs</artifactId>
</exclusion>
</exclusions>
</dependency>
How to use JMS Configuration with Spring to Send message?
<!-- JMS -->
<bean id="credentialsProviderBean" class="com.j2c.feeds2g.services.base.J2CAWSCredentialsProviderChain" />
<bean id="connectionFactoryBuilder"
class="com.amazon.sqs.javamessaging.SQSConnectionFactory$Builder">
<property name="regionName" value="us-east-1" />
<property name="numberOfMessagesToPrefetch" value="10" />
<property name="awsCredentialsProvider" ref="credentialsProviderBean" />
</bean>
<bean id="connectionFactory" class="com.amazon.sqs.javamessaging.SQSConnectionFactory"
factory-bean="connectionFactoryBuilder" factory-method="build" />
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory" />
</bean>
Java MessageServiceImpl to send out the messages
package com.j2c.feeds2g.services;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import com.j2c.feeds2g.services.base.BaseService;
public class MessageServiceImpl extends BaseService implements MessageService{
private JmsTemplate jmsTemplate;
public void sendJobBucket(String jobBucket) {
jmsTemplate.send("test-jobbucket", new MessageCreator() {
public Message createMessage(Session session) throws JMSException {
final TextMessage msg = session.createTextMessage(jobBucket);
return msg;
}
});
}
public void setJmsTemplate(JmsTemplate jmsTemplate) {
this.jmsTemplate = jmsTemplate;
}
}
In the configuration file, we need to have the key and secret for SQS
aws.accessKeyId=xxxxxx
aws.secretKey=xxxxxx
How to use Message Driven Bean to consume the messages?
<!-- MDB for jobbucket queue -->
<bean id="amazonMessageListener" class="com.j2c.feeds2g.services.mdb.JobBucketMessageDrivenBean">
<property name="actorSystemFactory" ref="actorSystemFactory" />
</bean>
<bean id="messageListener"
class="org.springframework.jms.listener.adapter.MessageListenerAdapter">
<property name="delegate" ref="amazonMessageListener" />
<property name="defaultListenerMethod" value="onMessage" />
<property name="messageConverter">
<null />
</property>
</bean>
<bean id="jmsContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destinationName" value="test-jobbucket" />
<property name="messageListener" ref="messageListener" />
</bean>
<!-- MDB end -->
package com.j2c.feeds2g.services.mdb;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.TextMessage;
import com.j2c.feeds2g.services.base.ActorSystemFactory;
import com.j2c.feeds2g.services.base.BaseService;
import akka.actor.ActorSelection;
import akka.actor.ActorSystem;
public class JobBucketMessageDrivenBean extends BaseService{
private ActorSystemFactory actorSystemFactory;
private ActorSelection sourceRouter;
public void onMessage(Message message) {
logger.info("step1 receive information");
if(sourceRouter == null){
ActorSystem system = actorSystemFactory.getActorSystem();
sourceRouter = system.actorSelection("akka://feeds2g/user/sourceRouter");
}
if (message instanceof TextMessage) {
try {
logger.info(String.format("MDB received: %s ", ((TextMessage) message).getText()));
//sourceRouter.tell(null, null);
} catch (JMSException ex) {
throw new RuntimeException(ex);
}
} else {
throw new IllegalArgumentException("Message must be of type TextMessage");
}
}
public void setActorSystemFactory(ActorSystemFactory actorSystemFactory) {
this.actorSystemFactory = actorSystemFactory;
}
}
References:
https://pragmaticintegrator.wordpress.com/2015/04/21/using-aws-sqs-as-jms-provider-with-spring/
https://pragmaticintegrator.wordpress.com/2015/05/05/creating-a-message-driven-bean-with-aws-sqs-in-spring/
https://codingbone.wordpress.com/2010/02/28/how-to-load-properties-files-into-spring-and-expose-to-the-java-classes/
发表评论
-
Update Site will come soon
2021-06-02 04:10 1694I am still keep notes my tech n ... -
Portainer 2020(4)Deploy Nginx and Others
2020-03-20 12:06 439Portainer 2020(4)Deploy Nginx a ... -
Private Registry 2020(1)No auth in registry Nginx AUTH for UI
2020-03-18 00:56 449Private Registry 2020(1)No auth ... -
Docker Compose 2020(1)Installation and Basic
2020-03-15 08:10 392Docker Compose 2020(1)Installat ... -
VPN Server 2020(2)Docker on CentOS in Ubuntu
2020-03-02 08:04 475VPN Server 2020(2)Docker on Cen ... -
Nginx Deal with OPTIONS in HTTP Protocol
2020-02-15 01:33 373Nginx Deal with OPTIONS in HTTP ... -
PDF to HTML 2020(1)pdftohtml Linux tool or PDFBox
2020-01-29 07:37 435PDF to HTML 2020(1)pdftohtml Li ... -
Elasticsearch Cluster 2019(2)Kibana Issue or Upgrade
2020-01-12 03:25 743Elasticsearch Cluster 2019(2)Ki ... -
Spark Streaming 2020(1)Investigation
2020-01-08 07:19 307Spark Streaming 2020(1)Investig ... -
Hadoop Docker 2019 Version 3.2.1
2019-12-10 07:39 310Hadoop Docker 2019 Version 3.2. ... -
MongoDB 2019(3)Security and Auth
2019-11-16 06:48 254MongoDB 2019(3)Security and Aut ... -
MongoDB 2019(1)Install 4.2.1 Single and Cluster
2019-11-11 05:07 303MongoDB 2019(1) Follow this ht ... -
Monitor Tool 2019(1)Monit Installation and Usage
2019-10-17 08:22 336Monitor Tool 2019(1)Monit Insta ... -
Ansible 2019(1)Introduction and Installation on Ubuntu and CentOS
2019-10-12 06:15 326Ansible 2019(1)Introduction and ... -
Timezone and Time on All Servers and Docker Containers
2019-10-10 11:18 348Timezone and Time on All Server ... -
Kafka Cluster 2019(6) 3 Nodes Cluster on CentOS7
2019-10-05 23:28 298Kafka Cluster 2019(6) 3 Nodes C ... -
K8S Helm(1)Understand YAML and Kubectl Pod and Deployment
2019-10-01 01:21 343K8S Helm(1)Understand YAML and ... -
Rancher and k8s 2019(5)Private Registry
2019-09-27 03:25 382Rancher and k8s 2019(5)Private ... -
Jenkins 2019 Cluster(1)Version 2.194
2019-09-12 02:53 461Jenkins 2019 Cluster(1)Version ... -
Redis Cluster 2019(3)Redis Cluster on CentOS
2019-08-17 04:07 384Redis Cluster 2019(3)Redis Clus ...
相关推荐
使用`mvn archetype:generate`命令,选择Spring Initializr或者通过Spring Tool Suite (STS)等IDE生成一个基于Spring Boot的Maven项目。项目的基本结构应包括`pom.xml`(项目对象模型),这是Maven的核心配置文件。 ...
搭建Spring项目是一个初学者入门Java Web开发的重要步骤。Spring框架是一个强大的、全面的开源应用程序框架,主要用于构建企业级的Java应用程序。它简化了开发过程,提供了依赖注入、面向切面编程、事务管理等功能,...
"GenerateKey.java"、"EncryptClasses.java"以及"Util"、"DecryptStart"这些标签暗示了这是一个关于Java加密和解密操作的项目。下面将详细讨论相关知识点。 1. **GenerateKey.java**: 这个文件很可能包含了生成...
在IT行业中,Maven是一个广泛使用的项目管理工具,它能够帮助开发者管理和构建Java项目。Spring框架则是一个轻量级的应用框架,而SpringMVC是Spring框架的一个重要组成部分,专门用于处理Web应用程序的Model-View-...
在本文中,我们将深入探讨如何使用Maven来构建一个基于Spring MVC的Web应用程序。Maven是一个强大的项目管理和依赖管理工具,而Spring MVC是Spring框架的一部分,用于构建动态、交互式的Web应用。通过结合这两个强大...
解决 java.lang.RuntimeException: Could not generate DH keypair异常处理。 bcprov-ext-jdk15on-1.60、bcprov-jdk15on-1.60两个包放到jre下的$JAVA_HOME/jre/lib/ext的路径下,然后配置$JAVA_HOME/jre/lib/...
CXF是一个流行的开源框架,用于创建和消费Web服务,而Spring框架则是一个强大的Java企业级应用开发平台。本教程将深入探讨如何结合CXF和Spring来构建一个简单的Java WebService。 首先,我们需要理解CXF的基本概念...
输入-noverify -javaagent:D:/java/spring/jrebel.jar 3、在pom.xml中加入下面信息 <plugin> <groupId>org.zeroturnaround</groupId> <artifactId>javarebel-maven-plugin</artifactId> <id>generate-...
在IT行业中,构建Java Web应用程序时,Spring MVC框架与Maven构建工具的结合使用是非常常见的。本篇文章将详细讲解如何使用Maven来搭建一个Spring MVC的开发环境。 首先,让我们理解Maven和Spring MVC的基本概念。...
在Java开发领域,SpringMVC框架是Web应用中广泛使用的模型-视图-控制器(MVC)架构。它为开发者提供了强大的控制层组件,简化了应用程序的构建过程。本教程将详细阐述如何搭建一个基础的SpringMVC环境,以便于初学者...
const awsV4 = require ( 'aws-v4' ) ;// Sign your request// This example is post request, you can const signedRequest = awsV4 . newClient ( { accessKey : < AWS> , secretKey: < AWS_SECRET_KEY
Use it to compare and merge source code, web pages, XML and other text files with native application performance. Directly open and compare the text from Microsoft Office (Word and Excel), ...
4. **QRCOdeUtil.java关键方法**: - `generateQRCode(String content, int width, int height)`:这个方法可能接收内容(要编码的数据)、宽度和高度作为参数,返回一个二维码图像的BufferedImage对象。 - `to...
【摘要】:本文详细阐述了如何逐步搭建Java中的Spring框架,从创建Maven工程开始,直至添加必要的Spring依赖。通过此过程,开发者可以更好地理解Spring框架的构建基础。 【正文】: 在Java开发中,Spring框架是一...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建RESTful应用程序提供了强大的支持。Maven 是一个项目管理工具,它可以帮助开发者管理和构建Java项目,管理依赖关系,自动化构建过程。本教程将深入探讨如何...
Use it to compare and merge source code, web pages, XML and other text files with native application performance. Directly open and compare the text from Microsoft Office (Word and Excel), ...
Spring Boot 是一个基于 Java 的开源框架,旨在简化基于 Spring 框架的应用程序开发。创建 Spring Boot 项目有多种方式,本文将介绍三种常见的创建方法。 方法一:使用 Spring Initializr Spring Initializr 是 ...
//java -jar testAES.jar --generate-key ./key.txt 256 //java -jar testAES.jar --encrypt ./input.txt ./OUT.txt ./key.txt CFB //java -jar testAES.jar --decrypt ./OUT.txt ./OUTDEC.txt ./key.txt CFB
a) 定义JAVA_HOME变量,指向JDK的安装路径,例如:D:/Program Files/Java/Java/jdk1.6.0_05。 b) 更新系统变量PATH,添加JDK的bin目录,如:D:/Program Files/Java/jdk1.6.0_05/bin。 c) 将javabuilder.jar添加到...
这是用于使用Cloudflare Worker中的Amazon Web Services(例如DynamoDB和SQS)的模板。 该项目与Amazon Web Services不相关,不隶属,赞助或认可。 牧马人 使用生成 wrangler generate projectname ...