-
session bean 的local接口的錯誤調試5
我在jboss4.0上測試session bean 的local接口,出現下面錯誤,請各位指教。
remote接口是測試通過的。
我已經將client\下所有jar 包全部加到library下面了,還是出現相同的錯誤。
javax.naming.CommunicationException [Root exception is java.lang.ClassNotFoundException: org.jboss.ejb.plugins.local.LocalHomeProxy (no security manager: RMI class loader disabled)]
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:786)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at testsessionbean.Main.main(Main.java:58)
Caused by: java.lang.ClassNotFoundException: org.jboss.ejb.plugins.local.LocalHomeProxy (no security manager: RMI class loader disabled)
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:375)
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:165)
at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:620)
at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247)
at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:197)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at java.rmi.MarshalledObject.get(MarshalledObject.java:142)
at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:72)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:710)
... 3 more
程序如下:
package test;
import com.ejb.TESTLocal;
import com.ejb.TESTLocalHome;
import com.ejb.TESTRemote;
import com.ejb.TESTRemoteHome;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class Main {
public static void main(String[] args) throws Exception {
Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
props.put(Context.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");
props.put(Context.PROVIDER_URL, "jnp://localhost:1099");
Context ctx = new InitialContext(props);
TESTLocalHome home = null;
TESTLocal local = null;
try {
Object obj = ctx.lookup("/ejb/TESTBeanLocal");
home = (TESTLocalHome) javax.rmi.PortableRemoteObject.narrow(obj, TESTLocalHome.class);
local = home.create();
local.method1("test");
local.remove();
} catch (NamingException e) {
e.printStackTrace();
}
}
}
2008年11月06日 17:07
1个答案 按时间排序 按投票排序
-
因为通过ctx.lookup("/ejb/TESTBeanLocal"); 你在远程调用EJB JAVABEAN..
所有你实际remote接口是没有..而你现在实现的是LOCAL接口...只能在本地调用..
EJB local interface(javax.ejb.EJBLocalObject)和local home interface(javax.ejb.EJBLocalHome)不是Java RMI接口,共享同一个JVM
本地客户端可以直接把EJB实例转换成local home interface类型,如下面的代码片段: InitialContext initCtx = new InitialContext();
ExampleLocalHome exampleLocalHome =
(ExampleLocalHome)initCtx.lookup("java:comp/env/ejb/Example");
从local home创建了EJB实例:
ExampleLocal exampleLocal = exampleLocalHome.create();
2008年11月07日 10:46
相关推荐
在EJB 3.0中,Session Bean和Entity Bean的接口和配置方式得到了简化,增加了Local Home和Local接口,以及更灵活的注解方式。 【试题解析】 1. AJAX 术语是由 Adaptive Path 最先提出的。 2. Hotmail 不属于 Ajax ...
- 讲解创建只实现Local接口的无状态SessionBean的方法,Local接口主要用于本地调用。 - **开发实现了Remote与Local接口的无状态SessionBean** - 描述如何同时实现Remote和Local接口的无状态SessionBean。 **2.2 ...
2. **局部(Local)Session复制**:也称为粘滞会话(Sticky Sessions),在这种模式下,客户端与特定的服务器节点绑定,所有的Session操作都只在该节点上进行。这种方法减少了网络通信,但牺牲了负载均衡和容错能力...
- 开发存在Remote与Local接口的无状态Session Bean - **有状态会话Bean(Stateful Session Bean)**:介绍如何创建和使用有状态会话Bean。 - **无状态与有状态会话Bean的区别**:对比分析两种会话Bean的特点和应用...
笔记详细介绍了创建无状态会话Bean的步骤,包括定义Remote接口(供远程客户端调用)和Local接口(供同一应用内的组件调用)。这两种接口定义了Bean的方法,客户端通过这些方法与Bean进行交互。 此外,笔记可能还会...
- **仅Local接口**:创建只有Local接口的无状态Session Bean。 - **同时提供Remote和Local接口**:结合两种接口类型的优势。 2. **有状态Session Bean** - 开发并部署有状态Session Bean。 3. **区别对比** - 无...
- **Local接口**:开发仅具有本地接口的无状态Session Bean。 - **混合接口**:开发同时具有远程和本地接口的无状态Session Bean。 - **有状态Session Bean**:介绍有状态Session Bean的开发过程。 - **Session ...
- 开发同时具有Remote与Local接口的无状态Session Bean - **有状态会话Bean(Stateful Session Bean)** - **无状态与有状态会话Bean的区别**:主要在于它们的状态管理方式不同。 - **JNDI名称更改**:允许开发者...
- **无状态Session Bean(Stateless Session Bean)**:对于多个客户端请求,服务器可能会复用相同的bean实例,不保留客户端状态。 2. **Message Driven Bean(MDB)**:用于处理消息队列(JMS)中的消息,常用于...