首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > 其他服务器 >

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

2012-03-09 
EJB+jboss实现远程调用时出现的奇怪问题,求高手解答。跪谢!在客户这边做实施,开发了一个cs的工具,由于我们

EJB+jboss实现远程调用时出现的奇怪问题,求高手解答。跪谢!
在客户这边做实施,开发了一个cs的工具,由于我们需要查询远程的oracle数据库,但又不能直接访问服务器的1521端口,所以就想了个解决的办法:写算法到ejb中,用jboss发布,调用1099端口就可以了,以http的形式实现的远程数据传输。

Java code
//连接远程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,和这个有关?但就是不明白为什么有的电脑可以用,有的就不行!!!!


报错内容如下:
Java code
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 = -8429279896237029122at 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 = -8429279896237029122at java.io.ObjectStreamClass.initNonProxy(Unknown Source)at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)......



[解决办法]
先把防火墙关了,试试吧,在不行就不清楚了

热点排行