使您的应用程序调用我的应用程序,第 1 部分: Apache Geronimo 通信基础 —— 开发、部署和测试(下)
2010-03-19 00:00:00 来源:WEB开发网在 PurchaseOrderMDB 的 onMessage() 方法中,您调用了 PurchaseOrderEJB 的 addPurchaseOrder() 方法在数据库表中创建新采购订单行。
Geronimo 服务器的 JNDI 属性如下:
java.naming.factory.initial=org.openejb.client.RemoteInitialContextFactory
(4201 是默认端口)
java.naming.provider.url=localhost:4201
java.naming.security.principal=system(默认用户名)
java.naming.security.credentials=manager(默认口令)
清单 10. 查找实体 bean 并创建采购订单
private void addPurchaseOrder (PurchaseOrderBean poBean) {
try {
//EJB JNDI Properties for Geronimo Server
Hashtable env = new Hashtable();
env.put("java.naming.factory.initial",
"org.openejb.client.RemoteInitialContextFactory");
env.put("java.naming.provider.url", "localhost:4201");
env.put("java.naming.security.principal", "system");
env.put("java.naming.security.credentials", "manager");
// create a new InitialContext
InitialContext ctx = new InitialContext(env);
// Lookup Purchase Order Entity Bean
Object o = ctx.lookup("PurchaseOrderEJB");
RemotePurchaseOrderHome home =
(RemotePurchaseOrderHome) PortableRemoteObject
.narrow(o, RemotePurchaseOrderHome.class);
// Create a new Purchase Order
RemotePurchaseOrder po = home. create ( poBean.getPurchaseOrderNum(),
poBean.getItem(),
poBean.getDescription(),
poBean.getUnitPrice(),
poBean.getQuantity(),
poBean.getRequestorEmail());
log.info("Purchase Order Number # :" + po.getPurchaseOrderNum());
} catch (Exception e) {
e.printStackTrace();
log.severe(""+e);
}}}
更多精彩
赞助商链接