目录

  1. 在JBoss中部属 

  2. 在Tomcat中调用EJB 

  3. 在JBoss中调用EJB 

1. 在JBoss中部属

  1) JBoss的配置目录

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

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

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

      最小配置:D:\Java\jboss6\server\minimial,通过命令run -c minimial启动。

    如下图,启动all配置。

  

  2) JBoss的部属目录

    JBoss配置目录下的deploy目录即为部属目录,如D:\Java\jboss6\server\default\deploy。

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

>> 任何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正确的环境。

JBoss部属和EJB调用-EJB3.0入门经典学习笔记(2)的更多相关文章

  1. 环境配置与JBoss安装-EJB3.0入门经典学习笔记(1)

    目录 1. JDK的安装 2. JBoss的安装 3. JBoss安装目录说明 1. JDK的安装 1) 下载JDK 下载地址:http://www.oracle.com/technetwork/ja ...

  2. C#入门经典学习笔记一

    这篇主要讲C#的一些语法. 1.委托 委托类型声明的格式如下: public delegate void TestDelegate(string message); delegate 关键字用于声明一 ...

  3. TypeScript 入门教程学习笔记

    TypeScript 入门教程学习笔记 1. 数据类型定义 类型 实例 说明 Number let num: number = 1; 基本类型 String let myName: string = ...

  4. Webpack新手入门教程(学习笔记)

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 30.0px Helvetica; color: #000000 } ...

  5. 【笔记目录2】【jessetalk 】ASP.NET Core快速入门_学习笔记汇总

    当前标签: ASP.NET Core快速入门 共2页: 上一页 1 2  任务27:Middleware管道介绍 GASA 2019-02-12 20:07 阅读:15 评论:0 任务26:dotne ...

  6. Jboss EAP 6 EJB调用常见问题

    1. 调用EJB的三种方法 调用EAP 6 EJB的第一种方法,使用JBoss API,如下: Properties p = new Properties(); p.put("remote. ...

  7. MNIST机器学习入门【学习笔记】

    平台信息:PC:ubuntu18.04.i5.anaconda2.cuda9.0.cudnn7.0.5.tensorflow1.10.GTX1060 作者:庄泽彬(欢迎转载,请注明作者) 说明:本文是 ...

  8. <Node入门经典>读书笔记

    最近在读<Node入门经典>, 之前没有做笔记, 今天开始把看过自己又写了的代码放这里以免忘记. express var express = require('express') var ...

  9. OpenGL ES2.0 入门经典例子

    原文链接地址:http://www.raywenderlich.com/3664/opengl-es-2-0-for-iphone-tutorial 免责申明(必读!):本博客提供的所有教程的翻译原稿 ...

随机推荐

  1. IE6下a标签上发送ajax请求总是error

    IE6下真是处处是坑啊!!!走过了一个又一个坑,记录一下吧. 之前不知道a标签上注册click事件之后,发送ajax请求总是error.后来经过几番网上搜索,终于找到高人遇到此坑的解决办法.原来是a标 ...

  2. Fiddler 跟踪 手机页面数据包

    随着 HTML5 的急速增长,现在越来越多的人,开始涉及到移动终端的 Web 开发领域,但手机端始终没有 PC 端这么多的调试工具.即使 PC 端浏览器模拟 user-agent 进行开发,也可能会发 ...

  3. hibernate异常

    <h1> nested exception is org.hibernate.LazyInitializationException:</h1> stackoverflow:h ...

  4. 转 android 侧滑实现

    本篇博客给大家分享一个效果比较好的侧滑菜单的Demo,实现点击左边菜单切换Fragment. 效果如下: 主Activity代码: package com.infzm.slidingmenu.demo ...

  5. javac编译原理(一)

    我们都知道,计算机只能识别二进制语言,是不能直接识别java c c++等高级语言的.将高级语言转化成计算机可以是别的二进制语言,这个过程就叫编译. 有次面试,面试官问了一道“java的编译原理是什么 ...

  6. Javascript基本概念(语句和函数)

    语句 for语句 for语句中的初始化表达式,控制表达式和循环后表达式都是可选的,将这三个表达式省略,就会创建一个无线循环. ECMAScript中不存在块级作用域,因此在循环内容部定义的变量也可以在 ...

  7. 一元云购qq互联回调地址错误解决办法

    经过追踪,点击登录后调用 system/modules/api/下面的qqlogin.action.class.php 里面又调用了qq 互联php接口样例里的QC.php的QC类的方法qq_logi ...

  8. Drawable类及XMLDrawable的使用

    一.性质 可直接使用.png..jpg..gif.9.png等图片作为资源,也可使用多种XML文件作为资源.(就是这些资源都能生成Drawable对象).并对XML文件作出相关处理 二.XMLDraw ...

  9. Python之路第五天,基础(6)-模块

    模块 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个 ...

  10. iOS把一个简单的图形变成一个圆

    push是定义的一个button push.layer.masksToBounds = YES; push.layer.cornerRadius = 100; push.layer.borderWid ...