Web 应用程序 远程调用 EJB 组件问题求助?? 谢谢!

[复制链接]
查看11 | 回复8 | 2006-9-26 17:30:03 | 显示全部楼层 |阅读模式
我的目的是:
想让Tomcat上的web应用程序调用 jboss上的EJB组件。
-----------
应用环境是:
jboss-4.0.3SP1+EJB组件,Tomcat5.5.9+Web应用程序
----------
配置过程:
(1)我把E:\jboss-4.0.3SP1\lib下的包拷贝到E:\jakarta-tomcat-5.5.9\shared\lib下面

(2)把EjB组件的远程接口和Home接口达成jar包放到web 应用程序的lib下面。
-----------
Firmction的调用代码是:

java.util.Hashtable props = new java.util.Hashtable();

props.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory&quot

;

props.put(Context.URL_PKG_PREFIXES,"org.jboss.naming

rg.jnp.interfaces.*&quot

;

props.put(Context.PROVIDER_URL, "jnp://localhost:1099&quot

;

Context ctx=new InitialContext(props);


Object obj=ctx.lookup("java:/comp/env/ejb/Account&quot

;
AccountHome ihome = (AccountHome) PortableRemoteObject.narrow(obj, AccountHome.class);
Account account=ihome.create("test","01&quot

;
double balance=account.getBalance();
-----------
调用发生的异常:
java.lang.IncompatibleClassChangeError

org.jnp.interfaces.NamingContext.lookup(NamingContext.java:610)

org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)

javax.naming.InitialContext.lookup(InitialContext.java:351)

com.cn.app.action.firm.Firmction.execute(FirmAction.java:113)

org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)

org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)

org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)

javax.servlet.http.HttpServlet.service(HttpServlet.java:689)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
但是,开发EJB组时,用来调试的客户端调用EJB时是调用成功的。
回复

使用道具 举报

千问 | 2006-9-26 17:30:03 | 显示全部楼层
这个错误应该是远程包中的类和本地包中的类不兼容造成的,检查一下两边的版本是否一致
回复

使用道具 举报

千问 | 2006-9-26 17:30:03 | 显示全部楼层
根据异常提示两者class有冲突,
参考 http://www.javafan.net/article/20040429094831313.html 注意里面提及的(3),(4)点。
回复

使用道具 举报

千问 | 2006-9-26 17:30:03 | 显示全部楼层
可是我还是没有搞定哦啊,


回复

使用道具 举报

千问 | 2006-9-26 17:30:03 | 显示全部楼层
自各顶一下哦~~
回复

使用道具 举报

千问 | 2006-9-26 17:30:03 | 显示全部楼层
那你就看看我签名中序列化的这一部分,看完了你就明白这个错误的含义了,这样你就可以知道该怎么调整了
回复

使用道具 举报

千问 | 2006-9-26 17:30:03 | 显示全部楼层
lang_m:
你好!
"我签名中序列化"是?
我有点不明白是指的是什么意思,见笑了~~



回复

使用道具 举报

千问 | 2006-9-26 17:30:03 | 显示全部楼层
呵呵,一着急打得少了两个字,呵呵,是我签名中Component Development for the Java Platform 这本书中的序列化部分
回复

使用道具 举报

千问 | 2006-9-26 17:30:03 | 显示全部楼层
好的,我看一下,多谢了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行