📄 advertisebean.java
字号:
package agency;
import java.rmi.*;
import java.sql.*;
import java.util.*;
import javax.ejb.*;
import javax.naming.* ;
import javax.sql.*;
import data.*;
public class AdvertiseBean implements SessionBean
{
private JobLocalHome jobHome;
private JobSkillLocalHome jobSkillHome;
private CustomerLocalHome customerHome;
private CustomerLocal customer;
public void updateDetails (AdvertiseValueObject details) {
customer.setName(details.getName());
customer.setEmail(details.getEmail());
customer.setAddress(details.getAddress());
}
public AdvertiseValueObject getDetails() {
AdvertiseValueObject details = new AdvertiseValueObject();
details.setLogin(customer.getLogin());
details.setName(customer.getName());
details.setEmail(customer.getEmail());
details.setAddress(customer.getAddress());
return details;
}
public String[] getJobs() {
try {
Collection col = jobHome.findByCustomer(customer.getLogin());
String[] res = new String[col.size()];
Iterator it = col.iterator();
int i = 0;
while (it.hasNext()) {
JobLocal job = (JobLocal)it.next();
res[i++] = job.getRef();
}
return (res);
}
catch (FinderException ex) {
error("Cannot find jobs for customer: "+customer.getLogin(),ex);
}
return null;
}
public void createJob (String ref) throws DuplicateException, CreateException {
try {
jobHome.create(ref,customer.getLogin());
}
catch (CreateException ex) {
error("Cannot find job: "+ref,ex);
}
}
public void deleteJob (String ref) throws NotFoundException {
try {
jobSkillHome.deleteByJob(ref,customer.getLogin());
jobHome.remove(new JobPK(ref,customer.getLogin()));
}
catch (RemoveException ex) {
error("Cannot remove job: "+ref,ex);
}
}
private void error (String msg, Exception ex) {
String s = "AdvertiseBean: "+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)) {
customer = customerHome.findByPrimaryKey(login);
}
else
throw new CreateException ("Customer name does not match principal name");
}
catch (FinderException ex) {
error("Cannot find customer: "+login,ex);
}
}
public void ejbActivate(){
}
public void ejbPassivate(){
}
public void ejbRemove(){
}
private SessionContext ctx;
public void setSessionContext(SessionContext ctx) {
this.ctx = ctx;
InitialContext ic=null;
try {
ic = new InitialContext();
customerHome = (CustomerLocalHome)ic.lookup("java:comp/env/ejb/CustomerLocal");
}
catch (NamingException ex) {
error("Error connecting to java:comp/env/ejb/CustomerLocal:",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 {
jobSkillHome = (JobSkillLocalHome)ic.lookup("java:comp/env/ejb/JobSkillLocal");
}
catch (NamingException ex) {
error("Error connecting to java:comp/env/ejb/JobSkillLocal:",ex);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -