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

📄 advertisejobbean.java

📁 21天精通Java,这是一本英文书
💻 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 AdvertiseJobBean implements SessionBean
{
	private JobLocalHome jobHome;
	private JobLocal job;
	private JobSkillLocalHome jobSkillHome;
	private MessageSender messageSender;

	public void updateDetails (String description, String location, String[] skills) {
        if (skills == null)
        	skills = new String[0];
		try {
			job.setDescription(description);
			job.setLocation(location);
			Collection res = new ArrayList();
			Collection col = jobSkillHome.findByJob(job.getRef(),job.getCustomer());
			Iterator it = col.iterator();
			while (it.hasNext())
			{
				JobSkillLocal skill = (JobSkillLocal)it.next();
				skill.remove();
			}
			for (int i=0; i<skills.length; i++)
				jobSkillHome.create(job.getRef(),job.getCustomer(),skills[i]);
			messageSender.sendJob(job.getRef(),job.getCustomer(),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 getRef() {
		return job.getRef();
	}
	
	public String getCustomer() {
		return job.getCustomer();
	}

	public String getDescription() {
		return job.getDescription();
	}
	
	public String getLocation() {
		return job.getLocation();
	}
	
	public String[] getSkills() {
		try {
			Collection col = jobSkillHome.findByJob(job.getRef(),job.getCustomer());
			String[] res = new String[col.size()];
			int i = 0;
			Iterator it = col.iterator();
			while (it.hasNext())
			{
				Object o = it.next();
				JobSkillLocal key = (JobSkillLocal)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 = "AdvertiseJobBean: "+msg + "\n" + ex;
		System.out.println(s);
		throw new EJBException(s,ex);
	}

	// EJB methods start here
	
	public void ejbCreate (String ref, String customer) throws CreateException {
		try {
			job = jobHome.findByPrimaryKey(new JobPK(ref,customer));
		}
		catch (FinderException ex) {
			error ("Cannot find Job: "+ref+","+customer,ex);
		}
	}

	public void ejbActivate(){
	}

	public void ejbPassivate(){
	}

	public void ejbRemove(){
		job = null;
		jobHome = null;
		jobSkillHome = null;
	}

	private SessionContext ctx;
	
	public void setSessionContext(SessionContext ctx) {
		this.ctx = ctx;
		InitialContext ic = null;
		try {
			ic = new InitialContext();
			jobHome = (JobLocalHome)ic.lookup("java:comp/env/ejb/JobLocal");
		}
		catch (NamingException ex) {
			error("Error connecting to java:comp/env/ejb/JobLocal:",ex);
		}
		try {
			jobSkillHome = (JobSkillLocalHome)ic.lookup("java:comp/env/ejb/JobSkillLocal");
		}
		catch (NamingException ex) {
			error("Error connecting to java:comp/env/ejb/JobSkillLocal:",ex);
		}
		try {
			messageSender = new MessageSender("java:comp/env/jms/QueueConnectionFactory","java:comp/env/jms/jobQueue");
		}
		catch (NamingException ex) {
			error("Error connecting to java:comp/env/jms/QueueConnectionFactory or java:comp/env/jms/jobQueue:",ex);
		}
		catch (JMSException ex) {
			error("Error connecting to JMS queue",ex);
		}
	}
}

⌨️ 快捷键说明

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