六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 32|回复: 0

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

[复制链接]

升级  16%

2

主题

2

主题

2

主题

童生

Rank: 1

积分
8
 楼主| 发表于 2013-2-3 13:40:12 | 显示全部楼层 |阅读模式
最近做项目中发现一个问题,调用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运行时参数
-Dsun.lang.ClassLoader.allowArraySyntax=true

2.修改JBoss中run.bat文件添加如下一行代码
如果JOBSS中没有引用冲突的类库则此行不必添加
set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name=%PROGNAME% -Dsun.lang.ClassLoader.allowArraySyntax=true
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表