⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server.java

📁 一个基于RMI的分布式会议议程管理服务系统
💻 JAVA
字号:
package server;

import java.util.Date;

import agenda.AgendaManager;

import server.exception.MeetingInvalidException;
import server.exception.TimeInvalidException;
import server.exception.MeetingNotExsitedException;
import server.exception.PasswordErrorException;
import server.exception.UserIsExsitedException;
import server.exception.UserInvalidException;
import server.meeting.*;
import server.user.User;
import server.user.UserManager;

public class Server extends AgendaManager {

	UserManager userManager;
	MeetingManager meetingManager;

	public Server() throws java.rmi.RemoteException {

	}

	/**
	 * 注册成功,则返回成功消息
	 * 
	 * 
	 */
	public synchronized String register(String userName, String password)
			throws java.rmi.RemoteException, UserIsExsitedException {
		User user = new User(userName, password);
		userManager = UserManager.getUserInstance();
		String message = "";
		try {
			if (userManager.isRegisteredUser(user)) {
				message = "用户已存在";
			} else {
				userManager.userRegister(user);
				message = "注册成功";
			}
		} catch (Exception exc) {

		}
		return message;
	}

	/**
	 * 增加会议成功,则返回成功消息
	 * 
	 * 
	 * 
	 */
	public synchronized String add(String userName, String password,
			String other, Date startTime, Date endTime, String title)
			throws UserInvalidException, TimeInvalidException,
			java.rmi.RemoteException, PasswordErrorException,
			MeetingInvalidException {
		AddMeeting addMeeting = new AddMeeting(userName, password, other,
				startTime, endTime, title);
		String message = addMeeting.run();
		return message;
	}

	/**
	 * 查询一段时间内某用户的会议安排
	 * 
	 */
	public synchronized java.util.List<String> query(String userName,
			String password, Date startTime, Date endTime)
			throws java.rmi.RemoteException {
		userManager = UserManager.getUserInstance();
		meetingManager = MeetingManager.getUserInstance();
		java.util.List<String> meetings = null;
		User user = null;
		TimeProcess timeInterval = null;
		try {
			user = userManager.userRegister(userName, password);
			timeInterval = new TimeProcess(startTime, endTime);
			meetings = new java.util.ArrayList<String>();
			java.util.List<Meeting> tempList = meetingManager.queryMeeting(
					user, timeInterval);
			if (user == null) {
				meetings.add(0, "用户不存在或者密码不正确");
			} else if (tempList.isEmpty()) {
				meetings.add(0, "用户" + user.getUserName() + "没有会议记录");
			} else {
				meetings.add(0, "用户" + userName + "在指定时间段内的会议记录为: ");

				for (int index = 0; index < tempList.size(); index++) {
					meetings.add(index + 1, tempList.get(index).toString());
				}
			}
		} 
		catch (Exception exc){

		}
		return meetings;
	}

	/**
	 * 删除某用户的一个会议
	 * 
	 */
	public synchronized String delete(String userName, String password,
			String meetingID) throws java.rmi.RemoteException {
		meetingManager = MeetingManager.getUserInstance();
		String message = "";
		try {
			userManager.userRegister(userName, password);
			message = meetingManager.deleteMeeting(meetingID);
		}
		catch (PasswordErrorException e1) {
			message = "用户不存在或者密码不正确";
		} catch (UserInvalidException e1) {
			message = "用户不存在或者密码不正确";
		} catch (MeetingNotExsitedException e) {
			message = "该用户没有编号为" + meetingID + "的会议记录";
		}
		return message;
	}

	/**
	 * 清除某用户的所有会议
	 * 
	 */
	public synchronized String clear(String userName, String password)
			throws java.rmi.RemoteException {
		meetingManager = MeetingManager.getUserInstance();
		User user = null;
		String message = "";
		try {
			user = userManager.userRegister(userName, password);
			message = meetingManager.clearMeeting(user);
		}

		catch (PasswordErrorException e1) {
			message = "用户不存在或者密码不正确";
		} catch (UserInvalidException e1) {
			message = "用户不存在或者密码不正确";
		}
		return message;
	}

	public static void main(String args[]) {
		if (args.length == 0) {
			System.out.println("需要一个命令行参数: 程序运行的端口号: 1099");
		} else {
			try {
				int port = Integer.parseInt(args[0]);
				java.rmi.registry.LocateRegistry.createRegistry(port);
				agenda.AgendaManager manager = new Server();
				java.rmi.Naming.rebind("AgendaManager", manager);
				System.out.println("议程管理服务程序已准备就绪 ...");
			} catch (NumberFormatException mf) {
				mf.printStackTrace();
			} catch (Exception exc) {
				exc.printStackTrace();
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -