`
anxin587
  • 浏览: 23386 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

简单EJB客户端调用的问题

阅读更多
写好了一个EJB并且也部署到了jboss下面,部署成功,简单说下组成
远程接口 Hello interface 定义了一个业务方法 public String hello()
本地接口 HelloLocal interface 和远程接口一样 public String hello()
Home接口 HelloHome interface
本地Home接口 HelloLocalHome interface
发布到jboss服务器底下成功
客户端代码如下
import java.util.Hashtable;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import java.rmi.*;
import java.util.*;

//import myejb.*;
import examples.HelloHome;
import examples.Hello;

class  HelloClientTest
{
    public static void main(String[] args) throws Exception {
System.setProperty("java.security.policy","client.policy");

if(System.getSecurityManager()==null)
System.setSecurityManager(new RMISecurityManager());
   
Properties env = new Properties();
        env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
        env.put(Context.PROVIDER_URL, "localhost:1099");
        env.put(Context.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");
        
        Context ctx = new InitialContext(env);

Object obj = ctx.lookup("Hello");
System.out.println("2.......................................");
        HelloHome home = (HelloHome) PortableRemoteObject.narrow(obj,HelloHome.class);
System.out.println("3.......................................");
        Hello hello = home.create();
        System.out.println(hello.hello());
        hello.remove();
    }
}
如果我去掉上面的System.setSecurityManager(new RMISecurityManager());
出现的错误是
     [java] Exception in thread "main" java.security.AccessControlException: acc
ess denied (java.net.SocketPermission 230.0.0.4 connect,accept,resolve)
     [java]     at java.security.AccessControlContext.checkPermission(AccessCont
rolContext.java:323)
     [java]     at java.security.AccessController.checkPermission(AccessControll
er.java:546)
     [java]     at java.lang.SecurityManager.checkPermission(SecurityManager.jav
a:532)
     [java]     at java.lang.SecurityManager.checkMulticast(SecurityManager.java
:1188)
     [java]     at java.net.MulticastSocket.joinGroup(MulticastSocket.java:269)
     [java]     at org.jnp.interfaces.NamingContext.discoverServer(NamingContext
.java:1071)
     [java]     at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:
1199)
     [java]     at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:51
6)
     [java]     at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:50
9)
     [java]     at javax.naming.InitialContext.lookup(InitialContext.java:392)
     [java]     at HelloClientTest.main(Unknown Source)
     [java] Java Result: 1
如果我加上上面的System.setSecurityManager(new RMISecurityManager())
出现的错误如下
     [java] Exception in thread "main" java.security.AccessControlException: acc
ess denied (java.net.SocketPermission 230.0.0.4 connect,accept,resolve)
     [java]     at java.security.AccessControlContext.checkPermission(AccessCont
rolContext.java:323)
     [java]     at java.security.AccessController.checkPermission(AccessControll
er.java:546)
     [java]     at java.lang.SecurityManager.checkPermission(SecurityManager.jav
a:532)
     [java]     at java.lang.SecurityManager.checkMulticast(SecurityManager.java
:1188)
     [java]     at java.net.MulticastSocket.joinGroup(MulticastSocket.java:269)
     [java]     at org.jnp.interfaces.NamingContext.discoverServer(NamingContext
.java:1071)
     [java]     at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:
1199)
     [java]     at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:51
6)
     [java]     at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:50
9)
     [java]     at javax.naming.InitialContext.lookup(InitialContext.java:392)
     [java]     at HelloClientTest.main(Unknown Source)
     [java] Java Result: 1
希望大家帮我看看错误原因,thanks
分享到:
评论

相关推荐

    EJB客户端(远程调用)

    调用EJB的客户端程序,通过远程接口方式调用

    EJB3.0范例,开发环境搭建,服务器端程序,客户端调用程序

    第一个EJB3.0范例 包括开发环境搭建 服务器端程序 客户端调用程序

    EJB CORBA开发培训材料

    EJB/CORBA开发 培训材料 EJB服务端 EJB客户端 CORBA服务端 从EJB调用CORBA

    Ejb技术入门级实例大全

    并使用统一客户端调用,并附有数据库脚本。供大家下载布暑运行。 本Ejb运行环境:jdk1.42 + weblogic 8.1. 如有问题,请联系我,chtboss@21cn.com.如有好的建议,也指大家指教。 另:解压密码:898989

    ejb3.0培训教程与源码(绝对精品)

    3, EJB客户端:(常见的) 1) 独立的java程序 2)web程序 3)其他的EJB, 4)其他通过Web Service 调用的客户端; 4, EJB容器可以为我们提供的服务: 1) 事务:够用 2)安全:不够用 3)资源管理和组件的声明周期的管理; ...

    Java EJB简单例子.rar

    Java EJB简单例子,这是HelloWorldBean的Home接口,它是EJB对象的生成库,无状态会话(将在下一个实例中具体讲解)Bean,这个接口是客户端与EJB对象相互作用的中间途径,通过Client触发调用Bean方法:  try {  //...

    EJB3.0实录教程+配套源码

    3, EJB客户端:(常见的) 1) 独立的java程序 2)web程序 3)其他的EJB, 4)其他通过Web Service 调用的客户端; 4, EJB容器可以为我们提供的服务: 1) 事务:够用 2)安全:不够用 3)资源管理和组件的声明周期的管理; ...

    主题:基于ejb 的 仿flash的java富客户端applet 的实现构想 及意义

    目前知道的通信方式 :将ejb的无状态会话bean 发布成web 服务,, 客户端applet 调用后,返回一个无状态会话bean ,这个bean包含了所有所需的业务代码,这个页面就包含了这个网站的所有功能,但 所需的数据靠会话bean调用...

    Mastering EJB

    深入介绍了企业JavaBean原理,服务端实现,客户端调用,安全等技术,是精通掌握EJB编程的很好英文原著书籍。

    Ejb开发webservice

    用Ejb3开发的webservice。数据库连接用的是dbutils。介绍了两种webservice的调用或测试方法:客户端调用和soapui工具测试。

    Enterprise JavaBean (EJB) 是可重用的、可移植的 J2EE 组件。EJB 由封装业务逻辑的方法组成。譬如说,EJB 可能有这样的业务逻辑:

    因为这些bean并不保持状态,所以容器对它们进行管理就很简单。客户端请求无状态的bean实例时,可以从容器保持的无状态的会话bean 实例池当中接收一个实例。另外,因为无状态的会话 bean可以共享,所以容器可保持数量...

    EJB2.X 的使用例子

    EJB2.X 的使用例子,讲解了EJB2.X Entity Bean如何映射数据至表中, Session Bean如何使用,客户端调用Session Bean 中的业务方法. 有问题,请联系本人: QQ:343827585 (注:源码下载后,请删除后缀名为 .java的相应...

    EJB相关知识整理1

    EJB的底层是远程方法调用,本质上的目的是把业务逻辑放到服务器上,然后客户端远程调用服务器上的方法来工作,放在服务器上的那些java类就叫EJB,EJB容器是一

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    中文名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 原名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 作者: 李刚 资源格式: PDF 版本: 第一版 出版社: 电子...

    javaee.jar

    开发ejb客户端需要的jar包,调用glassfish时需要的。

    JBoss WebJBOSS的负载平衡与失效转发策略是由最后一个拦截器实现的

    为了能更清楚地阐述这个 问题,我们假设客户端向EJB对像发出如下调用: myRemoteComponent.increaseSalary(100);  //myRemoteComponent为代理对像  这个调用实际上被JBOSS转换成了如下的系统级调用: ...

    Java ejbCreate初始化EJB代码实例.rar

    Java ejbCreate函数初始化EJB的一个代码实例,代码将创建一个EJB测试客户端程序,演示Address EJB的实现。  代码通过强制转型得到Home接口,用client的getHome()函数调用Home接口函数得到远程接口的引用,用远程...

    ejbCreate函数用于初始化一个EJB实例

    演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口函数得到远程...

    ejb的详细介绍

    客户端不会发现 4. 后台继承(JCA) JCA软件能做到java程序调用非java程序 5. 分布式事务 6. 动态重部署 7. 无损关机(服务器停掉的时候保证没有客户) 8. 登陆和授权 9. 系统管理(当软件有问题时能够及时的维护) 10. ...

Global site tag (gtag.js) - Google Analytics