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