james2.1开发

合集下载

Apache_James安装配置

Apache_James安装配置

Apache James 实战之“安装配置”2012年3月28号上海释锐教育软件有限公司实战成功案例James版本:C:\apache-james-3.0-beta3\/question/3270_12317/maven2/org/apache/james/数据库:MS SQL Server 2005参考资料:* Install /server/3/install.html* Configure /server/3/config.html* Manage /server/3/manage.html* Monitor /server/3/monitor.html实战电脑:192.168.18.55开源邮件服务器-JAMES之系统搭建Apache James(Java Apache Mail Enterprise Server)是Apache组织的子项目之一,完全采用纯Java技术开发,实现了SMTP、POP3与NNTP等多种邮件相关协议。

目前James有稳定版还stable版本2.3.2和beta版beta3.James2.x版本开发于A valon(Java Apache Server Framework)框架之上,James3.x开发自Spring框架之上。

同时为了解决性能问题,在James3.x上加入Queue 机制(ActiveMQ)进行邮件的异步处理。

同时3.x配置文件对2.x的配置文件进行了拆分,故James2.x和James3.x有较大的区别。

本文将以项目中使用的版本James Server 3.0-beta3的环境配置进行描述。

一、简单安装下载apache-james-3.0-beta3.zip文件解压缩即完成安装,如下图:4.James3 简单运行a. 安装windows服务安装apache james serviceb.首次启动必须启动apache james service。

X射线衍射法残余应力测试

X射线衍射法残余应力测试

目录1.概述 (2)1.1 X射线残余应力测试技术和测量装置的进展 (2)a.测试技术的进展 (3)b.测量装置的进展 (4)1.2测试标准 (5)2、测定原理及方法: (6)2.1二维残余应力 (6)2.1.1原理 (6)2.1.2方法 (9)2.2三维残余应力 (15)2.2.1沿深度分布的应力测定一剥层法 (16)2.2.2 X射线积分法(RIM) (17)2.2.3 多波长法 (20)3、X射线残余应力测定法的优、缺点 (21)4、一些应用 (22)参考文献: (23)X射线衍射法残余应力测试原理、计算公式、测试方法的优缺点、目前主要应用领域。

1.概述X射线法是利用X射线入射到物质时的衍射现象测定残余应力的方法。

包括X射线照相法、X射线衍射仪法和X射线应力仪法。

1.1 X射线残余应力测试技术和测量装置的进展早在1936年,Glocker等就建立了关于x射线应力测定的理论。

但是当时由于使用照相法,需要用标准物质粉末涂敷在被测试样表面以标定试样至底片的距离,当试样经热处理或加工硬化谱线比较漫散时,标准谱线与待测谱线可能重叠,测量精度很低,因此,这种方法未受到重视,直到二十世纪四十年代末还有人认为淬火钢的应力测定是不可能的。

只有在使用衍射仪后,X射线应力测定才重新引起人们的重视,并在生产中日渐获得广泛应用。

美国SAE在巡回试样测定的基础上,于1960年对X射线应力测定技术进行了全面的讨论。

日本于1961年在材料学会下成立了X射线应力测定分会,并在1973年颁布了X射线应力测定标准方法。

a.测试技术的进展在二十世纪五十年代,X射线应力测定多采用0°~ 45°法(又称两次曝光法),这种方法在dψϕ与sin2ψ有较好的线性关系时误差不大,但当试件由于各种原因,dψϕ与sin2ψ偏离离直线关系时,0°~ 45°法就会产生很大误差。

为了解决这个问题,德国E.Macherauch在1961年提出了X射线应力测定的sin2ψ法,使x射线应力测定的实际应用向前迈进了一大步。

James Gosling

James Gosling

詹姆斯·高斯林詹姆斯·高斯林詹姆斯·高斯林(James Gosling,1955年5月19日-,出生于加拿大),软件专家,Java 编程语言的共同创始人之一,一般公认他为“Java之父”。

在他12岁的时候,他已能设计电子游戏机,帮忙邻居修理收割机。

大学时期在天文系担任程式开发工读生,1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,博士论文的题目是:"The Algebraic Manipulation of Constraints"。

毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。

后来转至Sun公司。

1990年,与Patrick Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。

1994年底,James Gosling在硅谷召开的“技术、教育和设计大会”上展示Java 程式。

2000年,Java成为世界上最流行的电脑语言。

2009年四月,Sun被甲骨文公司并购。

詹姆斯于2010年四月时宣布由甲骨文公司离职。

编辑本段个人荣誉2007年,他被授予二级加拿大勋章James GoslingJA V A父:James GoslingJames Gosling(詹姆斯·高斯林,1955年5月19日,出生于加拿大),软件专家,Java编程语言的共同创始人之一,一般公认他为“Java之父”。

目录[隐藏]∙ 1 James Gosling简介2 James Gosling小传o 2.1 JA V A得到认可o 2.2 Java出名了∙ 3 相关条目∙ 4 参考来源James Gosling简介在James Gosling12岁的时候,他已能设计电子游戏机,帮忙邻居修理收割机。

大学时期在天文系担任程式开发工读生,1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,博士论文的题目是:"The Algebraic Manipulation of Constraints"。

餐馆点餐系统分析与设计毕业论文

餐馆点餐系统分析与设计毕业论文
略数据规划方法》、《没有程序员的开发》等书中提到的。
战略数据规划方法的主要技术内容包括:如何自顶向下来组织规划;建立企
'业的信息模型;主要数据库的设计与组织;战略数据规划的具体执行过程。J.马
丁在他的著作中明确指出,系统规划的基本内容有三个方面:企业的经营战略规
划;企业信息系统的设备配置规划;企业特定的主题数据库规划。
的出发点和基本原则是尽可能按照人类认识世界的方法和思维方式来分析和解
决问题。客观世界是由许多具体事物或事件、抽象的概念及规律等组成的,因此,
我们将任何感兴趣或要加以研究的事物、概念都统称为对象(Object)。
面向对象的开发方法的优点有:
(1)有利于系统开发过程中用户与开发人员的交流和沟通,缩短开发周期,
2.1.3
原型法的基本思想是1977年开始提出来的,到了20世纪80年代随着计算
机软技术的发展,特别是在关系数据库系统(Relational DataBase System, RDBS)^
第四代程序生成语言(4th Generation Language, 4GL)以及各种系统开发生成环
境产生的基础上,提出的一种从设计思想、工具、手段都全新的系统开发方法。
营销经理管理和客户潜在价值发掘等一体化的功能。但是“订餐宝”并不适用普通
小型餐馆,它仍需要较高的技术支持,对操作人员要求较高,适合于大中型的餐
饮企业。
1.3
1.3.1
近年来,互联网发展迅速,如果说过去互联网改变了网民的生活方式,那么
现在的互联网时代将要改变全民的生活方式。互联网的使用方便快捷,同时更不
统,从层次的角度,自顶向下地分析和设计系统,认为任何系统都有一个从发生、
发展到消亡的生命周期,新系统就是旧系统的继续。开发过程强调严格的规范管

CXF教程

CXF教程

CXF旨在为服务创建必要的基础设施,它的整体架构主要由以下几个部分组成:1.Bus它是C X F架构的主干,为共享资源提供了一个可配置的场所,作用非常类似于S p r i n g的ApplicationContext。

这些共享资源包括WSDL管理器、绑定工厂等。

通过对Bus进行扩展,可以方便地容纳自己的资源,或替换现有的资源。

默认Bus实现是基于Spring的,通过依赖注入,将运行时组件串起来。

Bus的创建由BusFactory负责,默认是 SpringBusFactory,对应于默认Bus实现。

在构造过程中,SpringBusFactory会搜索META-INF/cxf(就包含在 CXF的Jar中)下的所有Bean配置文件,根据它们构建一个ApplicationContext。

开发者也可提供自己的配置文件来定制Bus。

2.消息传递和拦截器(Interceptor)CXF建立于一个通用的消息层之上,主要由消息、拦截器和拦截器链(InterceptorChain)组成。

CXF是以消息处理为中心的,熟悉 JSP/Servlet的开发者可以将拦截器视为CXF架构中的“Filter”,拦截器链也与“FilterChain”类似。

通过拦截器,开发者可以方便地在消息传递、处理的整个过程中对CXF进行扩展。

拦截器的方法主要有两个:handleMessage和handleFault,分别对应消息处理和错误处理。

在开发拦截器的时候需要注意两点:拦截器不是线程安全的,不建议在拦截器中定义实例变量并使用它。

这一点跟JSP/Servlet中对于Filter的处理是一样的;不要调用下一个拦截器的handleMessage或handleFault,这个工作由InterceptorChain来完成。

3.前端(Front End)它为CXF提供了创建服务的编程模型,当前主要的前端就是JAX-WS。

4.服务模型CXF中的服务通过服务模型来表示。

apache james使用

apache james使用

apache james使用一、简介Apache James(Java Apache Mail Enterprise Server)是Apache组织的子项目之一,完全采用纯Java技术开发,实现了SMTP、POP3与NNTP等多种邮件相关协议。

James也是一个邮件应用平台,可以通过Mailet扩充其功能,如Mail2SMS、Mail2Fax等。

James 提供了比较完善的配置方案,尤其是关于邮件内容存储和用户信息存储部分,可以选择在文件、数据库或其他介质中保存。

James性能稳定、可配置性强,还是开源项目,所有源代码不存在版权问题,因此,James在项目中的应用日益广泛,现在常用版本为2.1,但最新版本2.3已经推出,在本文中,我们将仍以James2.1作为介绍蓝本。

二、安装与配置James的安装配置过程非常简单。

第一步:安装JDK请使用JDK1.3以上版本(推荐使用JDK1.4),假设安装在c:\jdk1.3。

第二步:下载James,并解压可以到Apache网站上下载James2.1,下载将得到一个压缩文件james-2.1.zip,大小为4.45M,将此包解压到c:\james。

第三步:直接运行或需要配置JAVA_HOME这时,可以尝试直接双击c:\james\bin\run.bat,若启动无误,将提示如下:也有可能启动不了,并报JAVA_HOME找不到,这时,需要指定JAVA_HOME,比较简单的方法是在c:\james\bin\run.bat中指定JAVA_HOME,修改后的run.bat如下:修改完后再运行run.bat,应该就可以正常启动了,若还有什么问题,请参见本文的FAQ部分。

三、项目应用1、项目需求某单位,有16个职能处室,共78台电脑(操作系统为Win98/2000/xp),其中有1台为专用服务器(Win2000),已连成局域网。

为使单位内部的信息交流,尤其是文件交互更加便捷,单位决定在局域网内部架设一套E-mail系统。

基于安卓系统的一款音乐APP设计与实现

基于安卓系统的一款音乐APP设计与实现

基于安卓系统的一款音乐APP设计与实现Design and implementation of a music app based on Android中文摘要近年来,在移动设备市场中,手机逐渐成为了用户的第一选择。

随着移动应用技术和互联网技术的深入发展,人们对手机应用的功能和性能也就有了更加高的要求,一些音乐App已经不能满足人们对个性化、简洁化的需求。

现有的音乐App界面繁杂、功能单一,只具有听歌曲等纯粹的视听功能,缺乏更加有乐趣的其它功能。

因此,设计一个界面简单快捷,功能丰富的可以给用户带来更多选择的音乐App显得很有市场需求。

关键字:智能手机 Android平台音乐AppAbstractIn recent years, mobile phones have gradually become the first choice of users in the mobile device market. With the in-depth development of mobile application technology and Internet technology, people have higher requirements for the function and performance of mobile applications. Some music apps have been unable to meet people's personalized and concise needs. The existing music app has complex interface and single function. It only has pure audio-visual functions such as listening to songs, and lacks other functions that are more fun. Therefore, the design of a simple and fast interface, rich functions can bring users more choices of music app is very market demand.Key words:Intelligent mobile phone Android platform Music App目录第1章绪论 (1)1.1课题背景与意义 (1)1.2 研究现状 (1)1.3论文研究的主要内容 (2)第2章相关开发环境和技术的简介 (3)2.1开发环境的介绍 (3)2.2相关技术的介绍 (3)2.2.1 Java (3)2.2.2 Kotlin (4)2.2.3 Service (4)2.2.4 MVC开发模式 (4)2.3本章小结 (5)第3章需求分析 (6)3.1编写目的 (6)3.2总体需求 (6)3.3功能性需求 (6)3.3.1功能性需求 (6)3.4非功能性需求 (7)3.4.1界面美观需求 (7)3.4.2易操作性需求 (7)3.4.3界面交互需求 (7)3.5可行性分析 (8)3.5.1技术可行性分析 (8)3.5.2经济可行性分析 (8)3.5.3进度可行性分析 (9)3.5本章小结 (9)第4章系统的总体设计 (10)4.1系统的总体结构设计 (10)4.1.1音乐App功能结构图 (10)4.1.2功能结构描述 (11)4.2系统的开发模式设计 (13)4.3设备要求 (13)4.3.1 硬件设备 (13)4.3.2 支持软件 (14)4.4 音乐App的模块划分 (14)4.5 数据库的设计 (14)4.5.1表格: music (14)4.5.2表格: playlist (16)4.5.3表格: tasksmanagermodel (16)4.5.4表格: musictoplaylist (17)4.5.5表格: searchhistorybean (17)4.6业务流程与数据流程 (17)4.6.1业务流程 (17)4.6.2数据流程 (18)4.7界面布局与音频播放设计 (20)4.7.1界面布局设计 (20)4.7.2音频播放设计 (20)4.8本章小结 (21)第5章系统的详细设计 (22)5.1项目结构 (22)5.1.1 目录结构 (22)5.1.2 Service设计与实现 (23)5.2进入、启动与退出模块 (24)5.2.1 进入 (24)5.2.2 退出 (25)5.2.3启动 (25)5.3音乐播放模块 (26)5.3.1 音乐播放 (26)5.3.2 音乐暂停播放 (26)5.3.3 切换下一首与上一首 (27)5.3.4 收藏与添加到歌单 (27)5.3.5 改变播放模式 (28)5.3.6 下载歌曲 (29)5.3.7 音质切换 (30)5.3.8 进度条 (30)5.3.9 歌词 (31)5.3.10 封面播放转动 (32)5.3.11 播放更多 (33)5.4音乐搜索模块 (33)5.4.1 在线搜索 (34)5.4.2 搜索历史与删除搜索历史 (34)5.4.3 歌单搜索 (35)5.5通知栏模块 (35)5.5.1 通知栏 (36)5.5.2 桌面歌词 (36)5.6用户我的模块 (37)5.6.1 我的界面 (37)5.6.2 我的收藏 (38)5.6.3 下载 (39)5.6.4 本地歌单 (39)5.7发现模块 (40)5.7.1 歌手列表 (40)5.8更多模块 (41)5.8.1 设置 (41)5.8.2 退出音乐App (42)5.9 音乐API (42)5.9.1 API (42)5.9.2 DSbridge使用 (42)5.10本章小结 (43)第6章系统的测试 (44)6.1进入退出模块 (44)6.1.1进入退出模块测试 (44)6.2主页我的与发现模块 (44)6.2.1 我的模块测试 (45)6.2.2 发现模块测试 (45)6.3音乐播放模块 (46)6.3.1音乐播放模块测试 (47)6.4搜索音乐模块 (48)6.4.1 搜索音乐模块测试 (48)6.5设置模块 (49)6.5.1 设置模块测试 (49)6.6本章小结 (50)第7章系统特色和创新 (51)7.1系统特色 (51)7.2系统创新 (51)第8章总结 (52)参考文献 (53)声明致谢 (53)附录 (53)附录一:数据库设计脚本 (53)附录二:系统源码 (53)第1章绪论1.1 课题背景与意义进入21世纪以来,中国互联网技术的发展在生活的各个方面都在加速,到处都可以看到互联网的影子。

高中人工智能课程

高中人工智能课程
◆ 提高信息素养 ◆ 培养多种思维能力和多样化问题解决能力 ◆ 提高学生的逻辑思维能力 ◆ 促进个性化学习,培养创新人才 ◆ 激发对信息技术未来的追求
2、开设人工智能课程的必要性和可行性
◆ 人工智能在社会各个领域的应用越来越广 ,越来越多的人需要了解和 接触人工智能
◆ 目前我国已基本具备了实施人工智能基础教育的条件
Higher
标准等级 (Credit level) 计算 研究 或 信息系统 (Int 2)
Adv Higher
信息系统 (Higher)
必修单 计算机系统

软件开发
计算机项目
选修单 N/A 元
计算机系统 软件开发
人工智能 程序设计 计算机网络 多媒体技术
软件开发 (20 小时) 计算机项目 (60 小时)
多媒体 (AH) 自然语言处 理 (AH) 系统分析与 设计(AH)
单元评 价
考核
11 小时 1 小时30分
10小时45 分 20小时
6小时45分
2小时30分
2小时30分 1小时30分
14小时30分 18小时40分 2小时30分 2小时30分
英国James Gillespies 中学的AI教学
澳大利亚Marsden高中AI课程的设置
教科版《人工智能初步》
❖ 张剑平主编 ❖ 教育科学出版社 ❖ 2004
第1章 初识人工智能 1.1 什么是人工智能 1.2 人工智能可以为我们做什么 第2章 了解人工智能语言 2.1 了解Prolog 2.2 使用Prolog 2.3 人工智能语言 第3章 用计算机表示知识 3.1 知识及其类型 3.2 知识表示入门 3.3 知识表示的常用方法 第4章 用计算机推理 4.1 什么是专家系统 4.2 专家系统如何工作 4.3 如何开发专家系统 第5章 用智能搜索解决问题 5.1 可以通过搜索求解的问题 5.2 穷举式搜索 5.3 启发式搜索与博弈 第六章 人工智能的发展与未来
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、James简介Apache James(Java Apache Mail Enterprise Server)是Apache组织的子项目之一,完全采用纯Java技术开发,实现了SMTP、POP3与NNTP等多种邮件相关协议。

James也是一个邮件应用平台,可以通过Mailet扩充其功能,如Mail2SMS、Mail2Fax等。

James提供了比较完善的配置方案,尤其是关于邮件内容存储和用户信息存储部分,可以选择在文件、数据库或其他介质中保存。

James性能稳定、可配置性强,还是开源项目,所有源代码不存在版权问题,因此,James在项目中的应用日益广泛,现在常用版本为2.1,但最新版本2.3已经推出,在本文中,我们将仍以James2.1作为介绍蓝本。

二、一个假设的项目假设我要以James为邮件服务器,开发一套基于Web的邮件系统,就像,一样,要求实现在线注册、在线收发邮件等功能。

默认情况下,James的用户信息存储在文本中,虽然加了密,但由于文本存档不足,不便于查询及相应处理,幸好James提供了多种用户信息存储方案,如数据库存储,LDAP存储等。

这里我们将以数据库存储为例,讲解用户信息的管理,数据库采用MySQL。

当然你也可以采用LDAP,比如免费的OpenLDAP,功能非常强大。

三、用户信息的数据库存储James邮件用户的用户信息默认保存在apps\james\var\users目录下,通过修改配置文件apps\james\SAR-INF\config.xml,可以把用户信息保存到数据库中,配置方法如下:第一步:在MySQL中新建一个数据库mail,用户名root,密码为空;第二步:打开config.xml,找到<users-store>这一项,此面默认的内容为:需要修改为:通过修改,我们就把用户信息的存储介质从file改成了db,<sqlFile>是指明了在db中的数据表结构及相关数据库信息。

第三步:仍然是config.xml,找到<data-sources>项,默认内容为空,把此项内容修改为:<driver>是指MySQL的JDBC驱动,<dburl>指数据库的访问路径,IP后的mail 即MySQL中新建数据库名,接下来是用户名、密码及最大连接数。

至此,数据库配置完成,启动James,若正常无误,请通过telnet添加一个新用户,比如adduser holen 123456,然后检查MySQL中的mail数据库,下面将有一个表users,这是James根据file://conf/sqlResources.xml的内容创建的。

通过以上配置,James的用户信息就可以保存在数据库中了。

四、密码问题当你通过telnet添加新用户时,比如adduser holen 123456,你可以查看数据库中的记录,第一个字段是holen,第二字段是密码,但密码并非123456,而一串“乱码”(zhwQUMTwdMqWfm/h0biB51Gf)--这是加密码后的密码内容,再看后面的字段是“SHA”,显然用的是SHA加密方式。

通过telnet方式添加新用户,用户密码将自动加密,然后插入数据库中。

但通过telnet方式进行用户管理有着诸多不便,尽管你可以借助James的一个RMI 工具包,提高效率,但仍然没有本质改变,当需要用作商业用途时,你更不能要求你的客户熟记那一堆命令符。

一般我们可以做一个Web前端,通过网页形式,添加修改用户,界面友好,傻瓜化使用,如263或163一样。

若这样做,我们就需要直接操作数据库,添加用户记录或修改删除用户记录了。

但别忘了,James默认对用户密码是加密的,既然我们要直接操作数据库,那么我们只有两个选择:要么我们研究其密码机制,添加记录时,我们对新增用户的密码进行同样加密,要么我们去掉James的加密机制,使其明码保存。

幸好,这两种选择都是可行的。

我们从Apache网站下载James的源码包,下载后的文件为james-2.1-src.zip,接近8M,通过分析源码,我们发现,与用户密码相关的文件是DefaultUser.java,部分源码如下:第一个方法verifyPassword()是用来做密码认证,传入的参数是明文密码,通过DigestUtil.digestString()方法,转换成密文密码,然后与数据库中密码作比较,返回比较结果。

请注意这里的DigestUtil.digestString()方法,在后面还在提到。

第二个方法setPassword()是用于密码转换的,把明文转成密文,用的同样是DigestUtil.digestString()方法。

谈到这里,相信你应该知道怎么在自己的程序中进行密码转换和密码认证了吧!其实并不是要你自己去写一个SHA的加密算法,既然James已经提供了此功能,你调用便是了。

还有一种情况,开发者需要在数据库中必须用明文保存密码,这样就不必在自己写的程序中进行密码转换了,而且当多个应用系统采用统一用户模型时,最好只有一个用户实例。

要实现这个需求,就只能修改James源代码了,把verifyPassword()方法和setPassword()改成:其实就是把转换过程去掉,保存和认证就都采用明文进行了。

你要是觉得SHA方式不妥,也可以挂接别的加密方式,同样是修改这两个方法。

注意,当你修改了James的源码后,你需要用Ant重新build James项目,build 后将在james-2.1-src\dist\james-2.1\apps下面找到新生成的james.sar文件。

把该文件覆盖James原来james.sar,并删除与james.sar同级的james目录,重启动james即可。

建议保留原来的config.xml,免得又配一次。

通过以上探讨,我们明白了如何通过Web方式进行用户注册和用户登记等。

需要说明一点是,James自动生成的users表中只有7个字段,而且都是系统需要使用的。

一般注册时需要输入的信息项比较多,这时建议开发者自己再建一个新表USERINFO,用username把两个表关联起来,不建议修改users表的内容(如果想试试,请参考file://conf/sqlResources.xml)。

五、基于James的邮件系统开发方案简述James运行在Win2000上,客户端采用Web界面(仿263风格)、Foxmail或OutLook Express,该系统主要面向1000人以下的中小企业。

基于James的邮件开发,主要包括两个方面:一是邮件系统的后台管理,另一个是客户端应用系统。

后台管理的功能主要包括用户的添加、删除、修改、用户使用空间指配、邮件备份等。

Web客户端功能包括收件箱、发邮件、发件箱、草稿箱、回收站、地址本、自定义文件夹、配置等。

用户信息存储在MySQL数据库中,邮件内容默认存储在文档中。

系统采用Struts架构,运行环境为Apache1.3+Tomcat4.1,数据库连接池采用Tomcat自带的DBCP。

系统开发预计需60人天完成,开发人员需要掌握Struts和JavaMail。

压力测试超过50个并发。

六、参考资料James 2.1 Documentation附:通过JMI管理用户import com.ritetone.util.Config;import com.ritetone.util.logger.Logger;import java.io.PrintStream;import java.rmi.Naming;import java.rmi.RemoteException;import java.util.ArrayList;import erManager;public class MailRmiClient{private String rmiURL;private UserManager userManager;public MailRmiClient(){try{rmiURL = Config.getProperty("webmail", "rmiinvoker");userManager = (UserManager)Naming.lookup(rmiURL);}catch(Exception e){Logger.error("Class MailRmiClient Method constructor() throw Exception ", e);}}public boolean addUser(String username, String password)throws RemoteException{boolean rtn = true;rtn = userManager.addUser(username, password);if(rtn)("Class MailRmiClient.java Method addUser() adding user " + username + " ok ");elseLogger.error("Class MailRmiClient.java Method addUser() adding user " + username + " error ");return rtn;}public boolean deleteUser(String username)throws RemoteException{boolean rtn = true;try{rtn = userManager.deleteUser(username);}catch(Exception e){rtn = false;Logger.error("Class MailRmiClient.java Method deleteUser() remove user " + username + " - " + e.getMessage());}return rtn;}public boolean verifyUser(String username)throws RemoteException{return userManager.verifyUser(username);}public int getCountUsers()throws RemoteException{return userManager.getCountUsers();}public ArrayList getUserList()throws RemoteException{return userManager.getUserList();}public boolean setPassword(String username, String password) throws RemoteException{boolean rtn = true;rtn = userManager.setPassword(username, password);if(rtn)("Class MailRmiClient Method setPassword() resetting password for user " + username + " ok ");elseLogger.error("Class MailRmiClient Method setPassword() resetting password for user " + username + " error ");return rtn;}。

相关文档
最新文档