• JBoss部属和EJB调用-EJB3.0入门经典学习笔记(2)


    目录

      1. 在JBoss中部属 

      2. 在Tomcat中调用EJB 

      3. 在JBoss中调用EJB  

    1. 在JBoss中部属

      1) JBoss的配置目录

        路径D:Javajboss6server下有3个子目录:minimial、default 和all,即为部属目录,分别表示3种不同配置,需要加载的JBoss服务不一样。启动JBoss时,默认加载default配置。 

          完全配置:D:Javajboss6serverall,启动所有服务,包括集群和IIOP,通过命令run -c all启动。

          默认配置:D:Javajboss6serverdefault,在没有在JBoss 命令行中指定配置名称时使用,即通过命令run启动。    

          最小配置:D:Javajboss6serverminimial,通过命令run -c minimial启动。

        如下图,启动all配置。

      

       2) JBoss的部属目录

        JBoss配置目录下的deploy目录即为部属目录,如D:Javajboss6serverdefaultdeploy。

        可以部属以下类型的文件项目:

    >> 任何jar 库(其中的类将被自动添加到JBoss 的classpath 中)

    >> EJB JAR

    >> WAR (Web Appliction aRrchive)

    >> EAR (Enterprise Application aRchive)

    >> 包含JBoss MBean 定义的XML 文件

    >> 一个包含EJB JAR、WAR 或者EAR 的解压缩内容,并以.jar、.war 或者.ear 结尾的目录。

        JBoss支持热部署,只需要把支持的文件项目或最新版本拷贝到部属目录下,JBoss会根据目录的变化或文件的时间变化来完成部属。 

    2. 在Tomcat中调用EJB 

      Tomcat Web应用调用EJB步骤如下:

        a.把调用EJB 所依赖的jar包拷贝到Tomcat下的/shared/lib目录或Web应用的WEB-INF/lib下。
          所依赖的jar一般在JBoss安装目录的client、lib/endorsed等文件夹下。

        b.把EJB接口拷贝到Web应用的/WEB-INF/classes/目录下。

        c.Tomcat Web应用访问EJB时必须明确设置InitialContext环境属性,代码如下。 

    Properties props = new Properties();
    props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
    props.setProperty("java.naming.provider.url", "localhost:1099");
    props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
    InitialContext ctx = new InitialContext(props); //如果客户端和jboss运行在同一个jvm,不需要传入props
    HelloWorld helloworld = (HelloWorld) ctx.lookup("HelloWorldBean/remote");
    out.println(helloworld.SayHello("Hello, World."));

         也可以在Web应用的classpath(/WEB-INF/classes/)下创建jndi.properties文件来配置InitialContext环境属性,环境属性会被默认加载,而不用在代码中编写。 

        此外,在Tomcat下不能调用EJB的Local接口,因为他与JBOSS 不在同一个VM中。 

    3. 在JBoss中调用EJB  

      在Tomcat下不能调用EJB的Local接口,因为他与JBOSS 不在同一个VM中。

      Web应用可以是直接发布在Jboss集成环境下。在Jboss下发布Web应用,需要把Web应用打包成war文件。

      调用EJB时不需要把EJB的接口类放入/WEB-INF/classes/目录中,否则在调用Stateful Bean就会发生类型冲突,抛出异常。

      在JBoss Web应用中,EJB的Local或Remote接口都可以被调用。

      在JBoss下,Web应用不需要明确设置JNDI访问的上下文环境,可以直接通过InitialContext ctx = new InitialContext()获得上下文环境,容器会自动赋给InitialContext正确的环境。

  • 相关阅读:
    浙江大学数据结构:02-线性结构3 Reversing Linked List (25分)
    浙江大学数据结构:02-线性结构2 一元多项式的乘法与加法运算 (20分)
    浙江大学数据结构:01-复杂度2 Maximum Subsequence Sum (25分)
    SQL事务--转载
    触发器--转载
    项目版本控制工具SVN介绍--转载
    项目版本控制工具VSS介绍--转载
    AE开发中ICircularArc接口的图形要素保存与形状简化--原创
    ArcGISEngine绘制椭圆--转载
    NPOI学习--转载
  • 原文地址:https://www.cnblogs.com/bebass/p/3541739.html
Copyright © 2020-2023  润新知