您的位置:首页 > 其它

Remote Access

2014-07-31 00:00 260 查看
摘要: glassFish4.0 远程EJB调用

EJB FAQ: https://glassfish.java.net/javaee5/ejb/EJB_FAQ.html#StandaloneRemoteEJB

本地:

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");

props.setProperty("org.omg.CORBA.ORBInitialHost", host);

props.setProperty("org.omg.CORBA.ORBInitialPort", port);

Context ctx = new InitialContext(props);

EJBRemote remoteEjb= (EJBRemote )ctx.lookup("java:global/" + app/ejbName);;//见控制台输出.

remoteEjb.xxxx();

------------------

远程: 具体的方法实现

远程接口:

<jvm-options>-Dorg.omg.CORBA.ORBSingletonClass=com.sun.corba.se.impl.orb.ORBSingleton</jvm-options>

glassfish domain.xml文件配置

//配置server端的jvm。

普通的java客户端可以正常访问远程EJB,儿在javaee环境中无法访问的情况:
1)<jvm-options>-Dorg.omg.CORBA.ORBSingletonClass=com.sun.corba.se.impl.orb.ORBSingleton</jvm-options>
glassfish domain.xml文件配置//默认的这个类无法加载..2)出现Character does not map to negotiated transmission code set vmcid: SUN minor code: 1 completed: No异常

详细: 00810007: Underflow in BufferManagerReadStream after last fragment in message vmcid: OMG minor code: 7 completed: No存在未序列化的类

发生诸如character 无法映射到trans......之类的错误,其实是项目的路径中存在非英文字符

ejb在glassfish web环境下只需要像上面的配置即可远程访问,系统会自动读取System.getProperty()中的属性,独立的java 程序则需要将

远程接口的包结构要与他在远程ejb中时候的结构一致,否则运行的时候会报找不到远程接口的错误.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ejb glassfish