`
6246850
  • 浏览: 7435 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

JMS接收消息实例

    博客分类:
  • Ejb
阅读更多
package com.eway.jms;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.jms.JMSException;
import javax.jms.ObjectMessage;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import com.eway.pojo.Inhospitaldata;
import com.eway.util.Propertie;

/**
*
* @author yanghui
* @2009-07-03
* @消息发送
*
*/
public class QMProducer {
/**
* 定义JNDI上下文构造器
*/
public final static String JNDI_FACTORY = "weblogic.jndi.WLInitialContextFactory";
/**
* 定义JMS上下文构造器
*/
public final static String JMS_FACTORY = "jms/QueueConnectionFactory";
/***************************************************************************
* 定义消息列队
*/
public final static String QUEUE = "jms/fileQueue";
// 声明队列连接构造器
private QueueConnectionFactory queueConnectionFactory = null;
// 声明队列连接
private QueueConnection queueConnection = null;
// 声明队列会话
private QueueSession queueSession = null;
// 声明队列发送
private QueueSender queueSender = null;
// 声明队列
private Queue queue = null;
// 声明发送对象方式
private ObjectMessage msg = null;

public void init(Context ctx, String queueName) {
   try {
    queueConnectionFactory = (QueueConnectionFactory) ctx
      .lookup(JMS_FACTORY);
    queueConnection = queueConnectionFactory.createQueueConnection();
    queueSession = queueConnection.createQueueSession(false,
      Session.AUTO_ACKNOWLEDGE);
    queue = (Queue) ctx.lookup(queueName);
    queueSender = queueSession.createSender(queue);
    msg = queueSession.createObjectMessage();
    queueConnection.start();
   } catch (NamingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } catch (JMSException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
}

public void send(List<Inhospitaldata> message) throws JMSException {

   msg.setObject((Serializable) message);
   queueSender.send(msg);

}

public void close() throws JMSException {
   queueSender.close();
   queueSession.close();
   queueConnection.close();
}

public void sendInfo(List<Inhospitaldata> inhospitaldataList) {
   try {

    System.setProperty(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
    System.setProperty(Context.PROVIDER_URL, Propertie.getPropertie()
      .getProperty("provider"));
    Context context = new InitialContext();
    init(context, QUEUE);
    send(inhospitaldataList);

   } catch (NamingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } catch (JMSException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } finally {
    try {
     close();
    } catch (JMSException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
}

public static void main(String[] args) {
   QMProducer producer = new QMProducer();
   Inhospitaldata inhospitaldata = new Inhospitaldata();
   inhospitaldata.setXm("yanghui131");
   List<Inhospitaldata> list = new ArrayList<Inhospitaldata>();
   list.add(inhospitaldata);
   producer.sendInfo(list);
   System.out.println("发送成功");
}
}
分享到:
评论
27 楼 小白·菜 2008-05-16  
前面好像都很简单。后面那些原理可难可易,看你怎么忽悠了
26 楼 jelver 2008-05-05  
totong 写道
第一题,字符串数组版本
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String[] taxis = { "D", "C", "B", "A" };
Arrays.sort(taxis);
for (String string : taxis) {
System.out.println(string);
}
}
}
单字符串版本
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String taxis = "dcba";
char[] chars=new char[taxis.length()];
taxis.getChars(0, taxis.length(), chars, 0);
Arrays.sort(chars);
for (char c : chars) {
System.out.println(c);
}
}
}




支持,是我也用这种办法,没有必要自己写那些算法,当然自己写可以练练水平,单开发速度而言就不言而俞了.况且现在内存性能也不会影响到哪里
25 楼 6246850 2008-05-05  
yyawyy 写道
晕,深圳太极的面试题

是啊
你知道深圳太极吗?
24 楼 yyawyy 2008-05-05  
晕,深圳太极的面试题
23 楼 totong 2008-05-03  
6246850 写道
totong 写道
第一题,字符串数组版本
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String[] taxis = { "D", "C", "B", "A" };
Arrays.sort(taxis);
for (String string : taxis) {
System.out.println(string);
}
}
}
单字符串版本
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String taxis = "dcba";
char[] chars=new char[taxis.length()];
taxis.getChars(0, taxis.length(), chars, 0);
Arrays.sort(chars);
for (char c : chars) {
System.out.println(c);
}
}
}


受教了```使用Arrays类来操作数组排序

char[] chars=new char[taxis.length()];
taxis.getChars(0, taxis.length(), chars, 0);

这段代码可以改成这样
char tax[]=taxis.toCharArray();

写法简单了一些,不错
看到这样的要求,我习惯上就去找get开头的方法了,没注意到还有toCharArray,呵呵
22 楼 6246850 2008-05-02  
totong 写道
第一题,字符串数组版本
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String[] taxis = { "D", "C", "B", "A" };
Arrays.sort(taxis);
for (String string : taxis) {
System.out.println(string);
}
}
}
单字符串版本
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String taxis = "dcba";
char[] chars=new char[taxis.length()];
taxis.getChars(0, taxis.length(), chars, 0);
Arrays.sort(chars);
for (char c : chars) {
System.out.println(c);
}
}
}


受教了```使用Arrays类来操作数组排序

char[] chars=new char[taxis.length()];
taxis.getChars(0, taxis.length(), chars, 0);

这段代码可以改成这样
char tax[]=taxis.toCharArray();
21 楼 totong 2008-05-01  
第二题
import java.util.Map;
import java.util.TreeMap;
public class Test2 {
public static void main(String[] args) {
String string = "asdffdghsafagf测试";
Map<Character, Integer> map = new TreeMap<Character, Integer>();
for (int i = 0; i < string.length(); i++) {
char c = string.charAt(i);
if (map.containsKey(c)) {
map.put(c, map.get(c) + 1);
} else {
map.put(c, 1);
}
}
for (Character c : map.keySet()) {
System.out.print(c + "(" + map.get(c) + ")");
}
}
}
运行结果:
a(3)d(2)f(4)g(2)h(1)s(2)测(1)试(1)
20 楼 totong 2008-05-01  
第一题,字符串数组版本
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String[] taxis = { "D", "C", "B", "A" };
Arrays.sort(taxis);
for (String string : taxis) {
System.out.println(string);
}
}
}
单字符串版本
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String taxis = "dcba";
char[] chars=new char[taxis.length()];
taxis.getChars(0, taxis.length(), chars, 0);
Arrays.sort(chars);
for (char c : chars) {
System.out.println(c);
}
}
}
19 楼 6246850 2008-04-29  
qsrock 写道
第2题写法,不知道效果怎么样?
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

public class Test2 {

public static void main(String[] args) {
String string="asdffdghsafagf";
String[] strings=string.split("");
Map<String,Integer> map=new TreeMap<String, Integer>();
for(int i=1;i<strings.length;i++){//因为split("")分离字符串会分离出一个""的字符串,而且位置在[0]
if(strings[i]==""){

continue;
}
if(i!=0 && map.containsKey(strings[i])){
int temp=map.get(strings[i])+1;
map.put(strings[i], temp);
}else{
map.put(strings[i], 1);
}
}
printMapKV(map);

}

private static void printMapKV(Map<String, Integer> map) {
Set<String> set=map.keySet();
for(String key:set){
System.out.print(key+"("+map.get(key)+")");
}
}

}


这种写法和我写的应该差不多吧?
18 楼 6246850 2008-04-29  
dongivan 写道
6246850 写道
Illum 写道
第二题是很经典的C语言的例题嘛
去翻翻那本C的课本就会了



没课本啦...都不知道到那去了...
这题我是这样做的
String str = "dcba";
Map tree = new TreeMap();
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {
if (!tree.containsKey(ch)) {
tree.put(ch,1);
} else {
Integer in = (Integer) tree.get(ch) + 1;
tree.put(ch, in);
}
}
}
Iterator tit = tree.keySet().iterator();
while (tit.hasNext()) {
Object temp = tit.next();
System.out.print(temp.toString() + "(" + tree.get(temp) + ")");
}


不知道你有没有更简单的方法

这样的要求应该用数组吧……
String str = "dcba";
int count[] = new int[26];
for (int i = 0; i < str.length(); i++) {
    int t = (int)str.charAt(i);
    if (t > 64 && t < 91) {
        t = t - 65;
    } else if (t > 96 && t < 123) {
        t = t - 97;
    } else {
        continue;
    }
    count[t]++;

}
for(int i = 0; i < 26; i ++) {
    if( count[i] != 0) {
        System.out.println((char)(i + 97) + "(" + count[i] + ")");
    }
}

手写,不保证能编译过





多谢指教```你的写法比较容易理解
17 楼 6246850 2008-04-29  
阳光晒晒 写道
a=Hash.new 
('a'..'z').each do |tmp|
 a[tmp]=0
 end
"wo jiao shenzhen".scan(/./) do |tmp|
a[tmp]+=1 if(a[tmp])
end
('a'..'z').each do |tmp|
print tmp , "(",a[tmp],")" if (a[tmp]>0)
end


可能我基础差啦```这样的做法我从来没试过噢
16 楼 6246850 2008-04-29  
yuankai 写道
LZ的问题确实没有描述清楚。第一题我这样做不知是不是你想要的结果。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ArrayTaxis {

/**
* 排序
* @param str
*/
public static void taxis(String str){
//去掉字符串中的空格
String arr = ArrayTaxis.removeBlank(str);
StringBuilder sb = new StringBuilder();
List<String> list = new ArrayList<String>();
Object [] arrays = null;
//将字符串保存在List集合中
for(int j = 0 ; j < arr.length() ; j ++){
char c = arr.charAt(j);
list.add(c+"");
arrays =  ArrayTaxis.taxisList(list);
}

for(int i = 0 ; i < arrays.length ; i++){
sb.append("'" + arrays[i] +"'");
if(i != arr.length()-1){
sb.append(",");
}
}
System.out.println(sb.toString());
}

/**
* 使用Arrays类将List集合排序
* @param list
* @return Object []
*/
private static Object[] taxisList(List<String> list){
Object[] arrays = list.toArray();
Arrays.sort(arrays);
return arrays;
}

/**
* 去掉字符串中的空格
* @param str
* @return String
*/
public static String removeBlank(String str){
StringBuilder sb = new StringBuilder();
char c = ' ';
for(int i = 0 ; i < str.length() ; i++){
char ch = str.charAt(i);
if(ch != c){
sb.append(ch);
}
}
return sb.toString();
}

/**
* 测试
* @param args
*/
public static void main(String[] args) {
ArrayTaxis.taxis("BCEDA");
}
}



结果是出来啦`````
package com.text;

public class Taxis {

/**
* @param args
*/
public void tax() {
String[] taxis = { "D", "C", "B", "A" };
StringBuffer sb = new StringBuffer();
for (int i = 0; i < taxis.length; i++) {
for (int j = i + 1; j < taxis.length; j++) {
if (taxis[i].compareTo(taxis[j]) > 0) {
String str = taxis[i];
taxis[i] = taxis[j];
taxis[j] = str;
}

}
if (i == taxis.length - 1) {
sb.append("'" + taxis[i] + "'");
} else {
sb.append("'" + taxis[i] + "',");
}

}
System.out.println(sb);
}

public static void main(String[] args) {
// TODO Auto-generated method stub
Taxis t = new Taxis();
t.tax();

}

}
这样是不是看起来要简单一些呢``
15 楼 yuankai 2008-04-29  
LZ的问题确实没有描述清楚。第一题我这样做不知是不是你想要的结果。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ArrayTaxis {

/**
* 排序
* @param str
*/
public static void taxis(String str){
//去掉字符串中的空格
String arr = ArrayTaxis.removeBlank(str);
StringBuilder sb = new StringBuilder();
List<String> list = new ArrayList<String>();
Object [] arrays = null;
//将字符串保存在List集合中
for(int j = 0 ; j < arr.length() ; j ++){
char c = arr.charAt(j);
list.add(c+"");
arrays =  ArrayTaxis.taxisList(list);
}

for(int i = 0 ; i < arrays.length ; i++){
sb.append("'" + arrays[i] +"'");
if(i != arr.length()-1){
sb.append(",");
}
}
System.out.println(sb.toString());
}

/**
* 使用Arrays类将List集合排序
* @param list
* @return Object []
*/
private static Object[] taxisList(List<String> list){
Object[] arrays = list.toArray();
Arrays.sort(arrays);
return arrays;
}

/**
* 去掉字符串中的空格
* @param str
* @return String
*/
public static String removeBlank(String str){
StringBuilder sb = new StringBuilder();
char c = ' ';
for(int i = 0 ; i < str.length() ; i++){
char ch = str.charAt(i);
if(ch != c){
sb.append(ch);
}
}
return sb.toString();
}

/**
* 测试
* @param args
*/
public static void main(String[] args) {
ArrayTaxis.taxis("BCEDA");
}
}
14 楼 qsrock 2008-04-28  
好象和某位几乎一样
13 楼 qsrock 2008-04-28  
第2题写法,不知道效果怎么样?
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

public class Test2 {

public static void main(String[] args) {
String string="asdffdghsafagf";
String[] strings=string.split("");
Map<String,Integer> map=new TreeMap<String, Integer>();
for(int i=1;i<strings.length;i++){//因为split("")分离字符串会分离出一个""的字符串,而且位置在[0]
if(strings[i]==""){

continue;
}
if(i!=0 && map.containsKey(strings[i])){
int temp=map.get(strings[i])+1;
map.put(strings[i], temp);
}else{
map.put(strings[i], 1);
}
}
printMapKV(map);

}

private static void printMapKV(Map<String, Integer> map) {
Set<String> set=map.keySet();
for(String key:set){
System.out.print(key+"("+map.get(key)+")");
}
}

}
12 楼 阳光晒晒 2008-04-28  
a=Hash.new 
('a'..'z').each do |tmp|
 a[tmp]=0
 end
"wo jiao shenzhen".scan(/./) do |tmp|
a[tmp]+=1 if(a[tmp])
end
('a'..'z').each do |tmp|
print tmp , "(",a[tmp],")" if (a[tmp]>0)
end
11 楼 dongivan 2008-04-28  
6246850 写道
Illum 写道
第二题是很经典的C语言的例题嘛
去翻翻那本C的课本就会了



没课本啦...都不知道到那去了...
这题我是这样做的
String str = "dcba";
Map tree = new TreeMap();
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {
if (!tree.containsKey(ch)) {
tree.put(ch,1);
} else {
Integer in = (Integer) tree.get(ch) + 1;
tree.put(ch, in);
}
}
}
Iterator tit = tree.keySet().iterator();
while (tit.hasNext()) {
Object temp = tit.next();
System.out.print(temp.toString() + "(" + tree.get(temp) + ")");
}


不知道你有没有更简单的方法

这样的要求应该用数组吧……
String str = "dcba";
int count[] = new int[26];
for (int i = 0; i < str.length(); i++) {
    int t = (int)str.charAt(i);
    if (t > 64 && t < 91) {
        t = t - 65;
    } else if (t > 96 && t < 123) {
        t = t - 97;
    } else {
        continue;
    }
    count[t]++;

}
for(int i = 0; i < 26; i ++) {
    if( count[i] != 0) {
        System.out.println((char)(i + 97) + "(" + count[i] + ")");
    }
}

手写,不保证能编译过
10 楼 阳光晒晒 2008-04-28  
a="acdb" 
b=""
a.scan(/./).sort.each{|tmp| b=b+tmp+"," }
b.chomp!(",")
9 楼 6246850 2008-04-26  
pure 写道
第一个题用集合并实现排序接口不可以么?


应该可以的,用冒炮排序应该更好点!
8 楼 pure 2008-04-26  
第一个题用集合并实现排序接口不可以么?

相关推荐

    JMS完全实例(八个实例)

    实例中可能会展示如何创建消息监听器,并在接收到消息时执行特定的业务逻辑。 5. **POJO消息监听** 在一些实例中,我们可能会看到使用Plain Old Java Object(POJO)作为消息监听器的例子。这意味着消息监听器并不...

    activeMQ-JMS实例

    总结来说,"activeMQ-JMS实例"是一个基于Spring MVC的示例,它演示了如何使用Spring的JMS支持与ActiveMQ结合,实现消息的发送和接收。这个实例对于学习和理解JMS以及如何在实际项目中应用它是很有帮助的。通过这个...

    activemq与spring整合发送jms消息入门实例

    3. **创建消息模板**:Spring的`JmsTemplate`是发送和接收JMS消息的核心工具。在配置文件中创建一个`JmsTemplate`的bean,并注入连接工厂。 ```xml &lt;bean id="jmsTemplate" class="org.springframework.jms.core....

    JMS信息传输实例代码

    在发布/订阅模型中,消息生产者产生一个消息后,把这个消息发送到一个 Topic 中,这个 Topic 可以同时有多个接收者在监听,当一个消息到达这个 Topic 之后,所有消息接收者都会收到这个消息。 JMS 中的概念包括 ...

    JMS经典实例 基于weblogic

    JMS允许应用程序创建、发送、接收和读取消息,以此来解耦生产者和消费者,使得两者不必同时在线也能进行通信。在基于WebLogic的环境中,JMS被广泛应用于构建可扩展、高可用性的应用程序。 WebLogic Server是Oracle...

    JMS整合Spring实例

    **JMS整合Spring实例** Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用间异步通信的一种标准接口。它允许应用程序创建、发送、接收和读取消息,以此来解耦生产者和消费者。而Spring框架...

    JBOSS建立JMS应用实例

    1. 概念理解:JMS是Java平台中用于企业级消息传递的API,它定义了生产、发送、接收和消费消息的标准接口。 2. 消息模型:JMS支持两种消息模型——点对点(Point-to-Point)和发布/订阅(Publish/Subscribe)。前者...

    tomcat spring jms 异步消息传递入门实例

    本教程将带你逐步了解如何利用Tomcat、Spring和JMS(Java Message Service)构建一个简单的异步消息传递入门实例。 首先,让我们来理解一下核心组件: 1. **Tomcat**:这是一个流行的开源Java Servlet容器,用于...

    JMS详细实例学习教程

    Destinations:Destinations 是指消息发送客户端的消息目标和消息接收客户端的消息来源,它也是预先在 jms.xml 定义好的。对于 PTP 类型,Destinations 对应的类型为 Queue,对于 Pub/Sub 类型,Destinations 对应的...

    spring jms tomcat 异步消息传递入门实例

    在这个"spring jms tomcat 异步消息传递入门实例"中,我们将探讨如何在Spring框架下利用JMS和Tomcat实现异步消息传递,以提高系统性能和可扩展性。 首先,理解异步消息传递的概念至关重要。在同步通信中,发送方...

    javax.jms.jar包与JMS实例代码

    总结起来,`javax.jms.jar` 包提供了Java开发人员与JMS兼容的消息中间件进行通信的工具,而`demo` 文件中的实例代码展示了如何在实际应用中使用这些工具。通过学习和实践这些示例,你可以更好地理解和掌握Java消息...

    JAVA消息服务实例

    在JMS中,消息被发送到一个消息代理(message broker),然后由消费者从该代理接收消息。这种方式允许应用程序之间进行解耦,使得它们可以在无需直接交互的情况下交换数据。 JMS主要包含两种模型: 1. 点对点...

    JMS消息发送及订阅

    同样,我们可以从JMS队列接收消息并处理: ```java from("activemq:queue:MyQueue") .process(new Processor() { public void process(Exchange exchange) throws Exception { Message message = exchange.getIn...

    ActiveMq-JMS简单实例

    例如,使用`javax.jms.ConnectionFactory`创建连接,`javax.jms.Queue`或`javax.jms.Topic`定义目的地,`javax.jms.MessageProducer`发送消息,`javax.jms.MessageConsumer`接收消息。消息可以是TextMessage、...

    Java-JMS实例

    JMS允许开发者在不关心接收方是否在线或能够立即处理消息的情况下发送数据,从而提高系统的可伸缩性和容错性。 **JMS基本概念** 1. **JMS API**:JMS 提供了一组接口和类,使得开发者能够创建、发送、接收和消费...

    JMS-ActiveMQ入门实例

    Java消息服务(Java Message Service,简称JMS)是Java平台中用于创建、发送、接收和阅读消息的应用程序接口。它为应用程序提供了标准的接口,可以跨越多种消息中间件产品进行通信。JMS允许在分布式环境中交换异步...

    spring中集成JMS使用工程实例..eclipse项目例子,带注解.导入即可运行.

    - **`MessageListener`**:实现了JMS接口的监听器,用于处理接收到的消息。 - **`DefaultMessageListenerContainer`**:Spring提供的监听容器,可以自动启动和停止消息监听。 4. **配置JMS** 在Spring配置文件中...

    JMS-activemq 实例(分ppt,eclipse工程,说明三部分)

    **JMS(Java Message Service)** 是Java平台中用于企业级消息传递的一种API,它提供了一种标准的方式来创建、发送、接收和读取消息。JMS允许应用程序在不关心它们是否同时运行的情况下交换数据,这使得它成为分布式...

    jboss服务器下的jms实例

    【JBoss 服务器下的 JMS 实例】 Java 消息服务 (JMS) 是 Java 平台中用于处理异步消息传递的标准API,它在面向服务架构 (SOA) 中扮演着关键角色,特别是在需要与外部系统进行异步通信的企业环境中。JBoss 服务器...

Global site tag (gtag.js) - Google Analytics