`
javan
  • 浏览: 55756 次
社区版块
存档分类
最新评论

转:解决客户端调用EJB远程接口传递基本数据类型数组失败

阅读更多

最近做项目中发现一个问题,调用EJB远程接口时,传递的是基本数组类型如(int[] long[]等等...),发布运行后,产生如下错误。 
Specified calling class, [J could not be found for sun.misc.Launcher$AppClassLoader@1c78e57 
at org.jboss.ejb3.common.lang.SerializableMethod.getClassFromName(SerializableMethod.java:348) 
at org.jboss.ejb3.common.lang.SerializableMethod.toMethod(SerializableMethod.java:238) 
at org.jboss.ejb3.common.lang.SerializableMethod.toMethod(SerializableMethod.java:219) 
at org.jboss.ejb3.proxy.handler.ProxyInvocationHandlerBase.invoke(ProxyInvocationHandlerBase.java:236) 
at org.jboss.ejb3.proxy.handler.session.SessionSpecProxyInvocationHandlerBase.invoke(SessionSpecProxyInvocationHandlerBase.java:101)
at $Proxy7.register(Unknown Source) 

服务器使用的是JBOSS,客户端引用了一些JBOSS的客户端类库,其中包括了这个EJB3,导致使用类加载器时候出错了,修改方法如下: 
1.修改java运行时参数 

Java代码  收藏代码
  1. -Dsun.lang.ClassLoader.allowArraySyntax=true  


2.修改JBoss中run.bat文件添加如下一行代码 
如果JOBSS中没有引用冲突的类库则此行不必添加 
Java代码  收藏代码
  1. set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name=%PROGNAME% -Dsun.lang.ClassLoader.allowArraySyntax=true  

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics