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

📄 registerbean.java

📁 21天学通J2EE的例子4
💻 JAVA
字号:
package agency;

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

import data.*;

public class RegisterBean implements SessionBean
{
	private ApplicantLocalHome applicantHome;
	private SkillLocalHome skillHome;
	private LocationLocalHome locationHome;
	private MessageSender messageSender;

	private ApplicantLocal applicant;

	public void updateDetails (String name, String email, String locationName, String summary, String[] skillNames) {
        if (skillNames == null)
        	skillNames = new String[0];

		List skillList;
		try {
			skillList = skillHome.lookup(Arrays.asList(skillNames));
		} catch(FinderException ex) {
			error("Invalid skill", ex); // throws an exception
			return;
		}

		LocationLocal location = null;
		if (locationName != null) {
			try {
				location = locationHome.findByPrimaryKey(locationName);
			} catch(FinderException ex) {
				error("Invalid location", ex); // throws an exception
				return;
			}
		}
		applicant.setName(name);
		applicant.setEmail(email);
		applicant.setLocation(location);
		applicant.setSummary(summary);
		applicant.setSkills( skillList );
		try {
			messageSender.sendApplicant(applicant.getLogin(),false);
		}
		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() {
		LocationLocal location = applicant.getLocation();
		return (location!=null)?location.getName():null;
	}

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

	public String[] getSkills() {
		Collection col = applicant.getSkills();
		String[] res = new String[col.size()];
		int i = 0;
		for(Iterator iter = col.iterator(); iter.hasNext(); ) {
			Object o = iter.next();
			SkillLocal skill = (SkillLocal)o;
			res[i++] = skill.getName();
		}
		return res;
	}

	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 {
			applicant = applicantHome.findByPrimaryKey(login);
		}
		catch (FinderException ex) {
			error ("Cannot find applicant: "+login,ex);
		}
	}

	public void ejbActivate(){
	}

	public void ejbPassivate(){
	}

	public void ejbRemove(){
		applicant = null;
		applicantHome = null;
		try {
			messageSender.close();
		}
		catch (JMSException ex) {
			error("Error closing down the queue",ex);
		}
	}

	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");
			skillHome = (SkillLocalHome)ic.lookup("java:comp/env/ejb/SkillLocal");
			locationHome = (LocationLocalHome)ic.lookup("java:comp/env/ejb/LocationLocal");
			messageSender = new MessageSender("java:comp/env/jms/QueueConnectionFactory","java:comp/env/jms/applicantQueue");
		}
		catch (JMSException ex) {
			error("Error looking up depended JMS Queue",ex);
		}
		catch (NamingException ex) {
			error("Error looking up depended EJB or resource",ex);
		}
	}
}

⌨️ 快捷键说明

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