jboss学习4-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其他版本大为不同,名称非常陌生,以下图所示:
目录 描述
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,如图所示:
<?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:如果没有定义其更详细的名称,则这里留空
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&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=””来指定。
jboss学习4-jboss7开发配置指南的更多相关文章
- jboss7开发配置指南
1 Jboss7下载与安装 1.1 官方下载 路径:http://www.jboss.org/jbossas/downloads,目前最新稳定版本为7.1.1 final,分别有zi ...
- Openfire服务端源代码开发配置指南[转]
转自:http://www.micmiu.com/opensource/openfire/openfire-src-config/ 本文将图文介绍如何把openfire(以3.8.1为例)源码配置 ...
- Openfire3.9.3源代码导入eclipse中开发配置指南
这篇文章向大家介绍一下,如何把openfire3.9.3源码导入eclipse中,编译并启动的详细过程. 首先得感谢这篇文章的作者,http://www.micmiu.com/opensource/o ...
- 树莓派学习笔记——USB wifi配置指南
0 前言 树莓派既能够使用有线网络又能够无线网络,假设使用有线网络不方便的话能够借助USB wifi无线网卡让树莓派也插上无线"翅膀". 可是和使用有线网络即插即用的方式不 ...
- stenciljs 学习六 组件开发样式指南
组件不是动作,最好使用名词而不是动词, 文件结构 每个文件一个组件. 每个目录一个组件.虽然将类似的组件分组到同一目录中可能是有意义的,但我们发现当每个组件都有自己的目录时,更容易记录组件. 实现(. ...
- JBoss7配置指南
JBoss7配置指南 1. jboss各主要版本特性... 3 1.1. jboss4特性... 3 1.2. jboss5特性... 5 1.3. jboss6特性 ...
- Windows下OpenFOAM开发及使用环境配置指南 (1)【转载】
转载自:http://openfoam.blog.sohu.com/158614863.html *************************************************** ...
- lua游戏开发实践指南学习笔记1
本文是依据lua游戏开发实践指南做的一些学习笔记,仅用于继续自己学习的一些知识. Lua基础 1. 语言定义: 在lua语言中,标识符有非常大的灵活性(变量和函数名),只是用户不呢个以数字作为起始符 ...
- mac电脑使用,开发环境配置指南
mac电脑使用,开发环境配置指南 前端工具链,mac下都很好用 用brew来装软件 用brew cask来装应用 Introduction · macOS Setup Guidehttp://sour ...
随机推荐
- 分享自研实现的多数据源(支持同DB不同表、跨DB表、内存数据、外部系统数据等)分页查询工具类实现原理及使用
思考: 提起分页查询,想必任何一个开发人员(不论是新手还是老手)都能快速编码实现,实现原理再简单不过,无非就是写一条SELECT查询的SQL语句,ORDER BY分页排序的字段, 再结合limit ( ...
- XSHELL的坑
今天使用XSHELL连接虚拟机上的CENTOS7 ,刚开始还可以正常连接,后来再就连接不上. 检查了半天SSH服务都检查过了运行正常, 重启,检查配置文件. 都OK没问题就是连接不上,折腾半天还是不行 ...
- LGP3790题解
建议改为 省 选 原 题 题意:求所有生成树的边权 \(\gcd\) 之和. 看到 \(\gcd\) 立刻想反演. \[\sum_T\gcd_{e \in T}e_v \] 这里设 \(E=e_v(e ...
- LGP7704题解
来一个特别暴力的做法. 首先,如果删掉 \(x\) 和 \(y\) 的效果一定和删掉 \(xy\) 的效果相同,且代价一定不大于后者. 于是我们只删除质数,题目就变成了寻找 \(i!(1 \leq i ...
- 七天接手react项目 —— 生命周期&受控和非受控组件&Dom 元素&Diffing 算法
生命周期&受控和非受控组件&Dom 元素&Diffing 算法 生命周期 首先回忆一下 vue 中的生命周期: vue 对外提供了生命周期的钩子函数,允许我们在 vue 的各个 ...
- ArcGIS热点分析
许多论文中一般会有热点分析图,ArcGIS中提供了热点分析的功能. 先看下描述:给定一组加权要素,使用 Getis-Ord Gi* 统计识别具有统计显著性的热点和冷点. 其实非常简单,今天博主就跟大家 ...
- centOS 7 离线安装 MySQL 5.6 完美安装
centOS 7 离线安装 MySQL 5.6 centOS 7 离线安装 MySQL 5.6 准备环境 1.离线 centOS 7(此处为 centOS 7 最小安装) 2.nginx 安装文件 ( ...
- 2022IDEA配置启动lilishop的swagger展示
目录 一.概述 二.基本构建 三.Git 导入编译器 四.模块描述浅析 五.配置文档 1.注释配置文件 2.添加配置 3.暂时关闭权限 4.浏览器测试访问 5.其他需要修改模块 六.参考文献 结语 一 ...
- 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
可以有多个类,但只能有一个public的类,并且public的类名必须与文件的主文件名相同. 包含多个类的Java源文件编译之后会生成多个.class文件.
- 为什么 String 在 Java 中是不可变的?
我最喜欢的 Java 面试问题,很棘手,但同时也非常有用.一些面试者也常问这个问题,为什么 String 在 Java 中是 final 的.字符串在 Java 中是不可变的,因为 String 对象 ...