我举个例子,比如一个entity beans 中的持久性数据发生变化 它想通知所有的 session beans 的实例来做相应变化,应该如何实现?
解决方案 »
- 请问 各位 学java ee该怎么学 ???
- js 获取隐藏域中数组的问题
- hibernate运行出现fail-safe cleanup (collections)信息是怎么一回事
- 关于MyEclipse调试进入WebappClassLoader的问题(已解决问题需结贴,散分啦!)
- 尚学堂全套j2ee
- 面试j2ee,为何问的问题都是j2se的?
- Java开源--常见J2EE框架简介
- 使用xfire调用webservice,如果webservice在本地,如何写地址可使效率最高?我感觉LocalTransport始终用不成功。
- org.xml.sax.XMLReader类的setFeature方法有什么作用
- 谁有j2ee开发ejb的经验,编译部署没问题,为什么测试就出错?
- ssh与mybatis整合之后单元测试出错
- 关于jboss的一个问题
import java.util.*;import com.lanxin.newstar.dto.*;
import com.lanxin.newstar.dto.newstar.*;
import com.lanxin.newstar.exception.*;
import com.lanxin.newstar.util.PageRoll;public interface NewStarSession extends javax.ejb.EJBObject {
* Account Interface about Students' Payments Info
* getAccount() and saveAccount() can be applied to paginate and display
* students' payments info, and dispose this interface operations at the
* same time.
* 1. getAccount(): Pick out all notes from account table in newstart database
* ,return a object of AccountDTO.
* 2. saveAccount(): Dispose inputing specially AccountDTO paramenter to
* update data in account tab le
*/
public AccountDTO getAccount(AccountDTO accountDTO) throws RemoteException, NSException;
public void saveAccount(AccountDTO accountDTO) throws RemoteException, NSException;}package com.lanxin.newstar.ejb.session;import javax.ejb.*;
import java.util.*;
import java.rmi.*;public interface NewStarSessionHome extends javax.ejb.EJBHome {
public NewStarSession create() throws CreateException, RemoteException;
}package com.lanxin.newstar.ejb.session;import java.io.*;
import java.math.*;
import java.rmi.RemoteException;
import java.util.*;import javax.ejb.*;
import javax.transaction.UserTransaction;import com.lanxin.dto.BaseDTO;
import com.lanxin.newstar.dto.*;
import com.lanxin.newstar.util.EJBHomeUtil;
import com.lanxin.newstar.ejb.account.*;
import com.lanxin.newstar.ejb.career.*;
import com.lanxin.newstar.ejb.location.*;
import com.lanxin.newstar.ejb.user.*;
import com.lanxin.newstar.exception.*;
import com.lanxin.newstar.util.*;
import com.lanxin.newstar.dto.newstar.*;
import com.lanxin.newstar.ejb.newstar.*;public class NewStarSessionBean implements SessionBean, Serializable {
public void saveAccount(AccountDTO accountDTO) throws RemoteException, NSException{
AccountHome accountHome = (AccountHome)this.getHome(
"com.lanxin.newstar.ejb.account.AccountHome");
Account account = null;
System.out.println("NewStarSession saveAccount() called");
System.out.println("accountDTO id===================" + accountDTO.getId());
try{
account = accountHome.findByPrimaryKey(new AccountPK(new BigDecimal(accountDTO.getId())));
account.setBz1(accountDTO.getBz1());
account.setBz2(accountDTO.getBz2());
account.setBz3(accountDTO.getBz3());
account.setBz4(accountDTO.getBz4());
account.setBz5(accountDTO.getBz5());
account.setBz6(accountDTO.getBz6());
account.setBz7(accountDTO.getBz7());
account.setBz8(accountDTO.getBz8());
account.setBz9(accountDTO.getBz9());
account.setBz10(accountDTO.getBz10());
account.setBz11(accountDTO.getBz11());
account.setBz12(accountDTO.getBz12());
account.setBz13(accountDTO.getBz13());
account.setFstletterZx(JspUtil.getDouble(accountDTO.getFstletterZx()));
account.setGreencardZx(JspUtil.getDouble(accountDTO.getGreencardZx()));
account.setInterviewZx(JspUtil.getDouble(accountDTO.getInterviewZx()));
account.setMoneyFstletter(JspUtil.getDouble(accountDTO.getMoneyFstletter()));
account.setMoneyGreencard(JspUtil.getDouble(accountDTO.getMoneyGreencard()));
account.setMoneyInterview(JspUtil.getDouble(accountDTO.getMoneyInterview()));
account.setMoneyQyr(JspUtil.getDouble(accountDTO.getMoneyQyr()));
account.setMoneyReturn(JspUtil.getDouble(accountDTO.getMoneyReturn()));
account.setMoneySecletter(JspUtil.getDouble(accountDTO.getMoneySecletter()));
account.setMoneyTotal(JspUtil.getDouble(accountDTO.getMoneyTotal()));
account.setQyrZx(JspUtil.getDouble(accountDTO.getQyrZx()));
account.setReason(JspUtil.getString(account.getReason()));
account.setSecletterZx(JspUtil.getDouble(accountDTO.getSecletterZx()));
account.setTotalZx(JspUtil.getDouble(accountDTO.getTotalZx()));
}catch(Exception e){
System.out.println("Warning,the method of saveAccount() is wrong in NewstarSessionBean!");
e.printStackTrace();
throw NSExceptionUtil.getNSException(
"Warning,the method of saveAccount() is wrong in NewstarSessionBean!");
} }
private EJBLocalHome getHome(String jndi)
{
EJBHomeUtil ejbHome = new EJBHomeUtil();
EJBLocalHome localHome = (EJBLocalHome)ejbHome.getEJBHome(jndi);
return localHome;
}
private void writeObject(ObjectOutputStream oos) throws IOException {
oos.defaultWriteObject();
}
private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException {
ois.defaultReadObject();
}
}
int id = 0;//主键Key
java.lang.String name = "";
java.lang.String moneyTotal = "";
java.lang.String bz1 = "";
java.lang.String totalZx = "";
java.lang.String bz2 = "";
java.lang.String moneyQyr = "";
java.lang.String bz3 = "";
java.lang.String qyrZx = "";
java.lang.String bz4 = "";
java.lang.String moneyFstletter = "";
java.lang.String bz5 = "";
java.lang.String fstletterZx = "";
java.lang.String bz6 = "";
java.lang.String moneySecletter = "";
java.lang.String bz7 = "";
java.lang.String secletterZx = "";
java.lang.String bz8 = "";
java.lang.String moneyInterview = "";
java.lang.String bz9 = "";
java.lang.String interviewZx = "";
java.lang.String bz10 = "";
java.lang.String moneyGreencard = "";
java.lang.String bz11 = "";
java.lang.String greencardZx = "";
java.lang.String bz12 = "";
java.lang.String moneyReturn = "";
java.lang.String bz13 = "";
java.lang.String reason = ""; public void setId(int id) {
this.id = id;
}
public void setName(java.lang.String name) {
this.name = name;
}
public void setMoneyTotal(java.lang.String moneyTotal) {
this.moneyTotal = moneyTotal;
}
public void setBz1(java.lang.String bz1) {
this.bz1 = bz1;
}
public void setTotalZx(java.lang.String totalZx) {
this.totalZx = totalZx;
}
public void setBz2(java.lang.String bz2) {
this.bz2 = bz2;
}
public void setMoneyQyr(java.lang.String moneyQyr) {
this.moneyQyr = moneyQyr;
}
public void setBz3(java.lang.String bz3) {
this.bz3 = bz3;
}
public void setQyrZx(java.lang.String qyrZx) {
this.qyrZx = qyrZx;
}
public void setBz4(java.lang.String bz4) {
this.bz4 = bz4;
}
public void setMoneyFstletter(java.lang.String moneyFstletter) {
this.moneyFstletter = moneyFstletter;
}
public void setBz5(java.lang.String bz5) {
this.bz5 = bz5;
}
public void setFstletterZx(java.lang.String fstletterZx) {
this.fstletterZx = fstletterZx;
}
public void setBz6(java.lang.String bz6) {
this.bz6 = bz6;
}
public void setMoneySecletter(java.lang.String moneySecletter) {
this.moneySecletter = moneySecletter;
}
public void setBz7(java.lang.String bz7) {
this.bz7 = bz7;
}
public void setSecletterZx(java.lang.String secletterZx) {
this.secletterZx = secletterZx;
}
public void setBz8(java.lang.String bz8) {
this.bz8 = bz8;
}
public void setMoneyInterview(java.lang.String moneyInterview) {
this.moneyInterview = moneyInterview;
}
public void setBz9(java.lang.String bz9) {
this.bz9 = bz9;
}
public void setInterviewZx(java.lang.String interviewZx) {
this.interviewZx = interviewZx;
}
public void setBz10(java.lang.String bz10) {
this.bz10 = bz10;
}
public void setMoneyGreencard(java.lang.String moneyGreencard) {
this.moneyGreencard = moneyGreencard;
}
public void setBz11(java.lang.String bz11) {
this.bz11 = bz11;
}
public void setGreencardZx(java.lang.String greencardZx) {
this.greencardZx = greencardZx;
}
public void setBz12(java.lang.String bz12) {
this.bz12 = bz12;
}
public void setMoneyReturn(java.lang.String moneyReturn) {
this.moneyReturn = moneyReturn;
}
public void setBz13(java.lang.String bz13) {
this.bz13 = bz13;
}
public void setReason(java.lang.String reason) {
this.reason = reason;
} public int getId() {
return id;
}
public java.lang.String getName() {
return name;
}
public java.lang.String getMoneyTotal() {
return this.moneyTotal;
}
public java.lang.String getBz1() {
return bz1;
}
public java.lang.String getTotalZx() {
return this.totalZx;
}
public java.lang.String getBz2() {
return bz2;
}
public java.lang.String getMoneyQyr() {
return this.moneyQyr;
}
public java.lang.String getBz3() {
return bz3;
}
public java.lang.String getQyrZx() {
return this.qyrZx;
}
public java.lang.String getBz4() {
return bz4;
}
public java.lang.String getMoneyFstletter() {
return this.moneyFstletter;
}
public java.lang.String getBz5() {
return bz5;
}
public java.lang.String getFstletterZx() {
return this.fstletterZx;
}
public java.lang.String getBz6() {
return bz6;
}
public java.lang.String getMoneySecletter() {
return this.moneySecletter;
}
public java.lang.String getBz7() {
return bz7;
}
public java.lang.String getSecletterZx() {
return this.secletterZx;
}
public java.lang.String getBz8() {
return bz8;
}
public java.lang.String getMoneyInterview() {
return this.moneyInterview;
}
public java.lang.String getBz9() {
return bz9;
}
public java.lang.String getInterviewZx() {
return this.interviewZx;
}
public java.lang.String getBz10() {
return bz10;
}
public java.lang.String getMoneyGreencard() {
return this.moneyGreencard;
}
public java.lang.String getBz11() {
return bz11;
}
public java.lang.String getGreencardZx() {
return this.greencardZx;
}
public java.lang.String getBz12() {
return bz12;
}
public java.lang.String getMoneyReturn() {
return this.moneyReturn;
}
public java.lang.String getBz13() {
return bz13;
}
public java.lang.String getReason() {
return reason;
}
}
import java.io.Serializable;public class BaseDTO implements Serializable
{
public final static int INS = 0;
public final static int UPD = 2;
public final static int DEL = 3; //数据是否
public static int EXIST = 0; //操作状态
private int dto = INS; /**
* 设置操作状态
* @param dto
*/
public void setDTO(int dto)
{
this.dto = dto;
} /**
* 获取操作状态
* @return
*/
public int getDTO()
{
return this.dto;
}
}
我想你的问题是不是当数据库中的数据发生变化时怎么通知sessionbeans
session beans 在创建entity beans 时注册为事件监听者,这样当其它session beans 更新数据时就会通知这个session beans 了
简单的化通过该class的一个bool属性的变化事件来实现;
复杂的化该class可以设计成一个事件发布和监听的适配类