博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ejb的小例子(未能成功运行)
阅读量:6003 次
发布时间:2019-06-20

本文共 3709 字,大约阅读时间需要 12 分钟。

hot3.png

创建EJB Project.

创建接口:

StatelessDao.java :

package com.cjq.ejb;import java.rmi.RemoteException;import javax.ejb.EJBObject;public interface StatelessDao extends EJBObject {	public void say() throws RemoteException;}
StatelessHome.java:

package com.cjq.ejb;import java.rmi.RemoteException;import javax.ejb.CreateException;import javax.ejb.EJBHome;public interface StatelessHome extends EJBHome {	public StatelessDao create() throws CreateException,RemoteException;}
创建Bean类:

StatelessBean.java:

package com.cjq.ejb;import java.rmi.RemoteException;import javax.ejb.EJBException;import javax.ejb.SessionBean;import javax.ejb.SessionContext;public class StatelessBean implements SessionBean {	@Override	public void ejbActivate() throws EJBException, RemoteException {		// TODO Auto-generated method stub	}	@Override	public void ejbPassivate() throws EJBException, RemoteException {		// TODO Auto-generated method stub	}	@Override	public void ejbRemove() throws EJBException, RemoteException {		// TODO Auto-generated method stub	}	@Override	public void setSessionContext(SessionContext arg0) throws EJBException,			RemoteException {		// TODO Auto-generated method stub	}	public void say(){		System.out.println("test");	}}
META-INF目录下创建xml文件:

ejb-jar.xml:

EjbTest
ejbtest1
com.cjq.ejb.StatelessHome
com.cjq.ejb.StatelessDao
com.cjq.ejb.StatelessBean
Stateless
Bean
jboss.xml:

ejbtest1
ejbtest1
导出这个ejb项目成EjbTest.jar. 并放入目录内:D:\jboss-6.1.0.Final\server\default\deploy

新建java Project:

创建java类:

package com.cjq.client;import java.rmi.RemoteException;import java.util.Hashtable;import javax.ejb.CreateException;import javax.naming.Context;import javax.naming.InitialContext;import javax.naming.NamingException;import javax.rmi.PortableRemoteObject;import com.cjq.ejb.StatelessDao;import com.cjq.ejb.StatelessHome;public class EjbTestClient {	public static void main(String[] args) {		// TODO Auto-generated method stub		String url="127.0.0.1:1099";		Hashtable
h = new Hashtable
(); h.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); h.put(Context.PROVIDER_URL, url); try{// NamingContext InitialContext ctx = new InitialContext(h); Object obj = ctx.lookup("ejbtest1"); StatelessHome home = (StatelessHome)PortableRemoteObject.narrow(obj, StatelessHome.class); StatelessDao dao ; try{ dao = (StatelessDao)home.create(); dao.say(); }catch(RemoteException e){ e.printStackTrace(); }catch(CreateException e){ e.printStackTrace(); } }catch(NamingException ex){ ex.printStackTrace(); } }}
在这个java Project内的Build Path要加入生成的EjbTest.jar,并且将D:\jboss-6.1.0.Final\client 下所有的jar添加进来。

此时运行,出现错误:

log4j:WARN No appenders could be found for logger (org.jnp.interfaces.TimedSocketFactory).log4j:WARN Please initialize the log4j system properly.log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.Exception in thread "main" java.lang.ClassCastException	at com.sun.corba.se.impl.javax.rmi.PortableRemoteObject.narrow(Unknown Source)	at javax.rmi.PortableRemoteObject.narrow(Unknown Source)	at com.cjq.client.EjbTestClient.main(EjbTestClient.java:27)Caused by: java.lang.ClassCastException: org.jnp.interfaces.NamingContext cannot be cast to org.omg.CORBA.Object	... 3 more
暂时不知道如何解决。

转载于:https://my.oschina.net/u/2552902/blog/543865

你可能感兴趣的文章
从设计者的角度看 React
查看>>
js常见问题
查看>>
CentOS6系统编译部署LAMP(Linux, Apache, MySQL, PHP)环境
查看>>
海量大数据大屏分析展示一步到位:DataWorks数据服务对接DataV最佳实践
查看>>
PAT A1043
查看>>
JavaScript之手写Promise
查看>>
PHP_SELF变量解析和重复路径解决
查看>>
git 命令行使用(基础篇)
查看>>
Vue笔记(五)——Token&生命周期
查看>>
《前端十年心路-我把一切告诉你》的书稿大纲&问题收集
查看>>
CSS居中总结大全
查看>>
Elasticsearch 参考指南(安装X-Pack)
查看>>
[LintCode] 604. Design Compressed String Iterator
查看>>
微信小程序黑客马拉松即将开始,来做最酷的 Mini Program Creators!
查看>>
JavaScript基础---函数
查看>>
前端每日实战:120# 视频演示如何用纯 CSS 创作锡纸撕开的文字效果
查看>>
Laravel实用小功能
查看>>
Linux系统上传下载工具rz/sz
查看>>
matplotlib绑定到PyQt5(有菜单)
查看>>
利用Powershell和ceye.io实现Windows账户密码回传
查看>>