📄 advertisejobbean.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 + -