The NoteBook of EricKong

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

#

Configure an existing J2EE web application to support BlazeDS by performing the following steps:
1 Add the BlazeDS JAR files and dependent JAR files to the WEB-INF/lib directory.
2 Edit the BlazeDS configuration files in the WEB-INF/flex directory.
3 Define MessageBrokerServlet and a session listener in WEB-INF/web.xml.

RPC service example
The Remoting Service is one of the RPC services included with BlazeDS. The Remoting Service lets clients access methods of Plain Old Java Objects (POJOs) on the server.In this example, you deploy a Java class, EchoService.java, on the server that echoes back a String passed to it from the client. The following code shows the definition of EchoService.java:

1 package remoting;
2 public class EchoService
3 {
4     public String echo(String text) {
5         return "Server says: I received '" + text + "' from you";
6     }
7 }
8 


The echo() method takes a String argument and returns it with additional text. After compiling EchoService.java,place EchoService.class in the WEB-INF/classes/remoting directory. Notice that the Java class does not have to import or reference any BlazeDS resources.
Define a destination, and reference one or more channels that transport the data. Configure EchoService.class as a remoting destination by editing the WEB-INF/flex/remoting-config.xml file and adding the following code:

<destination id="echoServiceDestination" channels="my-amf">
 
<properties>
  
<source>remoting.EchoService</source>
 
</properties>
</destination>

The source element references the Java class, and the channels attribute references a channel called my-amf.Define the my-amf channel in WEB-INF/flex/services-config.xml, as the following example shows:

<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
    
<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
    
<properties>
        
<polling-enabled>false</polling-enabled>
    
</properties>
</channel-definition>

The channel definition specifies that the Flex client uses a non-polling AMFChannel to communicate with the AMFEndpoint on the server.
Note: If you deploy this application on the samples web application installed with BlazeDS, services-config.xml already contains a definition for the my-amf channel.The Flex client application uses the RemoteObject component to access EchoService. The RemoteObject component uses the destination property to specify the destination. The user clicks the Button control to invoke the remote
echo() method:

<?xml version="1.0"?>
<!-- intro\intro_remoting.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
<mx:Script>
<![CDATA[
 import mx.rpc.events.FaultEvent;
 import mx.rpc.events.ResultEvent;
 // Send the message in response to a Button click.
 private function echo():void {
    var text:String = ti.text;
    remoteObject.echo(text);
 }
 // Handle the recevied message.
 private function resultHandler(event:ResultEvent):void {
     ta.text += "Server responded: "+ event.result + "\n";
 }
 // Handle a message fault.
 private function faultHandler(event:FaultEvent):void {
     ta.text += "Received fault: " + event.fault + "\n";
 }
 
]]>
</mx:Script>
<mx:RemoteObject id="remoteObject" destination="echoServiceDestination" result="resultHandler(event);" fault="faultHandler(event);"/>
<mx:Label text="Enter a text for the server to echo"/>
<mx:TextInput id="ti" text="Hello World!"/>
<mx:Button label="Send" click="echo();"/>
<mx:TextArea id="ta" width="100%" height="100%"/>
</mx:Application>

Compile the client application into a SWF file by using Flex Builder or the mxmlc compiler, and then deploy it to
your web application.
 

posted @ 2011-06-29 11:09 Eric_jiang 阅读(222) | 评论 (0)编辑 收藏

APIs、Libs、Components

1、as3ebaylib

http://code.google.com/p/as3ebaylib/

2、as3youtubelib

http://code.google.com/p/as3youtubelib/

3、as3flickrlib

http://code.google.com/p/as3flickrlib/

4、Yahoo ASTRA Flash Components

http://developer.yahoo.com/flash/astra-flash/

5、facebook-as3

http://code.google.com/p/facebook-as3/

6、as3awss3lib

http://code.google.com/p/as3awss3lib/

7、Adobe ActionScript 3:resources:apis:libraries (官方,包括corelib、FlexUnit、Flickr、Mappr、RSS and Atom libraries、Odeo、YouTube)

http://labs.adobe.com/wiki/index.php/ActionScript_3:resources:apis:libraries

8、Tweener    用于过渡与切换的一组动画库

http://code.google.com/p/tweener/

9、uicomponents-as3     一组轻量级的AS3 UI组件库

http://code.google.com/p/uicomponents-as3/

10、as3ds     AS3的数据结构实现

http://code.google.com/p/as3ds/

 

11、mecheye-as3-libraries     一组主要用于Flash 游戏开发的AS3库

http://code.google.com/p/mecheye-as3-libraries/

12、XIFF    一套XMPP协议的AS3实现

http://svn.igniterealtime.org/svn/repos/xiff/branches/xiff_as3_flexlib_beta1/

13、FZip    一套AS3库,可用作对ZIP压缩文件的载入、修改与创建

http://codeazur.com.br/lab/fzip/

14、FlexLib    一套开源的Flex界面组件库

http://code.google.com/p/flexlib/

15、AnimatedGIfLoader Flex Component      可载入GIF的Flex组件

http://dougmccune.com/blog/animatedgifloader-flex-component/

16、goplayground     一套轻量级的,可用创建属于你自己的AS3 动画工具的库

http://code.google.com/p/goplayground/

17、AlivePDF    开源的用于PDF创建的AS3库

http://www.alivepdf.org/

18、jwopitz-lib    一组开源的Flex用户界面组件

http://code.google.com/p/jwopitz-lib/

19、as3crypto    AS3实现的一套加密库,包括多种加密算法

http://code.google.com/p/as3crypto/

20、flare     一套强大的可视化交互的AS3类库

http://flare.prefuse.org/

21、SWFAddress     一小而强大的库,可以为Flash和Ajax提供深链接的功能

http://www.asual.com/swfaddress/

22、SWFObject     用于嵌入Flash,Adobe官方也认可了

http://code.google.com/p/swfobject/

23、ulse Particle System 一套开源的强大的AS3动态粒子系统

http://code.google.com/p/pulse-particle/

http://www.rogue-development.com/pulseParticles.html

24、SpringGraph Flex Component

http://mark-shepherd.com/blog/springgraph-flex-component/

25、GoASAP     AS3动画库

http://code.google.com/p/goasap/

http://www.goasap.org/index.html

26、asaplibrary    一套开源的Flash Actionscript3.0 RIA库

http://code.google.com/p/asaplibrary/

http://asaplibrary.org/

http://asapframework.org

27、as3mathlib 开源Flex/Actionscript数学库

http://code.google.com/p/as3mathlib/

28、as3corelib 包含一些基础功能AS3库

http://code.google.com/p/as3corelib/

29、minimalcomps 一组AS3 UI组件

http://www.bit-101.com/minimalcomps/

30、as3gif

http://code.google.com/p/as3gif/

31、queueloader-as3      一组AS3库,用来进行资源序列载入及监测

http://code.google.com/p/queueloader-as3/

32、TweenMax (AS3)

http://blog.greensock.com/tweenmaxas3/

33、Atellis Reflection Component              一款Flex反射效果组件

http://labs.atellis.com/2007/07/11/atellis-reflection-component/

34、AS3Eval     简单来说,就是用AS3实现的AS3编译器

http://eval.hurlant.com/

35、ByteArray 的组件、库合集,包括liquid components、mousegesture、ASZip、GIF Player、GIF Animation Encoder、AlivePDF、Live JPEG Encoder、ScaleBitmap等

http://www.bytearray.org/?page_id=82

36、AS3C     针对AVM2虚拟机,用C#写的字节码编译器

http://code.google.com/p/as3c/

37、as3httpclientlib    as3实现的http客户端

http://code.google.com/p/as3httpclientlib/

38、as3ui   一组常规的as3 ui界面库

http://code.google.com/p/as3ui/

39、as3xls 让你在flex中可以读写Excel文件

http://code.google.com/p/as3xls/

40、as3flexdb 让你的flex程序可以连接到MySQL服务器,主要是使用AMFPHP来访问PHP服务器

http://code.google.com/p/as3flexdb/

这一是一篇详细使用介绍的教程

http://itutorials.ro/viewtopic.php?f=9&t=7

41、vivisectingmedia-as3 一组AS3/Flex实用库,是作者在实践中总结出来的

http://code.google.com/p/vivisectingmedia-as3/

42、assql   通过ActionScript 3.0 直接连接MySQL 数据库

http://code.google.com/p/assql/

43、FlexserverLib   Flex & BlazeDS服务端扩展

http://code.google.com/p/flexserverlib/

http://www.infoaccelerator.net/blog/post.cfm/announcing-flexserverlib-the-blazeds-extension-project

44、dphibernate Flex/BlazeDS Hibernate Adapter ,支持延迟加载

http://code.google.com/p/dphibernate/

45、as3syntaxhighlight   as3及mxml代码高亮库

http://code.google.com/p/as3syntaxhighlight/

46、Tweensy   一款新的缓动及运动效果库

http://code.google.com/p/tweensy/

47、JSwoof the fastest JSON parser for Flex

http://www.waynemike.co.uk/jswoof

48、casa lib   it provides a core set of classes,interfaces,and utilities

http://casalib.org/

49、FlipCard    3D Flip Card for Flex

http://code.google.com/p/flipcard/

50、Efflex 一组特效库

http://code.google.com/p/efflex/

http://www.efflex.org/

51、ObjectHandles   一组能用UI组件,允许你对组件进行绽放与移动

http://www.rogue-development.com/objectHandles.html

http://code.google.com/p/flex-object-handles/wiki/ObjectHandlesUsage

52、as3commons 一组as3通用库

http://code.google.com/p/as3-commons/

http://www.as3commons.org/

53、urlkit 为Flex应用程序提供URL deep linking深度链接的库

http://code.google.com/p/urlkit/

54、standingwave 音频合成的Flash/Flex库

http://code.google.com/p/standingwave/

 

 

Actionscript 3.0 Class

1、fZip    此类可允许你载入标准的zip文件并提取里面包含的文件

http://wahlers.com.br/claus/blog/zip-it-up/

2、AS3: Layout class for Flash CS3     一组用作布局的类

http://www.senocular.com/?id=2.8

3、CSSLoader     该类允许Flex应用程序在运行时载入CSS

http://www.rubenswieringa.com/blog/cssloader

4、AS3: QueryString      一个单例类,用来获取URL地址后所带参数值对

http://evolve.reintroducing.com/2008/07/03/as3/as3-querystring/#more-141

5、ActionScript 3 Contextual Menu Manager Class         AS3关联菜单管理类

http://www.blog.noponies.com/archives/103

6、Spark project 一系列丰富的AS3库,小日本开发

http://www.libspark.org/wiki/WikiStart/en

2D & 3D Engine

1、APE (Actionscript Physics Engine)  物理引擎

http://www.cove.org/ape/

2、Away3D

http://code.google.com/p/away3d/

3、Papervision3D

http://code.google.com/p/papervision3d/

4、Sandy     开源3D库

http://www.flashsandy.org/versions/3.0

5、FORM   一套AS3完成的用于2D刚性物体的物理引擎

http://code.google.com/p/foam-as3/

6、Five3D    基于矢量的Flash 3D 交互动画创建

http://five3d.mathieu-badimon.com/

7、Flade (Flash Dynamics Engine)   一套开源的2D物理引擎,AS2实现

http://www.cove.org/flade/

8、Box2DFlashAS3      2D物理引擎,AS3实现,基于强大的Box2D C++物理库

http://box2dflash.sourceforge.net/

http://sourceforge.net/projects/box2dflash/

9、Paradox    基于Flash的第一称3D引擎

http://animasinteractive.com/propaganda/

10、ND3D AS3 3D Engine 一款简单的AS3开源3D引擎,编译后的引擎大小仅约10K

http://code.google.com/p/nd3d/

http://www.nulldesign.de/nd3d-as3-3d-engine/

11、Pulse Particles   能用的AS3粒子创建系统

http://www.rogue-development.com/pulseParticles.html

http://code.google.com/p/pulse-particle/

12、jiglibflash Flash 3D物理引擎

http://code.google.com/p/jiglibflash/

http://www.jiglibflash.com/blog/

13、motor2 同样是基于Box2D,ActionScript3.0实现的一款2D引擎

http://code.google.com/p/motor2/

http://lab.polygonal.de/motor_physics/

14、WOW-Engine as3实现的物理引擎,源于Sandy

http://seraf.mediabox.fr/wow-engine/as3-3d-physics-engine-wow-engine/

FrameWorks

1、Cairngorm    Adobe官方出的Flex框架

http://labs.adobe.com/wiki/index.php/Cairngorm

     flexcairngorm:Extensions for the Adobe Cairngorm MVC

http://code.google.com/p/flexcairngorm/

2、PureMVC    纯AS3框架,也有其它语言的实现

http://www.puremvc.org/

3、ASWing AS3   一套开源的AS3 GUI框架

http://www.aswing.org/

4、EasyMVC   由事件驱动的MVC框架

http://projects.simb.net/easyMVC/

5、Mate 基于Tag及事件驱动的Flex框架

http://mate.asfusion.com/

6、ARP     基于模式(Pattern)的RIA框架,Flash平台,支持AS2和AS3

http://osflash.org/projects/arp

7、Gaia   开源的Flash前端框架,支持AS2和AS3,用于快速开发

http://www.gaiaflashframework.com/

8、flest   Actionscript3.0/Flex应用程序框架,用来开发企业级的RIA

http://code.google.com/p/flest/

9、Gugga      Flash Framework    更新至AS3

http://www.gugga.com/flashblog/

10、Spring ActionScript(以前名为Prana) 另一个提供了IOC反转控制的框架,类似著名的Spring框架

http://www.pranaframework.org/

http://www.herrodius.com/blog/projects

11、OpenFlux    开源的Flex组件框架,让开发Flex组件更加快速容易

http://code.google.com/p/openflux/

12、Degrafa       声明式的Flex图形框架,允许以MXML标签的方式绘制图形、创建皮肤,还包括对CSS的支持

http://code.google.com/p/degrafa/

13、FlexMVCs    针对AS3和Flex的应用程序框架,基于PureMVC,作了些修正和精简

http://code.google.com/p/flexmvcs/

14、Ruboss   结合Flex与ROR的快速开发的框架

http://ruboss.com/

15、dpHibernate   Flex3/BlazeDS Hibernate适配器,支持延迟加载

http://code.google.com/p/dphibernate/

16、dpUnit 一套新的Flex测试框架

http://code.google.com/p/dpuint/

17、flight framework 一套新的MVC框架,可应用于Flash及Flex当中

http://code.google.com/p/flight-framework/

http://www.flightxd.com/flightframework/

18、Moccasin 一款可用于图形编辑应用程序的Flex框架

http://joeberkovitz.com/blog/2008/09/30/moccasin-intro/

19、RestfulX   一款将Rails的设计理念带入Flex与AIR的框架,the RESTful way to develop Adobe Flex and AIR applications

http://restfulx.github.com/

20、smartypants-ico Dependency Injection framework for Flex 提供了IOC控制反转性的Flex框架

http://code.google.com/p/smartypants-ioc/

http://flex.joshmcdonald.info/

21、glue    Beautiful Gooey MVC Framework for Flex

http://wiki.github.com/seanhess/glue/

22、coordy 一款轻量级的ActionScript3 布局框架

http://code.google.com/p/coordy/

http://somerandomdude.com/articles/technology/coordy/

23、Parsley 另一款AS3 ioc框架,强烈推荐 ★★★

http://www.spicefactory.org/

http://coenraets.org/blog/2009/07/building-a-flex-application-with-the-parsley-framework/

24、Flex IOC 框架

http://code.google.com/p/legato/

25、另一款Flex IOC 框架

http://sourceforge.net/projects/flicc/

26、一款轻量级的纯AS3的,部分思想来源于PureMVC

http://www.robotlegs.org/

http://github.com/robotlegs/robotlegs-demos-Bundle

Flash & Flex Tools、Servers

1、FlexUnit      Flex/Actionscript3.0单元测试框架

http://code.google.com/p/as3flexunitlib/

2、Visual FlexUnit 增强的FlexUnit,支持“可视化断言”

http://code.google.com/p/visualflexunit/

3、RED bug       debug调试控制器,让Flash、Flex、AIR应用程序更加容易

http://www.realeyesmedia.com/redbug/

4、reflexutil 可在运行时对Flex组件进行调试

http://code.google.com/p/reflexutil/

5、FxSpy    当Flex应用程序运行时可以检测和动态的改变可视化组件属性值http://code.google.com/p/fxspy/

6、ThunderBolt 基于Firefox的Firebug插件的日志扩展,支持AS2及AS3

http://code.google.com/p/flash-thunderbolt/

7、FlashTracer Firefox扩展,可以以侧栏的方式将Flash中trace()的结果显示

8、RIALogger 另一款Flex/AIR的Debug工具

http://renaun.com/blog/flex-components/rialogger/

9、Alcon 一款轻量级的AS2及AS3的Debug工具,AIR方式将Debug信息展示出来

http://blog.hexagonstar.com/alcon/

10、GDS (Granite Data Services) 开源,提供了Adobe LiveCycle Data Services类似功能的服务器

http://www.graniteds.org/

11、FlexMonkey 针对Flex的单元测试框架,为Flex应用程序,提供了Flex UI功能的自动测试

http://code.google.com/p/flexmonkey/

12、FlexCover 代码覆盖率检测

http://code.google.com/p/flexcover/

13、Fluint 单元测试与集成测试框架,改进了些FlexUnit功能

http://code.google.com/p/fluint/

14、SWFScan Flash security tools

https://h30406.www3.hp.com/campaigns/2009/wwcampaign/1-5TUVE/index.php?key=swf&jumpid=go/swfscan

15、De MonsterDebugger Open source debugger for Adobe Flash,Flex and AIR

http://demonsterdebugger.com/

16、Antennae 使用Ant建立复杂Flex项目的模板

http://code.google.com/p/antennae/

 

 

Flex Explorers  (大部分为Flex2版本,但同样适用于Flex3)

1、Flex3 Component Explorer    Flex各类组件示例

http://examples.adobe.com/flex3/componentexplorer/explorer.html

2、Resize ManagerFX Explorer (此为商业作品,要收费的)

http://www.teotigraphix.com/explorers/ResizeManagerFX/ResizeManagerFXExplorer.html

3、Flex3 Style Explorer

http://examples.adobe.com/flex3/consulting/styleexplorer/Flex3StyleExplorer.html

4、Flex2 Style Explorer (添加了Kuler功能)Flex UI组件风格定制并可输出为CSS

http://www.maclema.com/content/sek/

5、Flex2 Style Explorer (Adobe 原始的版本)

http://examples.adobe.com/flex2/consulting/styleexplorer/Flex2StyleExplorer.html

6、Flex2 Filter Explorer    查看各类滤镜效果并可进行设置

http://merhl.com/flex2_samples/filterExplorer/

http://merhl.com/?p=40                   (AIR版本)

7、Flex2 Primitive Explorer    在Flex中创建各种简单形状

http://www.flexibleexperiments.com/Flex/PrimitiveExplorer/Flex2PrimitiveExplorer.html

8、Custom Easing Function Explore V1.0.0    自定义创建缓动效果函数

http://www.madeinflex.com/img/entries/2007/05/customeasingexplorer.html

9、Tour De Flex   组件资源集合,包括Flex核心组件,第三方组件等,必备

http://flex.org/tour

10、Regular Expression Explorer    正则表达式浏览器

http://ryanswanson.com/regexp/

11、AS3 Performance Tester

http://businessintelligence.me/projects/performance_tester/performanceTester.html

转载的话请注明出处:http://www.jexchen.com

posted @ 2011-06-29 09:27 Eric_jiang 阅读(634) | 评论 (0)编辑 收藏

Flex中XMLSocket与Java中Socket通信,遇到的问题是,Java中的socket能够接受到XMLSocket传输的数据,但是Flex并不能接受到从Java服务器传输的数据,从网上搜了好多资料,终于找到了原因,原来XMLSocket 接收到服务端下发的数据时,将连续放于接收缓冲区,直到接收到 "\0" 字节(字节内容为 ASCII 值 0),才认为接收完成,并调用相应的 onData 或 onXML 事件,因此,服务端若用 Java 编写,并使用标准的 String 类族,则在发送数据结尾应手动加上 "\0",同样,当XMLSocket发送数据时,也会在数据的结尾自动加上"\0"。

我现在将我做的一个简单的XMLSocket通信的例子贴出来跟大家共享一下,如果有什么不足的地方,还望大家批评指出,毕竟我也是flex初学者,呵呵!

Java应用程序代码:
 view plaincopy to clipboardprint?
public class XMLServerSocket {  
 
 
    private ServerSocket serverSocket;  
 
    private Socket socketin;  
 
    private BufferedReader br;  
 
    private PrintStream ps;  
 
    public static void main(String[] args) {  
        new XMLServerSocket();  
    }  
 
    private XMLServerSocket() {  
        try {  
            serverSocket = new ServerSocket(8800);  
            socketin = serverSocket.accept();  
            br = new BufferedReader(new InputStreamReader(socketin  
                    .getInputStream()));  
            ps = new PrintStream(socketin.getOutputStream());  
            ps.println("Input EXIT for end\0");  
            ps.flush();  
            out("Input EXIT for end");  
            boolean done = false;  
            while (!done) {  
                String str = br.readLine();  
                if (str == null || (str.length() == 1 && str.charAt(0) == '\0')) {  
                    done = true;  
                } else {  
                    char first = str.charAt(0);  
                    char tail = str.charAt(str.length() - 1);  
                    if (first == '\0') {  
                        str = str.substring(1);  
                    }  
                    if (tail == '\0') {  
                        str = str.substring(0, str.length() - 2);  
                    }  
                    out(str);  
                    ps.println(str + "\0");  
                    if (str.trim().equals("EXIT")) {  
                        done = true;  
                        br.close();  
                    }  
                }  
            }  
        } catch (Exception e) {  
            System.out.println(e.getMessage());  
        }  
    }  
 
    private void out(String str) {  
        System.out.println(str);  
    }  
 

public class XMLServerSocket {


 private ServerSocket serverSocket;

 private Socket socketin;

 private BufferedReader br;

 private PrintStream ps;

 public static void main(String[] args) {
  new XMLServerSocket();
 }

 private XMLServerSocket() {
  try {
   serverSocket = new ServerSocket(8800);
   socketin = serverSocket.accept();
   br = new BufferedReader(new InputStreamReader(socketin
     .getInputStream()));
   ps = new PrintStream(socketin.getOutputStream());
   ps.println("Input EXIT for end\0");
   ps.flush();
   out("Input EXIT for end");
   boolean done = false;
   while (!done) {
    String str = br.readLine();
    if (str == null || (str.length() == 1 && str.charAt(0) == '\0')) {
     done = true;
    } else {
     char first = str.charAt(0);
     char tail = str.charAt(str.length() - 1);
     if (first == '\0') {
      str = str.substring(1);
     }
     if (tail == '\0') {
      str = str.substring(0, str.length() - 2);
     }
     out(str);
     ps.println(str + "\0");
     if (str.trim().equals("EXIT")) {
      done = true;
      br.close();
     }
    }
   }
  } catch (Exception e) {
   System.out.println(e.getMessage());
  }
 }

 private void out(String str) {
  System.out.println(str);
 }

}

Flex程序代码:

view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> 
    <mx:Script> 
        <!--[CDATA[  
            private var xmlconnect:XMLSocket;  
            private function connectServer():void  
            {  
                try{  
                    xmlconnect = new XMLSocket();  
                    xmlconnect.connect("localhost",8800);  
                    xmlconnect.addEventListener(DataEvent.DATA,onData);  
                }  
                catch(e:Error)  
                {  
                    trace(e.message);  
                }  
            }  
            private function onData(event:DataEvent):void  
            {  
                content.text = event.text;  
            }  
            private function sendData():void  
            {  
                xmlconnect.send(datasend.text + "\n");//必须加上"\n",否则数据不能成功发送  
            }  
        ]]--> 
    </mx:Script> 
    <mx:Text id="content" width="271" height="116" horizontalCenter="0" verticalCenter="0" /> 
    <mx:TextInput id="datasend" horizontalCenter="0" verticalCenter="95"/> 
    <mx:Button label="发送" horizontalCenter="0" verticalCenter="121" click="sendData()"/> 
    <mx:Button label="连接" horizontalCenter="0" verticalCenter="-103" click="connectServer()"/> 
</mx:Application> 

 

posted @ 2011-06-28 21:05 Eric_jiang 阅读(1307) | 评论 (0)编辑 收藏

准备工作:

JDK 6 安装程序
Eclipse IDE for Java EE Developers
Adobe Flex Builder 3.0.1 Professional Eclipse Plug-in
7-Zip Command Line Version

开始工作:
创建两个目录,分别用来存储Flex Builder文件和临时文件,如D:\Flex和D:\Temp。
将下载得到的四个文件放到D:\Temp内。
解压缩下载到的7-Zip文件,获取到7za.exe程序,也将其放到D:\Temp内。
安装JDK 6到D:\Flex\jdk1.6.0_07,中途无需安装JRE。
提示:如果已经安装了JDK的话,直接将其复制过来即可。
进入命令行模式,依次执行以下命令:
D:
cd \Temp
切换到D:\Temp目录。
7za x eclipse-jee-ganymede-win32.zip -oD:\Flex
move D:\Flex\eclipse D:\Flex\eclipse3.4jee
解压eclipse并将目录名改成eclipse3.4jee。
7za x FB3_WWEJ_Plugin.exe -oFB3
7za x FB3\InstallerData\Disk1\InstData\Resource1.zip -oFB3
从Flex Builder安装程序提取出我们所需要的文件备用。
创建一个启动文件startup.bat,内容如下:
@echo off
set JAVA_HOME=%CD%\jdk1.6.0_07
set JRE_HOME=%JAVA_HOME%\jre
set CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
set PATH=%JRE_HOME%\bin;%JAVA_HOME%\bin;%PATH%
start eclipse3.4jee\eclipse.exe
启动eclipse,进行如下操作:
设置工作区:D:\Temp。
Help -> Software Updates...,弹出如下图所示窗口,我们点击Update...,经过一系列的Next -> Finish,开始了eclipse3.4jee版本的自更新,更新完成后,点击Yes重启eclipse。 重启完成后,再次Help -> Software Update...,这次,我们使用Available Software选项卡。 点Add Site... -> Archive...后选择“D:\Temp\FB3\$BUILDSTAGE$\com.adobe.flexbuilder.update.site_ad0c1b9596a1_zg_ia_sf.jar”或直接输入“jar:file:D:\Temp\FB\$BUILDSTAGE$\com.adobe.flexbuilder.update.site_ad0c1b9596a1_zg_ia_sf.jar!/”,OK。 
 选择新加入的Flex Builder,并点击右上角的Install...,经过一系列的Next -> Finish,开始了Flex Builder插件的安装。 
 再次重启,完成了Eclipse集成Flex Builder插件的操作。
我们的工作还没完,继续在命令行中执行以下命令来提取Flex SDK:
7za x FB3\$DEFAULT_SDK$_ad0c1ba696ac_zg_ia_sf.jar -oD:\Flex\eclipse3.4jee\plugins\com.adobe.flexbuilder.flex_3.0.205647\devsdks\3.1.0
7za x FB3\$NDEPOT_IDE_ROOT$\zorn.flex\devsdks\2.0.1_zg_ia_sf.jar -oD:\Flex\eclipse3.4jee\plugins\com.adobe.flexbuilder.flex_3.0.205647\devsdks\2.0.1
清理掉D:\Temp,OK!大功告成!
最后,我们将其压缩起来,以便日后的使用,命令行命令如下:
D:
cd \Flex
del eclipse3.4jee\configuration\.settings\org.eclipse.ui.ide.prefs
7za a FlexBuilder.zip或FlexBuilder.7z
把FlexBuilder.zip(537MB)或FlexBuilder.7z(377MB)保留起来吧,以后只需要简单的解压并执行其中的startup.bat就可以立即进入到Flex Builder开发环境啦!

 

posted @ 2011-06-27 22:09 Eric_jiang 阅读(774) | 评论 (0)编辑 收藏

试着将下面的链接复制到浏览器里,然后你就会得到一个语音文件,安全无毒,放心使用~ http://translate.google.com/translate_tts?q=I+love+postgresql 



http://translate.google.com/?hl=en&tab=wT#auto|pt|Good%20morning
posted @ 2011-06-07 19:51 Eric_jiang 阅读(338) | 评论 (0)编辑 收藏

问题:
我要在同一个portlet里面实现页面的跳转,并传递参数,该怎么做呢 
 比如说jsp文件为A.jsp和B.jsp,java文件为portlet.java, 
  
 我在A.jsp里面这样写: 
 PortletURI   url=portletResponse.createURI(); 
 url.addPatameter("index ", " "+index);(index为int型,即我要传递的参数) 
 <a href="<%=url%>">Go to B.jsp当我点击此链接后,portlet.java中的doview()被调用,而我怎样在doView()中获取这个index参数呢,然后做一些处理,转到B.jsp页面呢.

答:

portlet分响应动作和呈现两个阶段,最好不要在doview里处理逻辑。你可以<a href="<portletAPI:createURI><portletAPI:URIAction name='<%=actionString%>'/><portletAPI:URIParameter   name= "index "   value= "1 "/> </portletAPI:createURI> "> go to b.jsp </a> ,在portlet的actionPerformed函数里相应该请求,而doView()决定include哪个jsp。另外如果是弹出,可以用 <a href= " <%=response.encodeURL( "/jsp/html/b.jsp?index=1 ")%> "   target= "_blank "> open   b.jsp </a> 。
其中actionString是你自己定义的动作名称,例如 "com.directAction ",而第二种方式好像也可以直接转到b页面(去掉target,不过不推荐这样做),

public   void   actionPerformed(ActionEvent   event)   throws   PortletException{
        String   actionString      =   event.getActionString();
        PortletRequest   request   =   event.getRequest();
        if(actionString.equals(someaciton)){
                  //do   something
        }
}
posted @ 2011-06-02 14:52 Eric_jiang 阅读(1924) | 评论 (3)编辑 收藏

Osgi In Action.pdf


  中山网讯 昨日,中国—葡语国家经济合作论坛常设秘书处秘书长常和喜率团到访我市。副市长冯煜荣热情接待了代表团一行并表示,我市灯饰、家电、家具等特色经济明显,在拓展葡语国家市场方面具有很好的条件和优势。
    座谈会上,中山火炬高新技术产业进出口公司、中山大洋电机股份有限公司、格兰仕(中山)家用电器有限公司等我市9家企业负责人分析了近年来企业与巴西葡语国家经贸交往之间的商机与面对的困境。
    据悉,双方此次交往也是旨在推动中山市与葡语国家之间开展经贸合作,推动中山企业“走出去”,寻找新商机。中国—葡语国家经济合作论坛(澳门)于2003年在澳门成立,是由中国商务部主办,澳门特别行政区政府承办,安哥拉巴西等7个葡语国家参与的经贸合作机制,致力促进中国与葡语国家的经贸交流与合作,推动与会国企业建立联系,寻找商机
posted @ 2011-05-31 20:36 Eric_jiang 阅读(341) | 评论 (0)编辑 收藏

作为中国最大的国际贸易与投资促进机构,中国贸促会与俄罗斯、印度、巴西、南非等金砖国家的政府机构和对口合作组织保持着良好的合作关系。这种合作历史悠久,与时俱进。

  一、合作关系历史悠久

  中国贸促会1952年成立后,发挥“以民促官”、“以经促政”的独特作用,配合国家外交、外经贸战略,积极开展与世界各国、各地区人民的友好交往。

  中国贸促会与俄罗斯、印度、巴西的 交往均始于20世纪50年代。1952年1月,中国贸促会首次赴印度参加印度孟买工业博览会,之后曾连续参加新德里国际博览会及孟买化工展览会。1953 年7月,中国贸促会在苏联莫斯科举办中华人民共和国工农业展览会,1954年,苏联经济及文化建设成就展览会在北京开幕,中国贸促会参与接待工作。自此, 中国贸促会通过中苏之间互办的经贸展览、代表团互访等方式积极参与了双边经贸合作关系的发展。1959年,中国贸促会邀请并接待巴西贸促会、巴西工业联合会访华代表团。之后,中国贸促会与巴西的对口组织和工商界一直保持着友好的合作关系。

  中国贸促会与南非的交往早于1998年中国与南非建交。1992年,中国贸促会派员赴南非成立中南公司,与南非全国商会、非洲国民大会等组织和 政党建立了联系,并组织中国第一个高层经贸代表团访南非。1993年4月,中国贸促会赴南非举办约翰内斯堡中国贸易展览会,之后在约翰内斯堡、比勒陀利 亚、开普敦等地轮流举办中国贸易展览会。

  二、合作关系与时俱进

  改革开放后,尤其是随着经济全球化进程的推进以及中国加入世界贸易组织,中国与世界的经贸联系日益紧密。为适应形势发展的需要,紧扣“以经济建设为中心”的时代主旋律,中国贸促会与俄罗斯、印度、巴西、南非的合作持续拓展、与时俱进。

  双边经贸代表团互访往来频繁,活动形式多样。中国贸促会多次组织中国企业家代表团访问俄罗斯、印度、巴西、南非,并接待四国商界代表团访华。中国贸促会在组织出访、接待来访的过程中,通过与国外对口组织合作配套举办经贸研讨会、洽谈会、项目对接会等活动,促进务实的经贸合作。

  2006年11月,胡锦涛主席访印期间,中国贸促会参与主办“中印经贸与投资峰会暨中印CEO论坛”,胡锦涛主席出席并发表演讲。2008年1 月,中国贸促会在北京主办“中印经贸、投资与合作峰会”,印度总理辛格、中国国务院副总理回良玉出席并发表演讲。2010年5月,中国贸促会与印度驻华使 馆主办的中国-印度经贸论坛在上海召开,印度总统帕蒂尔出席。2010年9月,中国国际商会在京举办印度工业和基础设施峰会。2010年12月,中国贸促 会会长万季飞率企业家代表团随中国国务院总理温家宝访问印度、巴基斯坦,中国商务部、中国贸促会与印度工业联合会、印度工商联合会在新德里举办中国-印度 商务合作峰会。约400名中印企业家参会,签署48项经贸合作协议,金额约160亿美元。

  2009年8月,中国贸促会在巴西举办“中国与葡语国家企业经贸合作洽谈会(巴西)”。2009年11月,中国贸促会组织企业家代表团访问巴西并出席中国-巴西经贸合作论坛。

  区域性多边合作框架下合作关系紧密。中国贸促会、俄罗斯工商会在2003年成立的中俄蒙商会联合论坛(迄今已做到第七届)、2006年成立的上海合作组织实业家委员会框架下有着密切的相互配合与协作关系。

  中国贸促会与南盟工商会于2004年发起举办“中国—南亚商务论坛”,至今已举办五届,印度工商界均派代表出席。

  2007年在中印俄三国外长倡议下,由中国贸促会与印度工商联合会、印度工业联合会在新德里合作举办首届中印俄企业家会议。2009年第二届中印俄企业家会议在吉林长春市举办,印度工商联合会、印度工业联合会企业家代表团参会。

  自2007年起,中国贸促会发起和主办的中国-拉美企业家高峰会轮流在中国和拉美举行。巴西贸易与投资促进局(APEX)和巴中工商会都是首届高峰会的支持单位,第二、三届高峰会巴西方面增加了中国-巴西企业家理事会巴方委员会作为支持单位。

  建立双边合作机制,确保合作的可持续性。2004年中国贸促会与俄方合作,成立中俄双边企业家理事会,并在同期召开第一次理事会会议。2007 年3月,配合中国国家主席胡锦涛主席访俄,中俄双边企业家理事会召开第二次理事会会议。第三次、第四次理事会会议分别于2008年5月、2009年6月举 行。

  1985年中国贸促会与印度工商联合会(FICCI)签署合作协议,成立中印联合商务理事会,此后理事会举行过12次会议。2002年中国贸促 会与印度工业联合会(CII)签署合作备忘录,双方商定在商务访问、展会、法律等方面开展合作。2006年,中国贸促会与南亚地区合作联盟工商会(简称南 盟工商会,SCCI)成立中国—南亚商务理事会,中方秘书处设在昆明。

  中国贸促会与巴西出口投资促进署(APEX)、巴中工商会均签有合作协议。2007年11月,中国贸促会与巴西贸易与投资促进局(APEX)签署合作谅解备忘录。

  经贸展览数量增加、规模扩大。中国贸促会自1992年9月起每年均赴俄罗斯举办俄罗斯圣彼得堡中国经济贸易展览会。2009年,贸促会赴俄参加 莫斯科国际建筑工业展览会、国际电子元器件及设备展览会、国际家用电器和消费类电子产品展览会,国际五金展览会。2011年9月,贸促会将组团参加莫斯科 轻工纺织及设备展览会。2009年贸促会促成俄罗斯西伯利亚国际展览中心公司和北京中展海外展览有限公司签署合作协议,中展海外公司成为西伯利亚展览中心 在中国地区的唯一代理。

  为培育品牌展览会,加强区域经济合作,中国贸促会于2009年12月首次代表国家在印度孟买举办“中国制造展览会”,展出面积达4700平方 米,有来自中国11个省市的225家企业参展,展品以机电产品和轻工消费品为主。2010年适逢中印两国建交60周年,中国贸促会联合广东贸促分会赴印度 孟买举办“中国制造展览会”。这次展览会总面积近4000平方米,来访贸易专业观众7000多人次。2011年12月,中国贸促会将继续赴印度举办中国制 造展览会。

  中国贸促会于1983年5月首次赴巴西举办巴西圣保罗中国经济贸易展览会,从1995年后几乎每年赴巴西参展。2010年中国贸促会赴巴西参加国际安防展览会。2011年中国贸促会将赴巴西参加国际电子元器件展览会和国际安防展览会。

  中国与南非建交后,从1999年起,中国贸促会连续参加南非国际贸易博览会,曾获得主办方颁发的最佳国家馆奖、设计施工金奖等。

  法律业务合作方兴未艾。自20世纪90年代起,中国贸促会与俄罗斯、印度、南非在商事仲裁、ATA单证册等法律业务方面进行了良好的合作。

  1996年,中国贸促会所属的中国国际经济贸易仲裁委员会(以下简称贸仲委)与俄罗斯联邦工商会仲裁院签署《合作协议》。2000年,贸仲委与 俄罗斯联邦工商会、蒙古国家仲裁院共同发起并主办第一届国际商事仲裁研讨会。之后会议每年举办一次,由三家机构轮流主办。2000年,贸仲委与印度仲裁委 员会、印度工商联合会仲裁院签署《仲裁合作协议》,协议包括相互交换信息和出版物、相互推荐仲裁员、应一方请求相互提供设施和管理性服务等内容。

  ATA单证册制度是世界海关组织为暂准进口货物而专门创设的国际通行海关制度,1992年5月,国务院批准中国贸促会为  中国ATA单证册唯一的出证和担保商会,负责中国ATA单证册的出证和担保工作。在ATA单证册制度框架下,中国贸促会与“金砖四国”的俄罗斯、印度和南 非(作为ATA单证册制度的成员国)积极开展ATA单证册进境和出境业务合作,便利了中国与俄罗斯、印度和南非三国之间的经济、科技、文化的交流。此外, 作为ATA单证册制度国际联保系统成员,中国贸促会一直积极推动巴西实施ATA单证册制度。

  加强对金砖国家的市场调研。为增强中国企业对金砖国家市场的了解,促进中国企业对金砖国家的贸易与投资,中国贸促会编印、出版有《2006中国 贸促会国际市场年报》俄罗斯卷、《2007中国贸促会国际市场年报》俄罗斯卷、《2007中国贸促会国际市场年报》印度卷、《2007中国贸促会国际市场 年报》非洲卷、《2008中国贸促会国际市场年报》俄罗斯卷,介绍俄罗斯、印度、南非的经济发展概况、对外贸易、主要进出口商品、吸引外国投资概况及投资 环境分析、与主要进出口商品相关的机构名录、经贸展会等内容。《中国贸促会国际市场年报》还专门介绍过俄罗斯的汽车工业、钟表市场。

  (中国贸促会办公室新闻处根据有关业务部门提供的资料整理)

posted @ 2011-05-30 13:07 Eric_jiang 阅读(301) | 评论 (0)编辑 收藏

自定义标签的最大的特点:

利用 自定义标签,软件开发人员和页面设计人员可以独立地自由工作.页面设计人员可以把精力集中在使用标签(HTML,XML或者JSP)创建网站上,而软件开 发人员则可以将精力集中在实现底层功能上面,若国际化等等,这样,页面设计人员可以使用自定义标签的形式来实现具体的功能.

下面我们来指定一个简单的标签,步骤如下
  1. 扩张TagSupport
  2. 写自定义Tag的tld文件
  3. web.xml中指定你的tld文件
  4. 在JSP页面使用自定义标签

  • 扩张TagSupport
        说明:
                一般不会去实现Tag接口,而是通过TagSupport类是实现了Tag的接口继承过来的字段,这些字段用做public int               doStartTag(),public int doEndTag()返回值
                Tag.EVAL_BODY_INCLUDE 包含主体内容
                Tag.SKIP_BODY     不包含主体内容
                Tag.EVAL_PAGE      包含后面的页面内容
                Tag.SKIP_PAGE     不包含主体的内容    
实现一个简单实现代码:
java 代码
 
  1. package com.mercyblitz;  
  2. import java.io.IOException;  
  3. import javax.servlet.jsp.JspException;  
  4. import javax.servlet.jsp.JspWriter;  
  5. import javax.servlet.jsp.tagext.TagSupport;  
  6.   
  7. public class MyTags extends TagSupport {  
  8.     public int doStartTag()throws JspException  
  9.     {  
  10.         JspWriter out=pageContext.getOut();  
  11.         try  
  12.         {  
  13.             out.println("Hello,World"); //页面中显示的内容  
  14.         }catch(IOException e)  
  15.         {  
  16.             throw new JspException(e);  
  17.         }  
  18.         return SKIP_BODY; //不包含主体内容  
  19.     }  
  20. }  

  • 写自定义Tag的tld文件
xml 代码
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "web-jsptaglibrary_1_2.dtd" >  
  3. <taglib>  
  4.   <tlibversion>tlibversion</tlibversion>  <!-- 你自定义标签的版本数 -->  
  5.   <jsp-version>1.2</jsp-version>  <!-- 指定你的JSP版本,扩张标签是在JSP1.2之后兼容的 --?>  
  6.   <shortname>shortname</shortname> <!-- 标签的简写 -->  
  7.   <tag>  
  8.     <name>tags</name>  <!-- 标签名字 -->  
  9.     <tagclass>com.mercyblitz.mytags</tagclass>  <!-- 指定你的标签的类 -->  
  10.   </tag>  
  11. </taglib>  
         标签库元素<taglib>属性:表格如下
        
属性表格
属性 描述
tlib-version 本标签库实现版本
jsp-version 标签库依赖的JSP版本
short-name 被JSP创作工具使用的一个短的默认名词
uri 指定这个标签库的uri信息
display-name 被工具使用的显示用的名字
small-icon 被工具使用的小图标
large-icon 被工具使用的大图标
description 本标签的描述
validator TLD验证信息
listener 实践监听器规范
        tag标签相关属性:
tag标签相关属性表
属性 描述
name tag标签唯一的名称
tag-class tag标签的处理类
tei-class tag标签的TagExtraInfo类
body-content 标签主体的内容
display-name 显示的名称
small-icon 被工具使用的小图标
large-icon 被工具使用的大图标
description 本标签的描述
variable 脚本变量的信息
attribute 标签属性的信息
            这些呢,是为以后高级内容说要提到的!
  • web.xml中指定你的tld文件
    xml 代码
     
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <web-app version="2.4"   
    3.     xmlns="http://java.sun.com/xml/ns/j2ee"   
    4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    5.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   
    6.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
    7.     <welcome-file-list>  
    8.        <welcome-file>/WEB-INF/mytag.jsp</welcome-file> <!-- 设置欢迎页面 -->  
    9.     </welcome-file-list>  
    10.     <jsp-config>  
    11.           <taglib>  
    12.         <taglib-uri>http://mercyblitz.blog.ccidnet.com/taglibs.tld</taglib-uri> <!-- 设置自定义标签的uri(不一定存在,但是一定要唯一),为页面的部署做好准备  
    13.         <taglib-location>/WEB-INF/taglibs.tld</taglib-location>  <!--定位你的tld文件的相对路径 -->  
    14.       </taglib>  
    15.     </jsp-config>  
    16. </web-app> 
  • 页面部署:mytag.jsp
    html 代码
     
    1. <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>  
    2. <%@ taglib uri="http://mercyblitz.blog.ccidnet.com/taglibs.tld" prefix="out" %>  
    3. <html>  
    4.   <head>  
    5.     <title>mytag.jsp</title>  
    6.   </head>    
    7.   <body>  
    8.     <out:tags/>  <!-- 页面执行的结构,就是:  Hello,World -->
    9.   </body>  
    10. </html>  
posted @ 2011-05-30 13:04 Eric_jiang 阅读(692) | 评论 (0)编辑 收藏

ResourceBundle
使用ResourceBundle访问本地资源
        在设计时,我们往往需要访问一些适合本地修改的配置信息,如果作为静态变量,那么每次修改都需要重新编译一个class,.config保存此类信息并不适合,这时我们需要ResourceBundle。
   通过ResourceBundle,我们需要访问位于/WEB-INF/classes目录下的一个后缀名为properties的文本类型文件,从里面读取我们需要的值。

    Locale locale = Locale.getDefault();
    ResourceBundle localResource = ResourceBundle.getBundle("ConnResource", locale);

    String value = localResource.getString("test");
    System.out.println("ResourceBundle: " + value);

    这里对应了/WEB-INF/class/ConnResource.properties文件内容为:

    test=hello world

    打印出来的结果就是hello world
   
    请注意,这里我们可以利用Locale和ResourceBundle的这个组合创建国际化的java程序。我们可以把locale实例化为new Locale("zh","CN");

    通过ResourceBundle.getBundle("MessagesBundle", locale);

    系统将自动寻找MessagesBundle_zh_CN,即定义为中国大陆地区简体中文。如果没有该文件,则会依次寻找MessagesBundle_zh,MessagesBundle,直到找到为止。

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
代码:
import java.util.Locale;
import java.util.ResourceBundle;
public class LocaleTest {
public static void main(String[] args)
{
   Locale localeCN = new Locale("zh","CN");
   Locale localeJP = new Locale("co","JP");
   ResourceBundle localResourceCN = ResourceBundle.getBundle("ConnResource", localeCN);
   String valueCN = localResourceCN.getString("test");
   System.out.println("ResourceBundle: " + valueCN);
  
   ResourceBundle localResourceJP = ResourceBundle.getBundle("ConnResource", localeJP);
   String valueJP = localResourceJP.getString("test");
   System.out.println("ResourceBundle: " + valueJP);
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
文件内容:
ConnResource_co_JP.properties:
                         test=hello japan
ConnResource_zh_CN.properties:
                         test=hello china

posted @ 2011-05-30 11:47 Eric_jiang 阅读(336) | 评论 (0)编辑 收藏

仅列出标题
共57页: First 上一页 39 40 41 42 43 44 45 46 47 下一页 Last