使用 CBE 和 JAXB 集成实现对 WebSphere Application Server 上应用程序的业务数据监控
2009-10-28 00:00:00 来源:WEB开发网定义拦截器;
在拦截器中定义 CBE;
另外,为方便理解,本文假定为以下业务场景:
客户通过注册系统注册账号;
客户通过客户端提交注册信息;
客户端更新数据库,同时将注册信息以 CBE 发送到指定队列。
为 JavaBean 增加 JAXB Annotation 修饰符
EJB3 应用程序中的 JavaBean 定义了业务过程中所需的元数据格式,其中包含了一些必要的数据属性,而我们为了能够通过 CBE 来查看具体的业务数据,我们就要为这些数据属性添加 JAXB Annotation 来进行序列化修饰,为此,我们可以用 JAXB 提供了的修饰符来指定这个 JavaBean。
主要步骤如下:
为元数据父亲节点增加 Annotation 修饰:在将实体 JavaBean 序列化到 XML 的过程中,XML 根节点所对应的就是所有企业元数据中的父亲节点,JAXB 提供了 @XmlRootElement 修饰符,可以通过 name,namespace 两个属性来定义 XML 根节点的名字以及命名空间。
为数据属性增加 Annotation 修饰:在将 JavaBean 序列化到 XML 的过程中,XML 中的每个属性节点对应的就是所有企业元数据中的属性,JAXB 提供了 @XmlTransient 和 @XmlElement 两个修饰符供用户选择来决定是否需要对相应属性进行序列化操作。@XmlTransient 标示此属性在序列化过程中不需要进行转化,忽略此属性;@XmlElement 标示此属性在序列化过程中需要进行转换提取相应数据信息,通过 name,namespace 两个属性来定义 XML 属性节点的名字以及命名空间;
清单 1. JavaBean Annotation 修饰 @XmlRootElement(name = "WbiCustomerCi",
namespace =
"http://www.ibm.com/xmlns/prod/websphere/j2ca/peoplesoft/wbicustomerci")
public class WbiCustomerCi implements Record, BeanMetadata, RecordHolder,
Serializable {
@XmlTransient// 此属性无需序列化操作
public static LinkedHashMap propertyAnnotations = new LinkedHashMap();
@XmlTransient// 此属性无需序列化操作
public static LinkedHashMap objectAnnotations = new LinkedHashMap();
@XmlTransient// 此属性无需序列化操作
private HashSet _setAttributes = new HashSet();
@XmlElement(namespace =
"http://www.ibm.com/xmlns/prod/websphere/j2ca/peoplesoft/wbicustomerci")
private java.math.BigInteger Customerid;
@XmlElement(namespace =
"http://www.ibm.com/xmlns/prod/websphere/j2ca/peoplesoft/wbicustomerci")
// 此属性需序列化操作
private String Customerfirstname;
@XmlElement(namespace =
"http://www.ibm.com/xmlns/prod/websphere/j2ca/peoplesoft/wbicustomerci")
// 此属性需序列化操作
private String Customerlastname;
@XmlElement(namespace =
"http://www.ibm.com/xmlns/prod/websphere/j2ca/peoplesoft/wbicustomerci")
// 此属性需序列化操作
private Wbiaddress[] Wbiaddress;
更多精彩
赞助商链接