jboss7开发配置指南

1      Jboss7下载与安装


1.1     官方下载


路径:http://www.jboss.org/jbossas/downloads,目前最新稳定版本为7.1.1
final,分别有zip和gz两个版本,本文介绍xp下的zip版本。

1.2     目录介绍与启动


把下载的zip包解压到相关目录,如目录E:/dev_tools/jboss7/,jboss7的目录结构与之前jboss其他版本大为不同,名称非常陌生,以下图所示:

1.2.1  目录介绍


目录  描述

bin Unix 和Windows 环境下的启动脚本和启动配置文件

bundles  存放 OSGI bundle

docs/schema  存放 XML schema 定义文件

domain  domain 模式的配置文件、部署内容和可写区域等

modules  存放各种模块,AS 7 是基于模块化的类加载架构

standalone  standalone 模式的配置文件、部署内容和可写区域等

welcome-content  欢迎页面

standalone目录结构

configuration   Standalone 模式的配置文件,所有配置信息都存放于此。

data   服务器写入的持久化信息,比如通过 web 管理控制台或CLI部署的项目存放在content 目录下。

deployments   用户部署内容存放目录,服务器运行时能自动侦测和部署这些内容。

lib/ext   利用扩展列表机制安装的 libraryjar 的存放位置。

log  日志文件

tmp   临时文件

1.2.2  启动jboss


目前只需单独部署jboss7,故以standalone方式启动,即进行JBOSS_HOME/bin目录下双击standalone.bat就可以启动服务器了,web默认端口为8080,后台管理默认端口为9990。若需要更改端口,请在JBOSS_HOME/standalone/configuration/standalone.xml中最后位置那修改。如图:

1.3    Eclipse中配置jboss7


1.请查看你的eclipse版本,Help->About
eclipse
SDK,记下你用的eclipse的版本号 
2.如果你的eclipse是3.5版,那么请按以下步骤安装 
你需要在help->install
new
software中,输入以下新的站点并安装 
http://download.eclipse.org/webtools/updates/ 
http://download.eclipse.org/birt/update-site/2.5/ 
http://m2eclipse.sonatype.org/sites/m2e/

上面这些是jbosstools所必须的相关插件,装好这些后,添加以下站点,并安装jbosstools,这是一套插件,可以自己勾选需要的功能。 
http://download.jboss.org/jbosstools/updates/JBossTools-3.1.1.GA/

3.如果你的eclipse是3.6版,那么按以下步骤安装 
首先也是必要条件的安装,在help->install
newsoftware中,依次添加以下新站点并安装 
http://download.eclipse.org//birt/update-site/2.6/ 
http://m2eclipse.sonatype.org/sites/m2e/ 
http://subclipse.tigris.org/update_1.6.x 
http://dl.google.com/eclipse/plugin/3.6/

装好上面的以后,添加jbosstools的update
site并安装 
http://download.jboss.org/jbosstools/updates/stable/helios/

4.如果你的eclipse是最新的3.7版,那么直接在install
new
software菜单中,输入以下更新站点并安装,其他eclipse会搞定

在Eclipse里面安装JBossTools3.3

a、【Help】——>【InstallNew Software】——>【Add】

Name:JBossTools

Location: http://download.jboss.org/jbosstools/updates/development/indigo/

——>【OK】——>【SelectAll】——>【Next】

——>(中间的步骤一直NEXT,需要选择同意)——>【Finish】

b、【Help】——>【InstallNew Software】——>【Add】

Name:JBossTools Aop

Location: http://download.jboss.org/jbosstools/updates/development/indigo/soa-tooling/

——>【OK】——>【SelectAll】——>【Next】

——>(中间的步骤一直NEXT,需要选择同意)——>【Finish】

2      项目部署


Jboss7项目部署与jboss4.2有很大区别,最主要原因是由于类的加载模式改变了。Jboss4.2部署相对简单,只需将相应的包部署到lib和deploy目录即可,类加载器会按层次自动加载,不用配置依赖关系。而jboss7完全不一样,jboss7是按模块化加载,不同模块由不同类加载器加载,其他模块的jar包,对其是不可见的,这时需要手动配置包之间依赖关系,否则会报ClassNotFoundException等错误。

Jboss7部署项目有多种方式,如war和ear包部署,不同部署方式有很大的区别,需要配置的文件也可能不一样。由于我们之前的项目是使用jboss4.2部署的,所以jboss7部署要尽量要与其相似,相对简单。

2.1.1  部署第三方jar包

Jboss7中的jar一般是以module方式部署。根据包名路径在JBOSS_HOME/module下建立单独的module,比如:struts2的包名为org.apache.struts2,此包名能包括struts2-core-2.0.14.jar下的所有文件,以包名层级建立文件,最后一级为版本号,默认名为main,如图所示:

然后把struts2的jar包放到main目录中,并生成与jar包名一样,后缀名为index文件,该文件内容为jar中所有完整包名。同时手动创建module.xml文件,内容为:

<?xmlversion="1.0" encoding="UTF-8"?>

<modulexmlns="urn:jboss:module:1.1" name="org.apache.struts2">

<resources>

<resource-root path="struts2-core-2.0.14.jar"/>

<!-- Insert resources here
-->

</resources>

<dependencies>

<modulename="asm.asm"/>

<modulename="javax.api"/>

<modulename="org.antlr"/>

<modulename="org.apache.commons.collections"/>

<modulename="org.apache.commons.beanutils"/>

<modulename="org.apache.commons.lang"/>

<modulename="org.apache.commons.codec"/>

<modulename="org.apache.commons.logging"/>

<modulename="org.dom4j"/>

<modulename="org.javassist"/>

<modulename="org.jboss.logging"/>

<modulename="javax.servlet.api"/>

<module name="javax.servlet.jsp.api"/>

<modulename="freemarker"/>

<modulename="ognl"/>

<modulename="com.opensymphony.xwork2"/>

</dependencies>

</module>

其中module的name为struts2包名,resource-root的path为struts2 jar全名称。

Dependencies配置依赖关系,即所需import的包,如org.dom4j,struts2使用它来解析xml文件,因此必须显式地指定依赖关系,否则会报ClassNotFoundException。其它依赖如此类似。

2.1.2  部署项目ifc包


Ifc包部署方式与部署第三方jar包完全一样,以module方式部署,这样就能保证ifc包先于ejb和war包启动。

2.1.3 
部署war、ejb包和配置依赖关系

项目一般包含war和ejb包,都部署到JBOSS_HOME/standalone/deployments/中,jboss7默认部署路径。若单独使用的第三方jar包,可考虑打包到war包中的WEB-INF/lib中,其他项目无法共享此jar包。

War,ejb包的依赖关系就统一配置在standalone.xml中,这样所有项目都能共享。配置项如下:

<subsystemxmlns="urn:jboss:domain:ee:1.0">

<ear-subdeployments-isolated>false</ear-subdeployments-isolated>

<global-modules>

<module
name="com.mipt.util"slot="main"/>

<modulename="org.apache.struts2" slot="main"/>

<modulename="com.opensymphony.xwork2" slot="main"/>

<modulename="org.apache.commons.lang" slot="main"/>

<modulename="org.apache.commons.io" slot="main"/>

<modulename="com.mipt.admin" slot="main"/>

<modulename="com.mipt.ucenter" slot="main"/>

<modulename="com.mipt.appstore" slot="main"/>

<modulename="org.apache.commons.logging" slot="main"/>

<module
name="com.googlecode.jsonplugin"slot="main"/>

</global-modules>

</subsystem>

如war包中需要使用到struts2,需要显式地依赖struts2module

3      JNDI获取


Jboss7获取jndi方式与之前版本完全不一样,使用了新技术实现。请看原文说法:

Previous versions of JBoss AS (versions < 7.x) used JNP project asthe JNDI
naming implementation. Developers of client applications of previousversions of
JBoss AS will be familiar with the jnp:// PROVIDER_URL URL theyused to use in
their applications for communicating with the JNDI server on theJBoss
server.

Starting AS7, the JNP project is not used. Neither on the server sidenor on
the client side. The client side of the JNP project has now beenreplaced by
jboss-remote-naming project. There were various reasons why the JNPclient was
replaced by jboss-remote-naming project. One of them was the JNPproject did not
allow fine grained security configurations while communicatingwith the JNDI
server. The jboss-remote-naming project is backed by thejboss-remoting project
which allows much more and better control over security.

3.1    绑定jndi方式


<subsystem xmlns="urn:jboss:domain:naming:1.1">

<bindings>

<lookup name="AdminEjb/local" lookup="ejb:/admin_ejb/AdminEjb!com.mipt.admin.ifc.AdminIfc"/>

</bindings>

</subsystem>

此方式配置简单,不用修改代码,但需要重启服务器才生效。

主要是配置<lookup/>,name可自定义简称,根据name能找到真正的jndi,然后返回对应的ejb实例。

若不需要更改原来项目中获取方式的代码,只需要把name改成对应的AdminEjb/local即可。

Lookup的值为实际jndi路径,命名规则如下:

JNDI: ejb:appName
/moduleName/distinctName/beanName!viewClassName

appName:这里是.EAR包的名称,如果你打包成JAR发布的话,这里则留空

moduleName:表示模块名,也就是ejb包名,但不包括后缀.jar,如admin_ejb.jar。moduleName为admin_ejb

distinctName:如果没有定义其更详细的名称,则这里留空

beanName:这里为实现类的名称

viewClassName:为接口全路径名称

缺点:在standalone.xml绑定jndi的话,上线时运维人员需手动添加绑定,使用不方便。

3.2    代码定义jndi

之前接口代码中一般会把jndi以静态变量定义,如:adminIfc中的

public static final java.lang.Stringjndi = “AdminEjb/local”

现在只须把变量值更改为jndi =
“ejb:/admin_ejb/AdminEjb!com.mipt.admin.ifc.AdminIfc”即可.

4      数据源配置


4.1    创建Module和注册数据源

创建数据源Module与前面介绍的方法一样,配置具体步骤如下:

1. 创建驱动程序Module

首先建立驱动程序的Module,

2. 注册数据源驱动程序

修改$JBOSS_HOME/standalone/configuration/standalone.xml文件,查找datasources节点下drivers节点,在drivers节点下添加

<driver name="mysql" module="com.mysql">

<driver-class>com.mysql.jdbc.Driver</driver-class>

</driver>

3. 注册数据源

修改$JBOSS_HOME/standalone/configuration/standalone.xml文件,查找datasources节点,并添加datasource节点

<datasource
jndi-name="java:/MySQLDS-admin"pool-name="adminDS" enabled="true"
jta="true"use-java-context="true" use-ccm="true">

<connection-url>jdbc:mysql://localhost/admin?useUnicode=true&amp;characterEncoding=utf-8</connection-url>

<driver-class>com.mysql.jdbc.Driver</driver-class>

<driver>mysql</driver>

<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>

<pool>

<min-pool-size>10</min-pool-size>

<max-pool-size>100</max-pool-size>

<prefill>true</prefill>

<use-strict-min>false</use-strict-min>

</pool>

<security>

<user-name>root</user-name>

<password></password>

</security>

<statement>

<prepared-statement-cache-size>100</prepared-statement-cache-size>

<share-prepared-statements/>

</statement>

</datasource>

4.2    获取数据源

获取方式与原来一致,并没有变化,主要是配置在ejb中的META-INF/persistence.xml中。

在jboss7中若多个ejb部署一起时,需指定ejb具体调用的数据源名称,否则报错。

@PersistenceContext(unitName="admin")

private EntityManager em;

private AdminDao dao;

jboss4.2默认是读取所在ejb的persistence中的数据源,但jboss7须使用参数unitName=””来指定。

jboss7开发配置指南,布布扣,bubuko.com

时间: 2024-10-20 18:58:43

jboss7开发配置指南的相关文章

Openfire3.9.3源代码导入eclipse中开发配置指南

这篇文章向大家介绍一下,如何把openfire3.9.3源码导入eclipse中,编译并启动的详细过程. 首先得感谢这篇文章的作者,http://www.micmiu.com/opensource/openfire/openfire-src-config/,正是在这篇文章的帮助之下,我成功将openfire导入eclipse,本文大部分内容也是那篇文章的,我冠以原创之名,是为了留个笔记和在新版中出现的问题给大家一点帮助,毕竟我也花了不少的时间,希望不会被说成侵权. 入正题,看到这篇文章的的网友应

Chrome 开发工具指南

Chrome 开发工具指南 谷歌 Chrome 开发工具,是基于谷歌浏览器内含的一套网页制作和调试工具.开发者工具允许网页开发者深入浏览器和网页应用程序的内部.该工具可以有效地追踪布局问题,设置 JavaScript 断点并可深入理解代码的最优化策略. 适用人群 这篇教程将会带你从头开始使用学习如何利用 Google 提供的组件进行 Chrome 上的相关开发调试工作. 通过本教程,你将学会如何使用这些工具,并且学会如何通过它来分析调试提供的 Demo . 学习前提 在你继续本教程之前,你必须对

HTML5 Plus移动App(5+App)开发入门指南

HTML5 Plus移动App,简称5+App,是一种基于HTML.JS.CSS编写的运行于手机端的App,这种App可以通过扩展的JS API任意调用手机的原生能力,实现与原生App同样强大的功能和性能. HTML5 Plus规范 通过HTML5开发移动App时,会发现HTML5很多能力不具备.为弥补HTML5能力的不足,在W3C中国的指导下成立了www.html5plus.org组织,推出HTML5+规范.HTML5+规范是一个开放规范,允许三方浏览器厂商或其他手机runtime制造商实现.

微信开发配置文档

微信开发配置文档 请求SDK接口 1, 绑定域名 公众号设置 菜单 --> 功能设置 绑定域名 : http://www.xxxxx.com2, 记录应用ID : AppID(应用ID)wxd9c94eba232190a1 应用密码: 8ff9f1fd268bdb643fc27354811d973a3, 找到开发者工具 --> 开发者文档 -->微信网页开发 -->JS-SDK说明文档 页面底部 下载 sample.php 示例DEMO 打开sample.php 设置 APPID

API接口开发 配置、实现、测试

Yii2 基于RESTful架构的 advanced版API接口开发 配置.实现.测试 环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到下面的代码 LoadModule rewrite_module modules/mod_rewrite.so 将其前面的#去掉,如果没有找到则添加进去. 找到一下代码 <Directory "C:/phpStudy/Apache/cgi-bin"> AllowOverride

【spark系列3】spark开发简单指南

分布式数据集创建之textFile 文本文件的RDDs能够通过SparkContext的textFile方法创建,该方法接受文件的URI地址(或者机器上的文件本地路径,或者一个hdfs://, sdn://,kfs://,其他URI).这里是一个调用样例:scala> val distFile = sc.textFile("data.txt")distFile: spark.RDD[String] = [email protected] 分布式数据集操作之转换和动作 分布式数据集

Visual Studio Code 配置指南

Visual Studio Code (简称 VS Code)是由微软研发的一款免费.开源的跨平台文本(代码)编辑器.在我看来它是「一款完美的编辑器」. 本文是有关 VS Code 的特性介绍与配置指南,相关设置主要针对 Mac OS X 平台.在快捷键部分, ? 指 Command 键,? 指 Shift 键,? 指 Control 键,? 指 Option/Alt 键. 1. Visual Studio Code 特性简介 1.1 Git 集成 如上图所示,VS Code 默认集成了 Git

mxGraph进阶(一)mxGraph教程-开发入门指南

mxGraph教程-开发入门指南 概述 mxGraph是一个JS绘图组件适用于需要在网页中设计/编辑Workflow/BPM流程图.图表.网络图和普通图形的Web应用程序.mxgraph下载包中包括用javascript写的前端程序,也包括多个和后端程序(java/C#等)集成的例子.以下是mxgraph应用的几个例子.(你可以到www.longboo.com的主页下载mxgraph和更多的mxgraph实例) 电力系统案例 工作流设计器 化工系统案例 mxGraph客户端是一个图形组件,并提供

【转】CentOS 6 服务器安全配置指南

原文连接: CentOS 6 服务器安全配置指南(通用) Linux 是一个开放式系统,可以在网络上找到许多现成的程序和工具,这既方便了用户,也方便了黑客,因为他们也能很容易地找到程序和工具来潜入 Linux 系统,或者盗取 Linux 系统上的重要信息.不过,只要我们仔细地设定 Linux 的各种系统功能,并且加上必要的安全措施,就能让黑客们无机可乘.一般来说,对 Linux 系统的安全设定包括取消不必要的服务.限制远程存取.隐藏重要资料.修补安全漏洞.采用安全工具以及经常性的安全检查等. 本