JBoss系列
文章平均质量分 85
主要介绍JBoss社区(http://www.jboss.org/)的企业应用产品,包括:JBoss AS/WildFly,jBPM,Drools,jGroups,JBossCache,JBoss Data Grid(Infinispan)
ksoong
Kylin Soong has six years' experience in working with JBoss and JEE, including developing and maintaining, proficiency in Java programming, proficiency in JEE environment(JBoss, Weblogic) development, knowledge of Middleware architecture and performance tuning.
展开
-
JBoss 系列一 O O:Maven jBPM 6 集成示例
概述jBPM 6 中底层架构基于 Maven,所以我们可以很容易的进行 Maven jBPM 6 集成示例,本文分三个部分:基本原理介绍Maven jBPM 6 集成jBPM 6 中使用 Maven 特性实时监听服务器端的更新基本原理介绍如下图如图所示,我们有两台服务器,jBPM 6 服务器和客户端服务器:首先 jBPM 6 服务器如果我们通过 Work Bench 将编辑完成的流程打包发布,它会原创 2014-05-11 14:51:33 · 6619 阅读 · 5 评论 -
JBoss 系列九十九:Rest WebService jBPM 6 集成示例
概述jBPM 6 提供 Rest API 供第三方应用整合使用 jBPM 6,本文演示如果通过 Rest API:启动流程获取流程实例信息启动 User Task完成 User Task jBPM 6 中使用 RestEasy 实现 Rest WebService ,所以我们通过 Rest 客户端 API 与 jBPM 6 所提供的 Rest API 交互。本文所使用的流程如下如上流程只有一个 U原创 2014-05-11 13:43:48 · 9230 阅读 · 4 评论 -
JBoss 系列九十八:JBoss MSC - 浅析 ServiceContainer
ServiceContainer 接口类图原创 2014-05-05 21:43:55 · 3618 阅读 · 1 评论 -
JBoss 系列九十七:JBoss MSC - 浅析 ServiceName
概述JBoss MSC 是WildFly 8 和 JBoss 7的底层容器原创 2014-05-04 15:51:54 · 2673 阅读 · 1 评论 -
JBoss 系列九十六:JBoss MSC - 简单介绍及一个简单示例
什么是 JBoss MSC JBoss MSC 即 JBoss Modular Service Container,是第三代 JBoss 产品 JBoss 7和WildFfly的内核,JBoss MSC 替换了之前的 JMX Kernel 和 MicroContainer,它主要特定可以总结如下三点:高并发机器(A highly concurrent state machine)无多相位,设计简单原创 2014-04-28 20:55:44 · 3782 阅读 · 4 评论 -
JBoss 系列九十五:浅谈如何设计一个好的数据库
概述最近阅读了一篇关于何设计一个好的数据库的文章,本文将其分享如下。数据库的设计,底层持久化是任何Java企业应用的一个关键部分,比如第一个版本的Java发布,JDBC就作为JDK的一部分。大家者肯定同意,通常情况下,数据持久化是自己应用的瓶颈所在,但不幸的是,找出问题的根源不是一个简单的事情,需要调查在许多领域。尽管当前趋势是将数据库的设计简单化,例如使用Hibernate可以自动完成数据库的设原创 2014-04-21 13:30:12 · 3502 阅读 · 1 评论 -
JBoss 系列九十四:Spring jBPM 6 集成示例
https://github.com/kylinsoong/jbpm-6-examples/tree/master/spring-integration 为Spring jBPM 6 集成示例,Maven导入Eclipse后可以直接运行测试。原创 2014-03-27 15:04:47 · 9123 阅读 · 10 评论 -
JBoss 系列九十三: 高性能非阻塞 Web 服务器 Undertow
概述WildFly 8 包含了一个全新的Web服务器(Undertow),WildFly 8 默认的Web服务器为Undertow。一句话概括什么是Undertow - 高性能非阻塞 Web 服务器。Undertow 主要有以下几个特点:轻量化 - Undertow 是一个Web 服务器,但它不像传统的Web 服务器有容器的概念,它由两个核心jar包组成,使用API加载一个Web应用可以使用小于1原创 2014-02-20 21:10:56 · 13016 阅读 · 4 评论 -
JBoss 系列九十二:WildFly 8 最终版发布,下载安装,启动测试
WildFly 8 最终版于 2014年2月11日发布,WildFly 8 是第三代 JBoss 架构下(模块化,轻量化,云支持)的第二次大的发布(JBoss 7 为第一次)。本文包括测试使用 WildFly 8 的一些记录。下载安装从 http://wildfly.org/downloads/ 下载 wildfly-8.0.0.Final.zip,解压安装生成 wildfly-8.0.0.Fin原创 2014-02-14 16:27:08 · 11250 阅读 · 12 评论 -
JBoss 系列九十一:JBoss 构建的高可用集群环境使用 Apache 的 mod_rewrite 转发根路径到特定应用
如 使用Apache httpd(mod_cluster)和JBoss构架高可用集群环境,使用Apache httpd(mod_jk)和JBoss构架高可用集群环境 以及 使用Apache httpd(mod_proxy)和JBoss构架高可用集群环境 中所描述的,我们一般通过位于 JBoss 集群之前的 Apache 服务器作为负载均衡器,构建集群应用,这种情况,一个HTTP的请求大致如下图所示原创 2014-02-14 13:18:29 · 3719 阅读 · 2 评论 -
JBoss 系列九十: 红帽发布 JBoss BPM Suite 6 最终版本
前天红帽软件发布了Red Hat JBoss BPM Suite 6 最终版,这意味着之前发布的社区版6.0(jBPM 6 发布,快速安装,新功能介绍)有对应企业版的支持,社区版6.0将会被以7+3(7年正常支持,3年延长支持)的模式进行维护和支持。通常社区版的产品 represent the latest development releases and are not supported.而企原创 2014-02-07 17:14:40 · 4265 阅读 · 3 评论 -
JBoss 系列八十九: JBoss 7/WildFly 中如何阻止一个模块被默认加载
概述如前面 JBoss Modules 简单介绍等的介绍,JBoss 7/WildFly 使用模块化的类加载机制,它定义了模块之间的明确依赖关系, JBoss 7/WildFly 启动时一些模块会被默认加载,JBoss 的日志系统是被默认加载的。我们本文以log4j为例,说明如何做到war应用中不使用 JBoss 默认的日志系统,使用自己定义的日志系统。步骤我们分两步来完成:原创 2014-01-23 17:20:00 · 4640 阅读 · 1 评论 -
JBoss 系列八十八: JBoss 安全问题 - 如何隐藏 web 应用出错时页面上显示的 JBoss 信息
概述Web应用出错时通常抛出403,404,500等异常,JBoss中部署的web应用如果没有考虑错误页面的处理,出错时错误页面如下所示:如上在出错页面上包括两部分信息:页头显示JBossWeb的版本信息页面中显示JBossWeb相关的版本信息在实际的生产中会造成安全隐患,比如黑客知道服务器是JBoss,从而搜寻JBoss相关的安全漏洞来攻击服务。本原创 2014-01-16 17:48:20 · 7352 阅读 · 1 评论 -
JBoss 系列八十七: JBoss 中 JMS 消息设定 TimeToLive 的一个误解
概述我们在启动JBoss后通常使用如下代码设定消息的TimeToLivejavax.jms.MessageProducer;MessageProducer msgProducer = null;session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);msgProducer = session.createProdu原创 2014-01-15 09:20:57 · 2882 阅读 · 2 评论 -
JBoss 系列八十六: JBoss Modules module.xml 中 export="true" 是什么意思
概述JBoss Modules module.xml 中dependencies有export="true"配置,如下: 本文通过一个实现来验证export="true"的意思。实验假设我们有三个module:A,B,C 关系如下图:A 依赖于 BB 依赖于 CB 中 dependencies 定义 e原创 2014-01-14 13:24:01 · 4681 阅读 · 1 评论 -
JBoss 系列八十五: JBoss Modules 简单介绍
概述从JBoss AS7开始,Classloader这块开始使用全新的JBoss Modules。本文简单介绍说明JBoss Modules的设计思路,以及给出一个例子说明这一设计思路。JBoss Modules 介绍我们都知道,Java一直使用classpath的方式来加载各种class和jar的资源。这样的方式会造成许多问题,比如下面这些经常会遇到的问题: 一个大原创 2014-01-11 13:21:09 · 7038 阅读 · 10 评论 -
JBoss 系列八十四: 使用 JMS session 时的一个误区
概述我们通常使用 JMS session 连接JMS消息队列,创建生产者往队列发送消息,或创建消费者从队列消费消息,BaseJMSTaskServer.java中的start()方法就是一个例子,注意BaseJMSTaskServer.java使用到JMS 相关的API如下:import javax.jms.MessageConsumer;import javax.jms.Que原创 2014-01-10 18:34:27 · 3576 阅读 · 2 评论 -
JBoss 系列八十三: jBPM 6 中 Process Variable 和 Task Variable 以及它们之间的Mapping模式
概述jBPM 6 中 Process Variable 和 Task Variable 以及它们之间的关系如下图所示:如上,Process Variable位于Process 上下文中,Task Variable 位于Task 上下文,Task Variable 被 Task WorkItem使用,Task 通过Input Mapping获取Process 上下文中的变量,Ta原创 2014-01-10 09:15:11 · 5476 阅读 · 2 评论 -
JBoss 系列八十二: jBPM 6 快速开始的三段视频
本文包括三段视频说明如何快速开始使用 jBPM 6 创建执行流程。视频一如jBPM 6 中使用 jbpm-console 创建执行 BPM 流程 - I中所示,本视频演示如何在 jBPM console 创建执行简单的BPM流程。youku 链接youtube链接视频二如jBPM 6 中使用 jbpm-console 创建执行 BPM 流程 - II中所示,本视频演示如何创原创 2014-01-09 09:11:00 · 6758 阅读 · 2 评论 -
JBoss 系列八十一: jBPM 6 中使用 jbpm-console 创建执行 BPM 流程 - II
概述如jBPM 6 中使用 jbpm-console 创建执行 BPM 流程 - I中所示,我们在jbpm-console 上创建执行了简单的BPM流程,本文在前文的基础之上演示如何创建执行一个较复杂的流程,即流程开始和执行User Task时需要输入数据。创建流程如 前文 中所示,选择Authoring -> Project Authoring,在Project Explorer原创 2014-01-08 09:18:18 · 5792 阅读 · 7 评论 -
JBoss 系列八十: jBPM 6 中使用 jbpm-console 创建执行 BPM 流程 - I
本文通过如下步骤说明如何在 jBPM console 创建执行BPM流程。安装jBPM6,添加用户kylin到jBPM 6用户如下,并启动jBPM 6安装jBPM6请参照jBPM 6 发布,快速安装,新功能介绍。编辑../standalone/configuration/users.properties,添加kylin=kylin到用户列表末尾:admin=adminkr原创 2014-01-06 17:57:54 · 8376 阅读 · 8 评论 -
JBoss 系列七十九: jBPM 6 示例之 evaluation
概述jBPM Evaluation 示例具有悠久的历史,也是传统的jBPM示例,jBPM首页(http://www.jboss.org/jbpm)就有Evaluation 示例的介绍,jBPM默认安装完成Evaluation 示例也被默认安装,Evaluation 示例流程如下图:Evaluation流程有7个节点:Start Event - 表示流程开始User Ta原创 2014-01-04 18:57:20 · 7767 阅读 · 5 评论 -
JBoss 系列七十八: jBPM 6 使用 Mysql 替换默认的 H2 数据库
概述通过jBPM 6 发布,快速安装,新功能介绍部分ant install.demo安装完成的jBPM 6默认使用H2内存数据库,本文介绍如何使用 Mysql 替换默认的 H2 数据库。创建所需要的Mysql数据库和用户我们使用root用户登录Mysql,执行如下命令即可以完成创建:CREATE DATABASE jbpm6;create user 'jbpm6_user'@原创 2014-01-03 17:26:20 · 11682 阅读 · 13 评论 -
JBoss 系列七十七: 2014跨年篇 - 年终总结随笔,企业应用软件的来年展望
写在开篇人生就是一场编码(https://github.com/kylinsoong)与码字(http://blog.csdn.net/kylinsoong),套用CSDN的一句话,不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累,2014我将继续坚持不懈地积累!“子曰:无欲速,无见小利;欲速则不达,见小利则大事不成”。这是论语子路篇孔子告诫年轻人做事应该掌握渐变的道理原创 2013-12-31 12:42:43 · 4427 阅读 · 4 评论 -
JBoss 系列七十六: jBPM 6 示例之 rewards-basic
概述首先我们明确jBPM 6 示例之 rewards-basic与前一篇jBPM 6 示例之 rewards的异同,相同点它们都使用同样的流程,即如下:不同之处有两个:rewards-basic演示如何在 JEE 6环境中整合使用 jBPM 6,而前一篇(jBPM 6 示例之 rewards)是在J2SE环境下运行rewards示例rewards-basic使用Ke原创 2013-12-30 11:54:15 · 7921 阅读 · 18 评论 -
JBoss 系列七十五: jBPM 6 示例之 rewards
概述如上篇(使用 BPMN2 Modeler 创建 jBPM 6 流程)中所示,我们演示通过 jBPM 6 eclipse 插件如何 step by step 的创建 BPMN2 流程,原创 2013-12-30 10:36:56 · 12679 阅读 · 33 评论 -
JBoss 系列七十四:使用 BPMN2 Modeler 创建 jBPM 6 流程
概述流程设计在BPM中占很重要的地位,本文演示如何使用 BPMN2 Modeler 创建一个BPMN流程,并运行该流程,如前面 jBPM 6 开发 eclipse 插件安装中介绍的,插件安装完成BPMN2 Modeler已经安装,更多关于BPMN2 Modeler参照:http://www.eclipse.org/bpmn2-modeler/https://github.com/e原创 2013-12-26 16:24:09 · 14194 阅读 · 26 评论 -
JBoss 系列七十三:jBPM 6 开发 eclipse 插件安装
概述与之前的jBPM 5相比,jBPM 6 新引入的kjars及mavenized的特性,使流程开发设计与之前有了很大的不同,本文主要说明jBPM 6 相关 eclipse 插件安装,及使用安装好的插件初次测试jBPM开发。jBPM 6 开发 eclipse 插件安装从http://sourceforge.net/projects/jbpm/files/jBPM%206/jbpm-6.原创 2013-12-23 22:10:29 · 14853 阅读 · 21 评论 -
JBoss 系列七十二:jBPM 6 新功能/特性介绍(API 层面)
概述jBPM 6.0 最终版已与上月底发布,与jBPM 5相比有很大变化,本文从API编程的角度去简单说说jBPM 6,本文设计到内容包括:2个重要的接口运行状态管理jBPM 服务注入 (CDI)2个重要的接口jBPM 6最主要的两个接口指的是KieSession (ProcessRuntime)和TaskService。KieSession 是最常用与引擎交互原创 2013-12-23 17:55:48 · 11337 阅读 · 2 评论 -
JBoss 系列七十一:jBPM 6 发布,快速安装,新功能介绍
概述jBPM 6.0 最终版已与上月底发布,本文主要从两个方面去介绍jBPM 6.0 :快速安装新功能介绍快速安装快速安装包括如下三步:1. 下载安装包从http://sourceforge.net/projects/jbpm/files/jBPM%206/jbpm-6.0.0.Final/选择下载jbpm-6.0.0.Final-install原创 2013-12-23 17:36:03 · 20833 阅读 · 18 评论 -
JBoss 系列七十:一个简单的 CDI Web 应用
概述本文通过一个简单的 CDI Web 应用演示dependency injection, scope, qualifiers 以及EL整合。应用部署完成后我们可以通过http://localhost:8080/moodchecker 来访问Web 应用欢迎页面,Mood在good和bad之间不停变化。通过本文,我们可以明白how qualifiers influence the sele原创 2013-12-18 22:07:18 · 3873 阅读 · 0 评论 -
JBoss 系列六十九:CDI 基本概念
概述如果说EJB,JPA是之前JEE(JEE5及JEE5之前)中里程碑式的规范,那么在JEE6,JEE7中CDI可以与之媲美,CDI(Contexts and Dependency Injection),即上下文依赖注入,它是众多JEE规范中的一个,从JEE6开始CDI正式成为JEE规范,但CDI相关的概念不是新的,依赖注入的概念已经存在了许多年,相关的流行框架包括Spring,Google原创 2013-12-18 21:46:31 · 4269 阅读 · 1 评论 -
JBoss 系列六十八:JBoss 7/WildFly 集群之有状态会话Bean集群 - II(示例)
概述本文分两个部分:有状态会话Bean集群和有状态会话Bean集群示例有状态会话Bean集群我们通过如下五句话来明白无状态会话Bean集群的基本理论。状态有状态会话Bean的状态指的是每一个client stub在容器中都有一个对应的实例,通过同一个client stub的连续请求被认为是一个会话,状态在服务器端维护。Sticky 特性不像无状态会话Bean的负载均原创 2013-12-16 18:15:08 · 2955 阅读 · 0 评论 -
JBoss 系列六十七:JBoss 7/WildFly 集群之有状态会话Bean集群 - I(基本理论)
概述我们通过如下五个方面去明确有状态会话Bean集群的基本理论:状态Sticky 特性容错集群拓扑EJB client stub状态有状态会话Bean的状态指的是每一个client stub在容器中都有一个对应的实例,通过同一个client stub的连续请求被认为是一个会话,状态在服务器端维护。Sticky 特性不像无状态会话B原创 2013-12-16 18:13:32 · 2252 阅读 · 0 评论 -
JBoss 系列六十六:JBoss 7/WildFly 集群之无状态会话Bean集群 - II(示例)
概述本文分两个部分:无状态会话Bean集群和无状态会话Bean集群示例无状态会话Bean集群我们通过如下五句话来明白无状态会话Bean集群的基本理论。无数据的丢失无状态会话Bean avoids holding data on behalf of its client,这使得无状态会话Bean集群变得简单,因为我们不必担心数据的丢失。负载均衡同一个EJB Clien原创 2013-12-13 16:14:39 · 3108 阅读 · 4 评论 -
JBoss 系列六十五:JBoss 7/WildFly 集群之无状态会话Bean集群 - I(基本理论)
概述我们通过如下五个方面去明确无状态会话Bean集群的基本理论:无数据的丢失负载均衡容错集群拓扑EJB client stub无数据的丢失无状态会话Bean avoids holding data on behalf of its client,这使得无状态会话Bean集群变得简单,因为我们不必担心数据的丢失。负载均衡同一个EJB Clien原创 2013-12-13 16:12:47 · 2640 阅读 · 0 评论 -
JBoss 系列六十四:部署JMX MBean到JBoss 7/WildFly
概述在JBoss 6及JBoss 6之前的版本,JBoss使用JMX MBean架构,例如,JBoss 6中我们可以将MBean通过*-bean.xml,打包在sar包中,部署于JBoss。但在JBoss 7/WildFly中我们如何部署JMX MBean呢?本文给出一个简单步骤来完成这一需求。JBoss 7/WildFly中 MBean部署需要依赖JBoss service,这就需要我们原创 2013-12-10 17:36:19 · 4417 阅读 · 1 评论 -
JBoss 系列六十三:JBoss 7/WildFly 集群之 Java Persistence API (JPA) - II(Hibernate查询缓存和二级缓存示例)
概述JBoss 系列五十六:JBoss 7/WildFly 集群之 Java Persistence API (JPA) - I 中讨论了JBoss集群情况下JPA相关的基本理论,JBoss的JPA实现是Hibernate,所以JBoss集群JPA主要是Hibernate集群,在基本理论中我们说明了Hibernate的一级缓存(查询缓存)和二级缓存,本文给出一个Hibernate一级缓存(查询原创 2013-12-05 18:06:33 · 4425 阅读 · 0 评论 -
JBoss 系列六十二:深入理解 jBPM Human Task - II(使用JMS做传输媒介执行Human Task)
概述本文是继深入理解 jBPM Human Task - I,对使用JMS做传输类型过程中服务器端和客户端业务逻辑的明细。本文也是基于之前代码分析系列:服务器端代码 - jBPM Human Task 源代码分析 - I客户端代码 - jBPM Human Task 源代码分析 - II本问主要包括:JMSTaskServer 启动过程JMSTa原创 2013-12-02 10:50:38 · 2881 阅读 · 0 评论 -
JBoss 系列六十一:深入理解 jBPM Human Task - I
概述Human Task 是BPM流程中的节点必需通过人为的手动操作才能够执行。jBPM 5 通过 User Task(jBPM5示例之 User Task) 节点来支持Human Task。Human Task通常要求流程设计者在设计流程时指定流程运行相关的属性,流程类型,流程的执行者,流程运行相关的数据。流程运行时我们根据这些属性运行流程。Human Task 是BPM核心,为什么原创 2013-11-30 19:04:33 · 5366 阅读 · 0 评论