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

📄 applicantmatch.java

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

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

public class ApplicantMatch implements MessageDrivenBean, MessageListener
{
    private ApplicantLocalHome applicantHome;
    private JobLocalHome jobHome;
    private MatchedLocalHome matchedHome;

    public void onMessage(Message message) {
        String login = null;
        if (!(message instanceof TextMessage)) {
            System.out.println("ApplicantMatch: bad message:" + message.getClass());
            return;
        }
        try {
            login = ((TextMessage)message).getText();
            System.out.println("ApplicantMatch: "+login+" - "+message.getBooleanProperty("NewApplicant"));
            if (! message.getBooleanProperty("NewApplicant")) {
                matchedHome.deleteByApplicant(login);
            }
        }
        catch (JMSException ex) {
            error ("Error getting JMS property: NewApplicant",ex);
        }
        try {
            ApplicantLocal applicant = applicantHome.findByPrimaryKey(login);
            LocationLocal applicantLocation = applicant.getLocation();
            String location = "";
            if (applicantLocation!=null)
                location = applicantLocation.getName();
            Collection skills = applicant.getSkills();
            Collection appSkills = new ArrayList();
            Iterator appIt = skills.iterator();
            while (appIt.hasNext()) {
                SkillLocal as = (SkillLocal)appIt.next();
                appSkills.add(as.getName());
            }
            Collection col = jobHome.findByLocation(location);
            Iterator jobsIter = col.iterator();
            while (jobsIter.hasNext()) {
                JobLocal job = (JobLocal)jobsIter.next();
                Collection jobSkills = job.getSkills();
                int skillMatch = 0;
                Iterator jobSkillIter = jobSkills.iterator();
                while (jobSkillIter.hasNext()) {
                    SkillLocal jobSkill = (SkillLocal)jobSkillIter.next();
                    if (appSkills.contains(jobSkill.getName()))
                       skillMatch++;
                }
                if (jobSkills.size() > 0 && skillMatch == 0)
                    continue;
                boolean exact = skillMatch == jobSkills.size();
                MatchedPK key = new MatchedPK(login,job.getRef(),job.getCustomer());
                try {
                    matchedHome.create(key.getApplicant(),key.getJob(),key.getCustomer(), exact);
                }
                catch (CreateException ex) {
                    System.out.println("ApplicantMatch: failed to create matched entry: "+key);
                }
            }
        }
        catch (FinderException ex) {
            System.out.println("ApplicantMatch: failed to find applicant data: "+login);
        }
        catch (RuntimeException ex) {
            System.out.println("ApplicantMatch: "+ex);
            ex.printStackTrace();
            throw ex;
        }
    }

    // EJB methods start here

    public void setMessageDrivenContext(MessageDrivenContext 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 {
            jobHome = (JobLocalHome)ic.lookup("java:comp/env/ejb/JobLocal");
        }
        catch (NamingException ex) {
            error("Error connecting to java:comp/env/ejb/JobLocal:",ex);
        }
        try {
            matchedHome = (MatchedLocalHome)ic.lookup("java:comp/env/ejb/MatchedLocal");
        }
        catch (NamingException ex) {
            error("Error connecting to java:comp/env/ejb/MatchedLocal:",ex);
        }
    }

    public void ejbCreate(){
    }

    public void ejbRemove(){
        applicantHome = null;
        jobHome = null;
        matchedHome = null;
    }

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


⌨️ 快捷键说明

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