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

📄 registerbean.java~

📁 21天精通Java,这是一本英文书
💻 JAVA~
字号:
package agency;

import java.rmi.*;
import java.sql.*;
import java.util.*;
import javax.ejb.*;
import javax.naming.* ;
import javax.sql.*;
import javax.jms.*;

import data.*;

public class RegisterBean implements SessionBean
{
	private ApplicantLocalHome applicantHome;
	private ApplicantLocal applicant;
	private ApplicantSkillLocalHome applicantSkillHome;
	private MessageSender messageSender;

	public void updateDetails (String name, String email, String location, String summary, String[] skills) {
		try {
			applicant.setEmail(email);
			applicant.setSummary(summary);
			applicant.setLocation(location);
			Collection res = new ArrayList();
			Collection col = applicantSkillHome.findByApplicant(applicant.getLogin());
			Iterator it = col.iterator();
			while (it.hasNext())
			{
				ApplicantSkillLocal skill = (ApplicantSkillLocal)it.next();
				skill.remove();
			}
			for (int i=0; i<skills.length; i++)
				applicantSkillHome.create(applicant.getLogin(),skills[i]);
			messageSender.sendApplicant(applicant.getLogin(),false);
		}
		catch (CreateException ex) {
			ctx.setRollbackOnly();
			error ("Error creating new skill ",ex);
		}
		catch (RemoveException ex) {
			ctx.setRollbackOnly();
			error ("Error removing old skill ",ex);
		}
		catch (FinderException ex) {
			ctx.setRollbackOnly();
			error ("Error finding old skill ",ex);
		}
		catch (JMSException ex) {
			ctx.setRollbackOnly();
			error ("Error sending applicant match message",ex);
		}
	}

	public String getLogin() {
		return applicant.getLogin();
	}

	public String getName() {
		return applicant.getName();
	}

	public String getEmail() {
		return applicant.getEmail();
	}

	public String getLocation() {
		return applicant.getLocation();
	}

	public String getSummary() {
		return applicant.getSummary();
	}

	public String[] getSkills() {
		try {
			Collection col = applicantSkillHome.findByApplicant(applicant.getLogin());
			String[] res = new String[col.size()];
			int i = 0;
			Iterator it = col.iterator();
			while (it.hasNext())
			{
				Object o = it.next();
				ApplicantSkillLocal key = (ApplicantSkillLocal)o;
				res[i++] = key.getSkill();
			}
			return res;
		}
		catch (FinderException ex) {
			error ("Error finding old skill ",ex);
		}
		return null;
	}

	private void error (String msg, Exception ex) {
		String s = "RegisterBean: "+msg + "\n" + ex;
		System.out.println(s);
		throw new EJBException(s,ex);
	}

	// EJB methods start here
	
	public void ejbCreate (String login) throws CreateException {
		try {
			if (ctx.isCallerInRole("admin") ||
				ctx.getCallerPrincipal().getName().equals(login)) {
				applicant = applicantHome.findByPrimaryKey(login);
			}
			else
				throw new CreateException ("Applicant name does not match principal name");
		}
		catch (FinderException ex) {
			error ("Cannot find applicant: "+login,ex);
		}
	}

	public void ejbActivate(){
	}

	public void ejbPassivate(){
	}

	public void ejbRemove(){
		applicant = null;
		applicantHome = null;
		applicantSkillHome = null;
	}

	private SessionContext ctx;
	
	public void setSessionContext(SessionContext ctx) {
		this.ctx = ctx;
		InitialContext ic = null;
		try {
			ic = new InitialContext();
			applicantHome = (ApplicantLocalHome)ic.lookup("java:comp/env/ejb/ApplicantLocal");
		}
		catch (NamingException ex) {
			error("Error connecting to java:comp/env/ejb/ApplicantLocal:",ex);
		}
		try {
			applicantSkillHome = (ApplicantSkillLocalHome)ic.lookup("java:comp/env/ejb/ApplicantSkillLocal");
		}
		catch (NamingException ex) {
			error("Error connecting to java:comp/env/ejb/ApplicantSkillLocal:",ex);
		}
		try {
			messageSender = new MessageSender("java:comp/env/jms/QueueConnectionFactory","java:comp/env/jms/applicantQueue");
		}
		catch (NamingException ex) {
			error("Error connecting to java:comp/env/jms/QueueConnectionFactory or java:comp/env/jms/applicantQueue:",ex);
		}
		catch (JMSException ex) {
			error("Error connecting to JMS queue",ex);
		}
	}
}

⌨️ 快捷键说明

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