EJB+jboss实现远程调用时出现的奇怪问题,求高手解答。跪谢!

FromBeginBGD 2010-07-07 01:42:51
在客户这边做实施,开发了一个cs的工具,由于我们需要查询远程的oracle数据库,但又不能直接访问服务器的1521端口,所以就想了个解决的办法:写算法到ejb中,用jboss发布,调用1099端口就可以了,以http的形式实现的远程数据传输。


//连接远程jbosss的方法,以http的形式实现
public static Object getEJB(String jndipath) {
try {

Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,"org.jboss.naming.HttpNamingContextFactory");
p.put(Context.PROVIDER_URL,"http://YOUR_IP:YOUR_POST/unified-invoker/JNDIFactory/?return-exception=true");
p.put(Context.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");
InitialContext ctx = new InitialContext(p);
Object oo = ctx.lookup(jndipath);
return oo;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}



这个本来是没有错的,在我本机上就完全没问题,我也在别人的电脑上试过了,大部分人都可以用,但就那么几个用不了,开始没注意,今天客户这边还真有人遇到了相同的问题:

就是不明白这个东西为什么跑到不同的计算机上,有的报错有的可以执行?和什么有关?我该怎么修改?都蒙了已经

说明:1:为了使这个cs的工具可以在不安装java虚拟机的计算机上运行,所以在工具中加入了jre1.6.0,
2:远程服务器上的jboss版本为jboss-4.2.2.GA,听说这个版本的jboss有很多bug,和这个有关?但就是不明白为什么有的电脑可以用,有的就不行!!!!


报错内容如下:


org.jboss.remoting.CannotConnectException: Cannot connect http client invoker.
at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:333)
at org.jboss.remoting.transport.http.HTTPClientInvoker.transport(HTTPClientInvoker.java:135)
...
...

Caused by: java.io.InvalidClassException: com.sun.rowset.providers.RIOptimisticProvider; local classincompatible: stream classdesc serialVersionUID = -3143367176751761936, local class serialVersionUID = -8429279896237029122
at java.io.ObjectStreamClass.initNonProxy(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
...
...

org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObjectVersion2_2(JavaSerializationManager.java:239)
at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObject(JavaSerializationManager.java:133)
at org.jboss.remoting.marshal.serializable.SerializableUnMarshaller.read(SerializableUnMarshaller.java:120)
at org.jboss.remoting.marshal.http.HTTPUnMarshaller.read(HTTPUnMarshaller.java:69)
at org.jboss.remoting.transport.http.HTTPClientInvoker.readResponse(HTTPClientInvoker.java:471)
at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:305)
...
...
at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:107)
at $Proxy1.getCachedRowSet_Query(Unknown Source)
at hdaty.ui.UserLanding$LoginUser.run(UserLanding.java:343)

Caused by: java.io.InvalidClassException: com.sun.rowset.providers.RIOptimisticProvider; local class incompatible: stream classdesc serialVersionUID = -3143367176751761936, local class serialVersionUID = -8429279896237029122

at java.io.ObjectStreamClass.initNonProxy(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
...
...


...全文
173 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
j2sej2ee 2010-07-08
  • 打赏
  • 举报
回复
先把防火墙关了,试试吧,在不行就不清楚了
FromBeginBGD 2010-07-07
  • 打赏
  • 举报
回复
跟防火墙有关系吗 ?跟这个post的值有关系吗 ?

6,787

社区成员

发帖
与我相关
我的任务
社区描述
JBoss技术交流
社区管理员
  • JBoss技术交流社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧