JBoss部属和EJB调用-EJB3.0入门经典学习笔记(2)
目录
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)的更多相关文章
- 环境配置与JBoss安装-EJB3.0入门经典学习笔记(1)
目录 1. JDK的安装 2. JBoss的安装 3. JBoss安装目录说明 1. JDK的安装 1) 下载JDK 下载地址:http://www.oracle.com/technetwork/ja ...
- C#入门经典学习笔记一
这篇主要讲C#的一些语法. 1.委托 委托类型声明的格式如下: public delegate void TestDelegate(string message); delegate 关键字用于声明一 ...
- TypeScript 入门教程学习笔记
TypeScript 入门教程学习笔记 1. 数据类型定义 类型 实例 说明 Number let num: number = 1; 基本类型 String let myName: string = ...
- Webpack新手入门教程(学习笔记)
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 30.0px Helvetica; color: #000000 } ...
- 【笔记目录2】【jessetalk 】ASP.NET Core快速入门_学习笔记汇总
当前标签: ASP.NET Core快速入门 共2页: 上一页 1 2 任务27:Middleware管道介绍 GASA 2019-02-12 20:07 阅读:15 评论:0 任务26:dotne ...
- Jboss EAP 6 EJB调用常见问题
1. 调用EJB的三种方法 调用EAP 6 EJB的第一种方法,使用JBoss API,如下: Properties p = new Properties(); p.put("remote. ...
- MNIST机器学习入门【学习笔记】
平台信息:PC:ubuntu18.04.i5.anaconda2.cuda9.0.cudnn7.0.5.tensorflow1.10.GTX1060 作者:庄泽彬(欢迎转载,请注明作者) 说明:本文是 ...
- <Node入门经典>读书笔记
最近在读<Node入门经典>, 之前没有做笔记, 今天开始把看过自己又写了的代码放这里以免忘记. express var express = require('express') var ...
- OpenGL ES2.0 入门经典例子
原文链接地址:http://www.raywenderlich.com/3664/opengl-es-2-0-for-iphone-tutorial 免责申明(必读!):本博客提供的所有教程的翻译原稿 ...
随机推荐
- ProgressBar、RatingBar和Spinner控件
1.ProgressBar.SeekBar与RatingBar控件 ProgressBar控件,也就是我们通常的进度条控件,可以显示加载的进度等.SeekBar控件,滑块控件,可以根据用户的需要动态为 ...
- asp.net访问母版页控件方法
一.使用多种方式为内容页加载母版页默认情况下是给单个内容页指定一个母版页加载,当多个内容页需加载到同一个母版页时,我们可以通过配置文件为多个内容页批量加载母版页,另外,还可以在PreInit事件中动态 ...
- iOS开发那些事儿(五)Objective-C浅拷贝与深拷贝
浅拷贝:copy操作出来的对象指针直接指向模板的地址.即两个对象公用一块内存地址 #import <Foundation/Foundation.h> int main(int argc, ...
- eclipse最有用快捷键整理(转)
eclipse最有用快捷键整理 可以通过菜单栏中Window–>Preferences–>General–>Keys来修改快捷键绑定. 编辑 Ctrl+1 快速修复(最经典的快捷键, ...
- 一元云购qq互联回调地址错误解决办法
经过追踪,点击登录后调用 system/modules/api/下面的qqlogin.action.class.php 里面又调用了qq 互联php接口样例里的QC.php的QC类的方法qq_logi ...
- centos下python的pymssql模块安装及简单使用
1.安装pymssq模块 1-1.环境准备: 1-1-1.unixODBC安装 yum install unixODBC unixODBC-devel -y 1-1-2.freetds安装 下载 fr ...
- 各种语言中的urlencode方法
转载自:http://blog.sina.com.cn/s/blog_3f195d2501000a9b.html URLENCODE和URLDECODE是比较常用的URL参数转换方法,为以后使用方便, ...
- web 之MVC
MVC 把一个应用的输入.处理.输出流程按照Model, View, Controller 的方式进行分离,这样一个应用被分为三层:模型层.视图层.控制层. 1.View 2.Controller 在 ...
- List<int>是值类型还是引用类型
class Program { static void Main(string[] args) { List<int> lst = new List<int>(); lst.A ...
- setInterval和setTimeout的使用区别
setTimeout和setInterval的使用 这两个方法都可以用来实现在一个固定时间段之后去执行JavaScript.不过两者各有各的应用场景. 方 法 实际上,setTimeout和setIn ...