`
jacky.jihao
  • 浏览: 153883 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用jndi lookup ejb遇到的问题

阅读更多

使用一个Main测试EJB的时候报这个错


代码:

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import cn.heapstack.HelloStateless;

public class Main {

	public static void main(String[] args) {
		Context context;
		try {
			context = new InitialContext();
			Object o = context.lookup("HelloStatelessBean");

			int j = ((HelloStateless) o).add(1);
			System.out.println(j);

		} catch (NamingException e) {
			e.printStackTrace();
		}
	}

}



异常:
Exception in thread "main" java.lang.ClassCastException: org.jnp.interfaces.NamingContext
at Main.main(Main.java:15)


分析原因,使用JBoss - jmx-console - JNDIView 进去
Global JNDI Namespace查出来应该是这样的

+- MyHelloStatelessBean (class: org.jnp.interfaces.NamingContext)

| +- remote (proxy: $Proxy90 implements interface cn.heapstack.HelloStateless,interface org.jboss.ejb3.JBossProxy,interface javax.ejb.EJBObject)

 

所以正确的名称应该是 Object o = context.lookup("HelloStatelessBean/remote");

 

分享到:
评论

相关推荐

    JNDI调用分布式EJB3 通用接口

    3. **查找EJB3**:客户端代码使用Java的`InitialContext`类来初始化JNDI上下文,并通过`lookup()`方法查找指定JNDI名称的EJB3组件。 4. **获取引用**:查找成功后,客户端将获得一个bean的引用,通常是代理对象。这...

    EJB中JNDI的使用源码例子

    2. 使用`lookup()`查找EJB:提供EJB的JNDI名称,通常由EJB的部署描述符决定。 ```java MyRemoteBean remoteBean = (MyRemoteBean) context.lookup("java:global/my-app/MyBean!com.example.MyRemoteBean"); ``` 这里...

    EJB中JNDI的使用源码例子.7z

    - 然后,客户端使用`InitialContext`的`lookup`方法,传入EJB的JNDI名称,从而获取EJB的引用。 - 最后,客户端通过这个引用调用EJB的方法。 4. 源码示例 下面是一个简单的JNDI查找EJB的Java代码示例: ```java ...

    基于Java的实例源码-EJB中JNDI的使用源码例子.zip

    6. **JNDI与EJB的关系**:JNDI在EJB中的作用相当于一个“服务目录”,客户端通过JNDI查找找到EJB的服务,而EJB则通过JNDI注册自身,使得其服务可以在整个应用中被发现和使用。 7. **安全性考虑**:在使用JNDI查找...

    基于java的EJB中JNDI的使用源码例子.zip

    这个压缩包"基于java的EJB中JNDI的使用源码例子.zip"包含了使用JNDI进行EJB查找的代码示例,下面将详细介绍JNDI在Java EE中的应用以及EJB的相关知识点。 1. JNDI简介: JNDI提供了一种统一的方式来管理和查找资源...

    EJB中JNDI的使用源码例子.rar

    3. **执行查找**:使用初始上下文和EJB的JNDI名称执行lookup方法,获取到EJB的引用。 4. **调用EJB方法**:有了EJB引用后,客户端就可以像调用普通Java对象的方法一样调用EJB的方法了。 在压缩包中的源码例子可能...

    java源码:EJB中JNDI的使用源码例子.zip

    EJB使用JNDI(Java Naming and Directory Interface)进行服务查找和绑定,这是一种在分布式环境中定位对象的机制。本压缩包包含了一个EJB中JNDI使用源码的例子,可以帮助开发者深入理解这两者之间的交互。 在Java ...

    基于Java的源码-EJB中JNDI的使用源码例子.zip

    - 查找EJB:在客户端代码中,使用`InitialContext`类的`lookup`方法,传入JNDI名称来查找EJB引用。 - 链接EJB:找到EJB引用后,可以调用其`create`或`lookup`方法来获取EJB实例。 2. 示例代码分析: - `...

    基于Java的实例开发源码-EJB中JNDI的使用源码例子.zip

    本实例将通过源代码的形式,深入解析EJB中JNDI的使用方法。 JNDI是一个接口,它允许Java应用程序查找和访问命名和目录服务。在EJB环境中,JNDI主要用于查找Enterprise JavaBeans(EJBs),以及相关的JDBC数据源、...

    java jndi的使用

    2. **查找JNDI资源**:接着,使用`lookup()`方法通过给定的JNDI名称查找资源,如数据源。例如: ```java Context context = new InitialContext(); DataSource dataSource = (DataSource) context.lookup("java:...

    基于Java的EJB中JNDI的使用源码例子.zip

    在这个例子中,首先创建了`InitialContext`实例,设置了远程JNDI服务器的属性,然后通过`lookup`方法找到EJB的JNDI名称,最后将返回的对象强制转换为对应的接口类型,以便调用其方法。 在提供的压缩包文件"codefans...

    java JNDI总结

    在进行Java开发时,经常会遇到关于JNDI配置的相关问题。下面将详细介绍JNDI的基本概念、配置方法以及如何在实际开发中应用它来管理数据库连接等资源。 ##### 1. JNDI的基本概念 JNDI是一种用于访问命名和目录服务...

    Java演示JNDI的使用.rar

    Java演示JNDI(Java Naming and Directory Interface)的使用是一个重要的概念,特别是在企业级Java应用程序开发中,如EJB(Enterprise JavaBeans)。JNDI是一个API,它为Java应用程序提供了一个标准接口来查找和...

    走出 JNDI 迷宫.pdf

    本文旨在解决Java开发者在使用Java Naming and Directory Interface (JNDI)时遇到的问题,特别是那些涉及到EJB(Enterprise JavaBeans)组件查找和访问的过程。对于刚接触EJB技术的新手来说,正确设置并配置JNDI环境...

    JNDIDemo 以及相关文档

    8. **JNDI与EJB和JDBC**:在Enterprise JavaBeans (EJB) 中,JNDI用于查找和注入EJB实例。在Java Database Connectivity (JDBC) 中,数据源通常通过JNDI查找来获取,这样可以轻松地在不同环境中配置数据库连接。 9....

    JNDI使用

    **JNDI(Java Naming and Directory Interface)使用详解** JNDI是Java平台中的一个标准接口,它为Java应用程序提供了一种访问命名和目录服务的统一方式。在Java应用程序中,JNDI主要用来查找和绑定对象,这些对象...

    JNDI示例整合SSH

    2. 在Spring配置文件中使用`jee:jndi-lookup`标签引用该数据源。 3. 更新Struts或Struts2配置,确保Action能正确访问到Spring管理的bean。 4. 调整Hibernate配置,使其使用由JNDI查找的数据源。 5. 测试应用程序,...

    jndi配置

    2. **EJB引用**:企业JavaBean(EJB)可以通过JNDI查找彼此,实现服务间的通信。 3. **JMS队列和主题**:Java消息服务(JMS)的队列和主题也可以通过JNDI进行查找,以便应用程序可以发送和接收消息。 4. **邮件...

Global site tag (gtag.js) - Google Analytics