最近做项目中发现一个问题,调用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
分享到:
相关推荐
- **远程接口**:客户端通过远程接口与EJB交互,理解远程方法调用的工作原理。 - **容器服务**:如安全、调度、资源管理等,EJB容器为Bean提供的服务。 4. **J2EE(Java 2 Platform, Enterprise Edition)**: -...
它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是...
- 数据类型:基本数据类型(如int、double)与引用数据类型(如类、数组)的区别。 - 变量作用域:局部变量、实例变量、静态变量的作用范围及初始化。 - 类与对象:类的概念、对象的创建过程、封装、继承、多态的...
- Remote接口:定义了EJB组件的业务方法,供客户端调用,实现远程方法调用。 【EJB与JavaBean的区别】 EJB(Enterprise JavaBeans)是用于构建企业级应用的组件,支持事务、安全性、生命周期管理等功能,而...
`Number` 是一个抽象类,它提供了数值类型的基本结构,可以被继承以实现具体的数值类型。 - **java.lang.Double**: 不可被继承 (F)。`Double` 类是一个封装类,表示64位双精度浮点数,它不是抽象类且不允许继承。 - ...
EJB与远程接口 - **EJB与Home接口:** - EJB(Enterprise JavaBeans)是J2EE架构中的重要组件之一,用于开发企业级应用程序。 - Home接口提供了创建和查找EJB实例的方法。它通常不直接实现,而是通过容器提供的...
使用 `request` 对象获取通过 GET 或 POST 方式传递过来的数据。 #### 45. JSP页面表的数据是用什么标签得到的 使用 `<c:forEach>` 等 JSTL 标签处理列表数据。 #### 46. JSP有哪些内置对象?作用分别是什么? - *...
它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是...
- **service()**: 处理客户端请求的核心方法,内部根据请求类型调用`doGet()`或`doPost()`等。 - **destroy()**: 在Servlet销毁前调用,进行资源清理等工作。 ### 11. Servlet与JSP的关系 尽管Servlet和JSP都可以...
Java中的基本数据类型包括`byte`、`int`、`char`、`long`、`float`、`double`、`boolean`和`short`。`String`实际上是一个类,属于引用类型。`String`类是不可变的(final类型),这意味着一旦创建了一个`String`对象...
- **Session Façade Pattern**: 使用Session Bean封装对Entity Bean的访问,简化客户端调用过程。 - **Message Façade Pattern**: 用于实现异步消息处理。 - **EJB Command Pattern**: 使用Command Java Beans代替...
- **包装类转基本类型:** 如 `Integer` 转 `int`,可以通过自动拆箱或调用 `intValue()` 方法实现。 - **基本类型转包装类:** 如 `int` 转 `Integer`,可以通过自动装箱或使用构造函数 `new Integer(int)` 实现。 ...
- **功能:** 支持远程对象的直接方法调用,类似于本地对象调用。 - **应用场景:** 实现分布式系统的对象间通信。 #### 三、EJB (Enterprise JavaBeans) **1. EJB的技术基础** - **技术基础:** EJB依赖于JNDI、RMI...
- **RMI (Remote Method Invocation)**:支持远程方法调用,即可以在网络上的另一台机器上调用对象的方法。 #### 8. EJB组件 - **Session Bean**:用于执行业务逻辑,可以分为 Stateful Session Bean 和 Stateless...
- **重载**发生在同一个类中,方法名相同但参数列表不同(包括参数的个数、类型或顺序不同),编译器根据传递的参数类型决定调用哪个方法。 - **重写**发生在子类和父类之间,子类中定义一个与父类同名且参数列表...
Java中的基本数据类型包括:`byte`, `short`, `int`, `long`, `float`, `double`, `char`, `boolean`。而`String`是一个类,属于引用数据类型。 #### 3. int和Integer有什么区别? - `int`是Java的基本数据类型之...
在企业级应用程序开发中,JMS解决了RMI-IIOP(远程方法调用-Internet Inter-ORB协议)的一些局限,如性能问题、可靠性问题以及不支持多客户交互等。JMS通过引入消息中间件,提供了一种基于消息传递的通信方式,以...
17. **Web Service**:提供跨平台的远程调用服务,WSDL(Web Services Description Language)描述服务,JAXP处理XML,JAXM(Java API for XML Messaging)处理消息,SOAP定义传输协议,UDDI(Universal Description...
- **RMI** (Remote Method Invocation): 允许在一个虚拟机中的对象调用另一个虚拟机中的对象的方法,实现了远程对象的调用。 7. **EJB技术及Bean类型的区别** - EJB(Enterprise JavaBeans)是J2EE的核心组件之一...