`
a3mao
  • 浏览: 563005 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Glassfish初体验之五

    博客分类:
  • Work
阅读更多
JMS的各种资源都已经创建好了,下面将介绍如何发送一条消息到JMS的队列里。
有两种方式来写客户端代码,使用annotation或者不使用。
1、使用annotation
1)创建web工程。
      在eclipse里创建web工程很简单。”File“-”New“-”Web Project“,然后输入工程名:TestJMS2,然后”Finish“。
2)新建Servlet
   新建包名:com.test.jms,在此包下新建Servlet:TestJMSServlet。
package com.test.jms;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import java.util.Properties;

import javax.annotation.Resource;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.QueueBrowser;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TestJMSServlet extends HttpServlet
{

/**
*
*/
private static final long serialVersionUID = 1L;

@Resource(mappedName = "jms/myCF")
private ConnectionFactory queueCF;

@Resource(mappedName = "jms/myQueue")
private Queue queue;

/**
* Constructor of the object.
*/
public TestJMSServlet()
{
super();
}

/**
* Destruction of the servlet. <br>
*/
public void destroy()
{
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}

/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request
*          the request send by the client to the server
* @param response
*          the response send by the server to the client
* @throws ServletException
*           if an error occurred
* @throws IOException
*           if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{

doPost(request, response);
}

/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request
*          the request send by the client to the server
* @param response
*          the response send by the server to the client
* @throws ServletException
*           if an error occurred
* @throws IOException
*           if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
try
{
Connection connection = queueCF.createConnection();
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
MessageProducer producer = session.createProducer((Destination) queue);
TextMessage message = session.createTextMessage();
message.setText("This is message ");
producer.send(message);

QueueBrowser browser = session.createBrowser(queue);
Enumeration msgs = browser.getEnumeration();

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println("  <BODY>");
out.print("    This is ");
out.print(this.getClass());
out.println("<br>");
out.println("TCF: " + queueCF);
out.println("<br />Topic: " + queue);

out.println(", using the POST method");
out.println("<br>");
out.println("<br>");
out.println("<br>");
out.println("your messages sent are:<br>");
if (!msgs.hasMoreElements())
{
System.out.println("No messages in queue");
out.println("No messages in queue<br>");
} else
{
while (msgs.hasMoreElements())
{
Message tempMsg = (Message) msgs.nextElement();
out.println("Message: " + ((TextMessage)tempMsg).getText() + "<br>");
System.out.println("Message: " + tempMsg);
}
}

out.println("  </BODY>");
out.println("</HTML>");
out.flush();
out.close();

browser.close();
producer.close();
session.close();
connection.close();

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

}

/**
* Initialization of the servlet. <br>
*
* @throws ServletException
*           if an error occurs
*/
public void init() throws ServletException
{
// Put your code here
}

}

3)web.xml的配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>TestJMSServlet</servlet-name>
    <servlet-class>com.test.jms.TestJMSServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>TestJMSServlet</servlet-name>
    <url-pattern>/servlet/TestJMSServlet</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

这样一个测试程序就算完成了,
部署应用到Glassfish上,然后启动服务,
地址栏中输入:http://localhost:8080/TestJMS2/servlet/TestJMSServlet
得到如下信息:
This is class com.test.jms.TestJMSServlet
TCF: com.sun.messaging.jms.ra.DirectConnectionFactory@6711b0
Topic: Sun Java System MQ Destination getName(): myQueueDes Class: com.sun.messaging.Queue getVERSION(): 3.0 isReadonly(): false getProperties(): {imqDestinationName=myQueueDes, imqDestinationDescription=A Description for the Destination Object} , using the POST method


your messages sent are:
Message: This is message
Message: This is message
Message: This is message
Message: This is message

分享到:
评论

相关推荐

    GlassFish5.0安装包

    2. 解压:将下载的压缩包解压至你希望安装的目录,通常建议选择一个不会频繁更改的位置,如`C:\glassfish5`(Windows)或`/opt/glassfish5`(Linux)。 3. 初始化:在命令行中,切换到GlassFish的安装目录下的`bin`...

    glassfish集群搭建手册

    5. 最后,手册还包括了通过命令行界面进行集群配置的说明,这通常包括通过SSH在各节点安装Glassfish,创建节点,配置集群和实例,以及设置集群相关的JVM参数和系统参数。 6. 关于Apache的配置,文档强调了为了实现...

    glassfish-5.0.1.zip

    GlassFish 是用于构建 Java EE 5应用服务器的开源开发项目的名称。它基于 Sun Microsystems 提供的 Sun Java System Application Server PE 9 的源代码以及 Oracle 贡献的 TopLink 持久性代码。该项目提供了开发高...

    glassfish网络开发服务器

    GlassFish网络开发服务器是一款强大的开放源代码应用服务器,主要用于运行Java EE(Java Platform, Enterprise Edition)应用程序。由Oracle公司维护,它支持各种企业级服务,包括Web服务、EJB(Enterprise ...

    glassfish安装步骤.txt

    1. **JDK 5或更高版本**:Glassfish要求系统环境中至少安装有JDK 5以上的版本。可以通过设置`JAVA_HOME`环境变量来指定JDK的位置。 2. **Ant 1.6.5**:除了JDK之外,还需要安装Ant工具,并且版本号应为1.6.5。这是...

    glassfish安装配置文档

    五、GlassFish 常见问题 在使用 GlassFish 时,可能会遇到一些常见的问题,如服务器无法启动、管理员控制台无法访问等。这些问题通常是由于配置不当或权限问题所引起的。解决这些问题需要检查 GlassFish 的配置文件...

    Glassfish部署web项目

    在Java EE或JSF应用开发中,**NetBeans** 和 **Glassfish** 的组合是最优选择之一。NetBeans提供了对Glassfish的优秀支持,使得开发者能够轻松地开发、调试和部署应用。 - **NetBeans**: 它是一个免费且开源的集成...

    GlassFish4(GlassFish3)安装

    GlassFish4的下载和安装的详细步骤,下载地址,配置等。附带有GlassFish3的安装简述

    Glassfish安装和启动

    ### Glassfish安装与启动详解 #### 一、简介 GlassFish 是一款开源的应用服务器,它遵循Java EE标准,被广泛应用于开发、测试和生产环境中。本文档将详细介绍如何安装和启动GlassFish应用服务器。 #### 二、安装前...

    glassfish教程

    介绍glassfish以及JAVA EE 5的关系,包含了glassfish的安装配置等信息

    linux下实现glassfish自动启动

    在Linux环境下,Glassfish服务器的自动化启动是系统管理员和开发者常用的需求,这有助于提升服务器管理效率,确保服务的持续性和稳定性。Glassfish是Oracle公司提供的一个开源Java EE应用服务器,它支持各种Web应用...

    glassfish-ose-4.0 白皮书

    5. **云就绪**:作为一款现代应用服务器,GlassFish 4.0具备良好的云适应性,能够轻松地在虚拟化环境和云平台上部署,支持动态扩展和自动负载均衡。 6. **持续集成与测试**:白皮书会涵盖如何利用GlassFish与各种...

    GlassFish2.0的安装

    GlassFish 2.0 是 Sun Microsystems 推出的一款免费且开源的 Java EE 服务器,它基于 Java Platform, Enterprise Edition (Java EE) 5规范,提供了包括EJB 3.0、JSF 1.2、Servlet 2.5、JSP 2.1、JAX-WS 2.0、JAXB ...

    glassfish单机集群jk_little

    在IT行业中,Glassfish是一款开源的应用服务器,由Sun Microsystems开发并维护,后来成为Oracle Corporation的一部分。Glassfish支持Java EE(现在称为Jakarta EE)规范,为开发者提供了构建企业级Web应用的平台。当...

    glassfish-3.1.2.2.zip

    《深入解析Glassfish 3.1.2.2与Java EE 6的融合应用》 Glassfish 3.1.2.2是一款由Oracle公司开发的开源应用服务器,它是Java EE 6规范的重要实现者,提供了全面的支持和丰富的功能,为开发者提供了构建企业级Web...

    glassfish安装手册及源文件

    《Glassfish安装手册及源文件详解》 Glassfish是一款开源的应用服务器,它是Java EE平台的实现,为企业级应用提供了一套完整的开发、部署环境。在本文中,我们将深入探讨如何安装Glassfish,以及如何利用Ant工具...

    GlassFish Eclipse Plugin

    5. **管理服务器**:通过"Servers"视图,可以查看和控制GlassFish服务器的状态,进行启动、停止、重启等操作。 6. **调试应用**:在运行或调试模式下,可以在"Console"视图查看服务器日志,通过断点设置进行调试。 ...

    Glassfish关于tomcat的文档

    ### Glassfish与Tomcat对比分析 #### 执行摘要 对于Web 2.0初创公司、应用服务提供商以及提供动态Web应用的独立软件供应商(ISVs)而言,应用即业务,而应用服务器中的Web容器技术能够直接影响业务成果。Web容器是...

    glassFish的安装部署说明

    本教程详细的介绍了sun公司的推出的服务器glassfish安装部署的使用步骤,阐述了glassfish和tomcat服务器的异同,以及glassfish的优点!正在开发JavaEE的朋友如果你还没使用过glassfish,那么请你去www.sun.com下载...

    glassfish安装

    《Glassfish安装详解》 Glassfish,作为Oracle公司开源的一款Java EE应用服务器,是开发者进行企业级Java应用程序部署的重要平台。本文将详细讲解如何安装和配置Glassfish,以帮助初学者快速入门。 首先,理解...

Global site tag (gtag.js) - Google Analytics