`
kong6001
  • 浏览: 141262 次
  • 性别: Icon_minigender_1
  • 来自: 广东广州
社区版块
存档分类
最新评论

Client如何访问Glassfish 提供的远程EJB

    博客分类:
  • EJB
阅读更多
EJB所有返回值必须实现 Serializable接口,否则会报些莫名其妙的错误.
并把 Glassfish 的 appserv-rt.jar 和 javaee.jar 包 客户程序的类路径

@Stateless(mappedName="ejb/MainActionJNDI")//远程JNDI
@Name("MainAction")

@Interceptors({org.jboss.seam.ejb.SeamInterceptor.class})
@AutoCreate
public class MainActionBean implements MainAction,MainActionRemote {



package cn.astrocom.ejb.client;

import java.util.List;
import java.util.Properties;

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

import cn.astrocom.extseam.MainActionRemote;
import cn.astrocom.extseam.bo.MainGrid;

/**
 *
 * @author fanzhi_kong
 *
 */
public class MainActionClient {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		 
		try {
			Context jndiContext = getInitialJNDIFileContext();
			// Context jndiContext = getInitialPropertiesContext();
			/*
			 * 2.0 Object ref = jndiContext.lookup("ejb/MainActionJNDI");
			 * MainActionRemote mainAction = (MainActionRemote)
			 * PortableRemoteObject .narrow(ref, MainActionRemote.class);
			 */
			// 3.0
			MainActionRemote mainAction = (MainActionRemote) jndiContext
					.lookup("ejb/MainActionJNDI");
 
		} catch (Exception ne) {
			ne.printStackTrace();
		}

	}

	// JNDI上下文 方式一
	public static Context getInitialPropertiesContext()
			throws javax.naming.NamingException {

		Properties props = new Properties();
		props.setProperty("java.naming.factory.initial",
				"com.sun.enterprise.naming.SerialInitContextFactory");
		props.setProperty("java.naming.factory.url.pkgs",
				"com.sun.enterprise.naming");
		props.setProperty("java.naming.factory.state",
				"com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");

	    //EJB容器的ip
		props.setProperty("org.omg.CORBA.ORBInitialHost", "172.16.140.103");

       //EJB容器端口,默认为:3700
		props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");

		InitialContext ic = new InitialContext(props);

		return ic;
	}

	/**
	 * JNDI上下文 方式二读配置文件 文件为:jndi.properties
	 *
	 * @return
	 * @throws javax.naming.NamingException
	 */
	public static Context getInitialJNDIFileContext()
			throws javax.naming.NamingException {

		return new InitialContext();

	}

}

# optional. Defaults to localhost. Only needed if web server is running
# on a different host than the appserver
org.omg.CORBA.ORBInitialHost=172.16.140.103

# optional. Defaults to 3700. Only needed if target orb port is not
# 3700.
org.omg.CORBA.ORBInitialPort=3700


java.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory
java.naming.factory.url.pkgs=com.sun.enterprise.naming
java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl
分享到:
评论

相关推荐

    java 客户端访问EJB

    本教程主要介绍如何在Java客户端访问通过Glassfish发布的EJB,特别是EJB3.0的安全特性。 首先,我们要创建一个包含简单会话bean(session bean)的企业应用程序,并建立一个Java类库项目,该项目包含了会话bean的...

    EJB分布式远程调用的小例子的简单实现

    在客户端,我们需要使用JNDI(Java Naming and Directory Interface)来查找并调用远程EJB。首先,配置JNDI上下文,并查找EJB的JNDI名称,这通常是在服务器的部署描述符(如ejb-jar.xml或web.xml)中指定的: ```...

    stackoverflow-27411885:堆栈溢出问题“如何使用 Glassfish 4 创建远程 EJB Bean?”

    本文将深入探讨如何在Glassfish 4中创建远程EJB Bean以及如何解决堆栈溢出问题。 首先,要创建一个远程EJB Bean,你需要遵循以下步骤: 1. **定义接口**:创建一个接口,该接口将作为客户端与EJB Bean之间的通信...

    EJB_TEST自己编写的EJB例子

    EJB提供强大的事务管理能力,可以设置不同的事务属性,比如所需的事务级别、传播行为等,确保数据的一致性和完整性。 **安全性**: EJB支持角色基础的访问控制(RBAC),允许对EJB方法的调用进行权限验证,以确保...

    EJB3.0无状态SessionBean例子

    在实际应用中,EJB组件需要部署到支持EJB3.0的应用服务器,如GlassFish、WildFly或TomEE等。部署时,Bean类、接口和相关的部署描述符(如果有)会被包含在ejb-jar文件中,然后该文件将被包含在一个更大的应用档案...

    EJB 知识与运行环境设置(笔记)

    - 类似于使用数据库连接池,当收到对EJB方法的访问请求时,EJB容器会提取出一个实例为之服务,服务完毕后,再放回对象池中。 - 由于无状态会话Bean更具性能优势,因此条件允许的情况下,应优先考虑使用无状态会话...

    EJB Dev 1: EJB入门例子

    EJB提供了一种标准的方式来实现业务逻辑,使得开发人员可以专注于业务逻辑的实现,而将复杂的分布式系统管理任务交给容器来处理。 在本入门例子中,我们将深入理解EJB的基本概念,包括实体(Entity)、会话...

    2.开发EJB的客户端

    此外,EJB还提供了安全性机制,如角色基础的访问控制(RBAC),允许管理员定义不同用户角色并限制其对EJB的访问权限。客户端必须具备相应的角色才能调用特定的EJB方法。 总结一下,开发EJB客户端涉及以下关键点: 1...

    ProgettoAsw062018

    JNDI提供了一种标准的方式来查找和绑定对象,使得客户端可以透明地访问远程服务器上的EJB。一旦找到EJB,客户端就可以通过代理对象调用其方法,就像调用本地对象一样。 4. 部署与运行: 项目的部署涉及将ejb-...

Global site tag (gtag.js) - Google Analytics