使您的应用程序调用我的应用程序,第2部分: James应用程序

继续您在 第 1 部分 中尚未完成的学习,在第 1 部分中,您学习了如何开发消息驱动 bean(MDB)、实体 bean 和容器管理的持久性 (CMP),还了解了如何在 Apache Geronimo 中部署并测试这些组件。本期是共分三部分的系列教程的第 2 部分,为您展示 Java Apache Mail Enterprise Server(也称为 Apache James)的整体架构。您将了解如何构建、部署和测试电子邮件应用程序(mailet 和 matcher ),以及如何在 Apache James 电子邮件服务器中部署这个应用程序。

开始之前

本系列教程面向希望学习如何使用各种 Java EE 组件 —— 包括 MDB 和 Java 2 Platform,Enterprise Edition (J2EE)Connector Architecture(JCA)资源适配器 —— 构建集成化解决方案的 Java Platform, Enterprise Edition(Java EE)程序员。本教程假设您熟悉基本的 Java 和 Java EE 概念,例如 EJB、Java Message Service(JMS)、 MDB 和 Unified Modeling Language(UML)图。

关于本系列

在这个共分三部分的系列教程中,您将构建一个示例应用程序 ,通过这种方式了解如何将不同的 Java EE 组件集成在一起,来开发复杂的应用程序。

您可 下载 本文的示例应用程序,它示范 了 Apache James 中电子邮件的数据通过 JCA 资源适配器、MDB、EJB 流向 Apache Geronimo 应用服务器。

本系列的 第 1 部分 介绍了如何开发 MDB、实体 bean 和容器管理的持久性(CMP),以及如何在 Apache Geronimo 中部署和测试这些组件。

本期是系 列教程的第 2 部分,解释如何创建电子邮件应用程序(mailet 和 matcher)并将其在 Apache James 电子邮件服务器中进行部署。

第 3 部分将整个应用程序联系在一起。您将学习为 Apache James 电子邮件服务器开发、部署和测试 JCA 资源适配器,它将通过 MDB 与James 和 Geronimo 交互。

关于本教程

在 第 1 部分 中,您构建了 MDB 和实体 bean,从而在 Apache Derby 数据 库中创建了一个采购订单项。在这一期教程中,您将了解 Apache James 的整体架构,并构建一个电子邮件应用程序,用于处理传入的电 子邮件。

先决条件

本教程不要求您预先具备任何 Apache James 或 JavaMail 的知识,但希望您了解电子邮件的工作原理 。

系统要求

为完成本教程的学习,您需要具备以下工具:

Apache Geronimo —— Apache 提供的 Java EE 应用服务器

Apache James 2.2 -—— 基于 Java 的 Simple Mail Transfer Protocol(SMTP)、Post Office Protocol version 3(POP3)和 Network News Transfer Protocol(NNTP)新闻服务器

Apache Derby 数据库 —— 开放源码、轻量级数据库,嵌入在 Geronimo 之中,无需独立安装

Sun Microsystems 提供的 Java 1.4.2

示例源文件

要开始学习,请下载 part2.source.zip(参见 下载 部分),其中包括本教程中提到的源 文件、mailet 二进制文件和 .bat 文件。下面详细列出了 part2.source.zip 文件的组成部分:

- deploy(po-mailet.jar,包含 mailet 和 matcher)

- lib(tester.jar)

- src(mailet、matcher 和测试客户机的 java 文件)

- deploy.cmd

- undeploy.cmd

- runSendEmail.cmd

- runReadEmail.cmd

Apache James —— 概述

为了继续开发示例应用程序,您需要很好地理解 Apache James 服务器。本节简单介绍 James 服务器及其组件。

时间: 2024-10-04 13:04:41

使您的应用程序调用我的应用程序,第2部分: James应用程序的相关文章

有用java 编的程序 调用 hbase 接口的吗?

问题描述 有用java 编的程序 调用 hbase 接口的吗? 有用java 编的程序 调用 hbase 接口的吗?最好具体一些,对这方面不太懂 解决方案 http://blog.csdn.net/lifuxiangcaohui/article/details/39997205

异常-c# 程序调用外部dll文件对采集模块进行读写,不定时出现以下错误

问题描述 c# 程序调用外部dll文件对采集模块进行读写,不定时出现以下错误 问题签名: 问题事件名称: BEX 应用程序名: NangGang11.20.vshost.exe 应用程序版本: 9.0.21022.8 应用程序时间戳: 47316898 故障模块名称: MSVCR80.dll 故障模块版本: 8.0.50727.6195 故障模块时间戳: 4dcddbf3 异常偏移: 00008aa0 异常代码: c000000d 异常数据: 00000000 解决方案 光给出一个异常信息,天知

C#程序调用外部程序

程序 /**编程语言:VisualStudio.NETC#(Beta2)*作者:迪泊威*功能:通过C#程序调用Windows记事本程序编辑一个*名为test.txt的文本文件.**在整个程序中System.Diagnostics.Process.Start(Info)*为主要语句.*如果只是单独执行一个外部程序,可用一条如下代码即可:*System.Diagnostics.Process.Start(*"外部程序名","启动参数");*/ usingSystem;

通过异步程序调用(APC)实现的定时功能

定时器是一个在特定时间或者规则间隔被激发的内核对象.结合定时器的异步程序调用可 以允许回调函数在任何定时器被激发的时候执行.本文的例子代码显示了如何实现. 使用本定时器时,你需要把常量_WIN32_WINNT定义为0x0400,并且此常量应该在包之前定义 ,以确保声明合适的定时器原型函数. 通过调用CreateWaitableTimer()可以创建一 个定时器,此函数返回一个指向内核对象的句柄.若定时器已经存在,你可以通过使用 OpenWaitableTimer()获得一个进程相关的句柄.无论是

exec-java程序调用DOS命令有问题

问题描述 java程序调用DOS命令有问题 我在使用java运行一个dos命令时候出现了一个问题: 该dos命令见如下代码中的command字符串,将该字符串敲入命令行界面运行良好,其中dtm-win32是一个可执行程序,后面跟着的是这个程序的诸多参数.这个可执行程序通常需要运行20分钟左右. 我想在java程序中运行该可执行程序,但是出现一个奇怪的现象:java程序成功启动了该可执行程序,但过了几秒钟后,这个可执行程序就阻塞了,当我终止了java程序后,该可执行程序后恢复了运行,而且每次都是这

ntpdate watchdog-应用程序调用系统命令ntpdate,导致看门狗重启

问题描述 应用程序调用系统命令ntpdate,导致看门狗重启 命令如下: ntpdate -p 1 ntp.sjtu.edu.cn 看门狗超时时间是1.5s,每次调用NTP同步,就会触发看门狗重启.求助!!

java-Java程序调用动态库的问题,Can't find dependent libraries

问题描述 Java程序调用动态库的问题,Can't find dependent libraries win7 32位系统上,java程序调用Qt写的动态库,Qt build的时候没报任何错.System.load()的时候报错Can't find dependent libraries. 我用depends.exe 这个工具查看DLL信息,开始的时候确实报错说有几个依赖的动态库找不到,我就在网上下载了放到system32目录下.depends不报错了(但是有一个警告:At least one

急求:如何将vs的一个已经写好的mfc含有界面的主程序封装成mfcdll,供其他程序调用?

问题描述 急求:如何将vs的一个已经写好的mfc含有界面的主程序封装成mfcdll,供其他程序调用? 两个项目同时进行,一个是3d,一个是2d,现在需要把两个合在一起,需要把3d的mfc项目封装成dll供2d的mfc调用. 解决方案 一个完整的程序封装成dll是一个复杂的事情,尤其是你的程序使用了mfc框架,并且有大量的全局变量.你的团队要有足够的资源去做这件事情,它不亚于从头开发. 如果你们没有足够的资源,最好还是采用进程通讯和进程调用的方法,避免源代码的大改. 解决方案二: 直接利用VS的工

程序调用默认浏览器打开url时,如何带入自定义cookie

问题描述 程序调用默认浏览器打开url时,如何带入自定义cookie 想在qt程序中,调用默认浏览器打开网页,打开网页的时候,置入qt程序中获取的cookie 解决方案 这个需要想办法把cookie写入浏览器 不同浏览器位置不一样 解决方案二: 用你的程序实现一个http代理服务器,然后设置浏览器的代理地址为你的这个服务器,然后打开url,你的代理附加cooke并且实际和网站通讯. 自x们这个软件就是这个原理.