当柳上原的风吹向天际的时候...

真正的快乐来源于创造

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks

#

任务:熟悉Compute节点的使用及ESQL的基本写法。
注意:本节其它节点属性和上一节一样。

1.Compute节点在Transformation菜单下:


2.在MQInput节点和MQ Output节点之间插入一个Compute节点。由于没有设置节点属性,此时节点带有错误图标。


3.右键点击Compute节点,点击“Open ESQL”菜单。


4.在打开的窗口中输入下面文字。

第一句意思是从输入内容赋值到输出内容。
第二句意思是在employee节点下增加cnname节点
第三句意思是删除原有employee节点下的name节点
其它语句都是固定写法。

5.在InQ中输入XML文本,待会看看进过Compute节点转化后这段文本会变成什么样子。


6.查看OutQ中的输出结果,确实达到了ESQL语句的目的。


7.使用rfhutil.exe读取OutQ中的内容。


-The end-
posted @ 2011-09-19 14:53 何杨 阅读(1489) | 评论 (6)编辑 收藏

目的:学习使用Input和Output节点并继续熟悉WMB环境。

1.右键点击项目区,选择新建“Message Flow Project”.


2.右键点击刚才创建的项目,在其下建立一个“Message Flow”。


3.点击刚才创建的flow.msgflow,拖曳出一个MQInput节点和MQOutput节点。


4.点击下图红框中的图标,将两个节点连接起来。


5.如下图所示,注意箭头的起点位置。下图图标显示了错误和警告,这表示应该设置它们的属性,使其能和Queue对应起来。


6.打开Websphere MQ Explorer,在Queue manager "MB7QMGR"下建立两个消息队列,取名为InQ和OutQ。


7.右键点击MQ Input节点,点击属性,在下面的Q name处写入InQ。


8.邮件点击MQ Output节点,在属性中指定Queue manager name和Queue Name。


9.在项目下创建一个Message Broker Archive.这个用来将项目打包发布。


10.点击刚才创建的bar.bar,在右边点击按钮“Build Broker Archive”。


11.在IBM Websphere MQ Explorer中,右键点击InQ,选择“Put Test meesage”菜单。断点状态显示信息已经从MQ Input节点发送了出来。


12.将断点跑完,再在MQ Explorer中右键点击OutQ,选择“browse message”菜单,在弹出的窗口中可以看到,信息已经发送到了OutQ中。


-The End-
posted @ 2011-09-19 13:09 何杨 阅读(1290) | 评论 (3)编辑 收藏

本节任务:
     熟悉进行WMB开发需要用到的软件及环境.
 
1.WebSphere MQ及其操作工具WebSphere MQ Explorer:
       MB 的运行依赖于 MQ,所以首先要安装 MQ,MQ是就是 IBM 的消息中间件产品,IBM 几乎所有 SOA 相关的产品,都是构建于 MQ 之上的,没有 MQ 强大的消息传输能力,那么 IBM 很多产品都做不起来。你可以把MQ当成一个传输通道,只要往里面放东西,MQ 就会把消息传到目的地。      
       WebSphere MQ Explorer是用来操作MQ的工具,我们需要利用它来建立队列管理器及队列.下图就是WebSphere MQ Explorer的操作界面:
      

2.IBM WebSphere Message Broker Explorer:    
      IBM WebSphere Message Broker(以下称为 Message Broker)可以作为企业服务总线使用,提供用于各种协议的通用连接以及为使用结构化和非结构化数据的应用程序提供数据转换功能。WebSphere Message Broker(代理)的两个核心功能就是:“消息路由”和“消息格式转换”。它相当于一个公共服务中心。MB 接收所有消息,然后自动分析其中的内容,找到相应的目的地,进行路由转发;此外,MB 还可以进行消息转换,这就像是自动翻译信件. MB本质上也是一个服务总线,所有的服务组件接入到MB中,服务将消息塞给MB,MB来决定怎么转发,这样让服务愈加成为一个独立的实体,和其他服务的耦合性进一步降低,从而达到 SOA 的境界。(题外话:我个人觉得,SOA把业务分离出来的想法是好的,奈何当前所有模拟业务流程的工作流从根基上来说就是背离现实的,这就是SOA赖以生存的基础.因此SOA做得再好也只是修补性工作).
       下图是WMB的整体架构图:
          

3.WebSphere Message Broker Toolkit 7.0:
       这是操作WebSphere Message Broker的开发环境,它是基于Eclipse做成的,因此上手很快.我们大部分的工作都要依赖它来完成.
      
       以下是WebSphere Message Broker Toolkit的界面介绍:
             
      1 号区域是一个消息流,可以看到非常直观:从 MQ 读入—  —  计算(转换成 web service 格式)—  —发送 http 请求到 web service 的 url—  —  计算(转换回 MQ 消息格式)—  —  放入 MQ。
      2 号区域是节点选择面板,MB 自带了几十种节点给我们选择,同时我们也可以自己创建节点。
      3 号区域是属性面板,当你选择某个节点时,可以在其中编辑节点的属性。
      4 号区域是域连接面板,开发好的消息流和消息格式,必须首先在 MBT 中连接到对应的配置管理器,再将打包好的流程部署到对应的 broker 中,这个过程也可以由命令行完成。
      5 号区域则类似 eclipse 的项目集合,里面是所有的 MB 项目。

4.rfhutil.exe:

       这个工具用来往队列上发送消息以及读取消息,它是可选的,没有它我们也可以依靠WebSphere MQ Explorer来完成同样的工作.
      

本节结束。
posted @ 2011-09-18 16:31 何杨 阅读(3931) | 评论 (0)编辑 收藏

当网页提交时,如果提交内容较多时或者服务器响应较慢时容易有一段延迟,此事若是采用等待页面可加强用户使用感觉,具体实现如下:

网页内容:
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/tld/struts-logic.tld" prefix="logic"%>
<%@ taglib uri="/WEB-INF/tld/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/tld/struts-tiles.tld" prefix="tiles"%>

<style type="text/css">
    <!--
    
    
/*弹出层的STYLE*/
    .popupLoadingDiv 
{
        border
: 1px solid #336699;
        background
:#ffffff url(web/img/content_top_bg.gif) repeat-x 0px -20px;
        padding
:5px;
        text-align
: center;
        line-height
: 40px;
        font-size
: 12px;
        font-weight
: bold;
        z-index
:99;
        width
: 300px;
        height
: 120px;
        left
:50%;/*FF IE7*/
        top
: 50%;/*FF IE7*/
        
        margin-left
:-150px!important;/*FF IE7 该值为本身宽的一半 */
        margin-top
:-60px!important;/*FF IE7 该值为本身高的一半*/
        
        margin-top
:0px;
        
        position
:fixed!important;/*FF IE7*/
        position
:absolute;/*IE6*/
        
        _top
:       expression(eval(document.compatMode &&
                    document.compatMode=='CSS1Compat') ?
                    documentElement.scrollTop + (document.documentElement.clientHeight-this.offsetHeight)/2 :
/*IE6*/
                    document.body.scrollTop + (document.body.clientHeight - this.clientHeight)/2)
;/*IE5 IE5.5*/
    
    
}
    
    .grayBackground 
{
        background-color
: #ccc;
        width
: 150%;
        height
: 100%;
        left
:0;
        top
:0;/*FF IE7*/
        
        filter
:alpha(opacity=50);/*IE*/
        opacity
:0.5;/*FF*/
        z-index
:1;
        
        position
:fixed!important;/*FF IE7*/
        position
:absolute;/*IE6*/
        
        _top
:       expression(eval(document.compatMode &&
                    document.compatMode=='CSS1Compat') ?
                    documentElement.scrollTop + (document.documentElement.clientHeight-this.offsetHeight)/2 :
/*IE6*/
                    document.body.scrollTop + (document.body.clientHeight - this.clientHeight)/2)
;/*IE5 IE5.5*/
    
    
}
    
    #loadingDivTitleDiv
{
        font-size
:14px;  
        font-weight
:bold;       
        color
:#000000;
        text-align
:center;
        border-bottom
:1px dashed #336699;
    
}
    #loadingDivImgDiv
{
        padding-top
:5px;
        padding-bottom
:5px;
    
}
    #loadingDivInstructionDiv
{
        font-size
:12px;  
        font-weight
:normal;       
        color
:#000000;
        text-align
:center;
    
}
/*The END*/
    -->
</style>

<div id="loadingDiv" class="popupLoadingDiv" style="display:none">
    
<div id="loadingDivTitleDiv">提交中</div>
    
<div id="loadingDivImgDiv">
        
<img id="loadingImg" src="web/page/common/loading/loading.gif" border="0"/>
    
</div>
    
<div id="loadingDivInstructionDiv">正在提交,请稍候</div>
</div>
<div id="grayBackgroundDiv" class="grayBackground" style="display:none;">
    
<!-- 用来保持在选择框上的IFrame -->
    
<iframe id="innerFrame" style="position:absolute;z-index:-1;width:100%;height:100%;top:0;left:0;scrolling:no;" frameborder="0" src="about:blank">
    
</iframe>
</div>

<script language="javascript">
<!--

/*****************************************************
* 显示载入中div
* 何杨 2011年7月25日11:43:54
****************************************************
*/
function showLoadingWnd(){
    document.getElementById(
"loadingDiv").style.display="block";
    document.getElementById(
"grayBackgroundDiv").style.display="block";
    
    window.setTimeout('replayImg()', 
3000);
}

/*****************************************************
* 重新加载图片
* 何杨 2011-7-25 11:43:34
****************************************************
*/
function replayImg(){ 
   
var loadingImg = document.getElementById("loadingImg");
   loadingImg.src
=loadingImg.src;
}
//-->
</script>

在页面上如下载入上述页面:
<jsp:include page="/web/page/common/loading/loading.jsp" flush="true" />

需要弹出此窗口时使用如下JS函数:
showLoadingWnd()

代码从这里下载:
http://www.blogjava.net/Files/heyang/loading2011-09-09.rar

实现效果如图:
posted @ 2011-09-09 12:38 何杨 阅读(940) | 评论 (1)编辑 收藏

select sysdate+1  from dual -- 明天
select sysdate+1/24  from dual -- 1个小时后
select sysdate+1/(24*60)   from dual --1分钟后
select sysdate+1/(24*60*60)  from dual -- 一秒后
posted @ 2011-08-05 14:20 何杨 阅读(1560) | 评论 (0)编辑 收藏

parseInt函数常用来将字符串转化成数字,需要注意的是,如果参数的第一位是‘0’,如果不指定进制,它会默认按八进制转化,这就不是我们想要的结果了。
因此,为安全期间,最好在使用此函数时加上十进制,如下
var n=parseInt('08',10);

posted @ 2011-08-04 12:31 何杨 阅读(196) | 评论 (0)编辑 收藏

在ie6中,如果给Table表格的表投行TH设定背景图片,将导致IE6出现无响应的Bug,实例代码如下:
Table.stock th{
    font-size
:13px;
    font-weight
:normal;
    background-color
:#f2f9ff;
    
    color
:#333333;
    height
:20px;
    line-height
:20px;
    text-align
:center;
    
    border-left
:1px solid #d0d0d0;
    border-right
:1px solid #d0d0d0;
    border-bottom
:1px solid #d0d0d0;
    
    
/*background-image:url(titBg.gif); it will make IE6 no response.*/
    
/*background:#f2f9ff url(thbg.png) repeat-x;    it will also make IE6 no response.*/
}   

如果在IE8中则没有这样的问题,如果被迫适应IE6,只有取消上面粗体部分。
posted @ 2011-07-08 11:10 何杨 阅读(480) | 评论 (0)编辑 收藏

1.到Axis2网站下载Axis2的最新版本。
2.将下载包解压到本地。
3.设置环境变量AXIS2_HOME,其值为下载包的解压目录。
4.打开CMD,进入AXIS2_HOME指定目录下的bin目录。
5.使用命令wsdl2java -uri http://localhost:8088/AHCMS2_Service531/services/service?wsdl  -p client -s -o stub来生成Java代码。
执行完毕后,你会发现bin目录会多了一个stub文件夹,Java代码就在其中。

posted @ 2011-06-22 17:09 何杨 阅读(3033) | 评论 (0)编辑 收藏

BarCode4j确实简单易用,Sample稍微改写一下就可以达到目的了。
BarCode4j网址:http://sourceforge.net/projects/barcode4j/

二维码图片示例:


代码下载(注:代码是Sample的源码,基本没有改写,)
http://www.blogjava.net/Files/heyang/BarCodeTest.rar
posted @ 2011-06-15 17:13 何杨 阅读(2757) | 评论 (1)编辑 收藏

     摘要: 代码如下:1.Application类Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->package com.ibm.ahcms2.tool.jacob.word;import com.jacob.activeX.ActiveXCo...  阅读全文
posted @ 2011-06-04 20:12 何杨 阅读(4737) | 评论 (1)编辑 收藏

仅列出标题
共28页: First 上一页 8 9 10 11 12 13 14 15 16 下一页 Last