Spring flex 搭建服务 之 编程环境配置和我的第一个程序(第二章,第二节)

来源:互联网 发布:ip地址端口查询 编辑:程序博客网 时间:2024/05/16 07:20

由于新浪博客文章长度的限制,下面的内容是接上一节的内容,如果您没有看上一节内容,请先看完上一节内容后,再看本节内容。

要执行请需要配置log4j.properties,配置如下:

### direct log messages to stdout###

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target=System.out

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

 

### direct messages to file hibernate.log###

#log4j.appender.file=org.apache.log4j.FileAppender

#log4j.appender.file.File=hibernate.log

#log4j.appender.file.layout=org.apache.log4j.PatternLayout

#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE}%5p %c{1}:%L - %m%n

 

### set log levels - for more verbose loggingchange 'info' to 'debug' ###

 

log4j.rootLogger=warn, stdout

 

#log4j.logger.org.hibernate=info

#log4j.logger.org.hibernate=debug

 

### log HQL query parser activity

#log4j.logger.org.hibernate.hql.ast.AST=debug

 

### log just the SQL

#log4j.logger.org.hibernate.SQL=debug

 

### log JDBC bind parameters ###

#log4j.logger.org.hibernate.type=info

#log4j.logger.org.hibernate.type=debug

 

### log schema export/update ###

log4j.logger.org.hibernate.tool.hbm2ddl=debug

 

### log HQL parse trees

#log4j.logger.org.hibernate.hql=debug

 

### log cache activity ###

#log4j.logger.org.hibernate.cache=debug

 

### log transaction activity

#log4j.logger.org.hibernate.transaction=debug

 

### log JDBC resource acquisition

#log4j.logger.org.hibernate.jdbc=debug

 

### enable the following line if you want to trackdown connection ###

### leakages when usingDriverManagerConnectionProvider ###

#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

关于log4j的配置,我也没研究过,如果您感兴趣,就去查看他的文档。

 

最后右键点击工程,选择run onService ,然后选择v tomcat7.0然后finish。

可以看到控制台输出有如下信息:

警告:[SetPropertiesRule]{Server/Service/Engine/Host/Context} Settingproperty 'source' to'org.eclipse.jst.jee.server:MyFirstFlexSpringService' did not finda matching property.

这时打开Service窗口,双击服务:

Spring <wbr>flex <wbr>搭建服务 <wbr>之 <wbr>编程环境配置和我的第一个程序(第二章,第二节)

在serverOptions中勾选publish module context to separate XMLfiles。

然后重新启动服务。

控制台输出信息如下:

2010-11-29 11:06:49org.apache.catalina.core.AprLifecycleListener init

信息: An older version 1.1.17 of the APR based ApacheTomcat Native library is installed, while Tomcat recommends aminimum version of 1.1.20

2010-11-29 11:06:49org.apache.catalina.core.AprLifecycleListener init

信息: Loaded APR based Apache Tomcat Native library1.1.17.

2010-11-29 11:06:49org.apache.catalina.core.AprLifecycleListener init

信息: APR capabilities: IPv6 [true], sendfile [true],accept filters [false], random [true].

2010-11-29 11:06:51org.apache.coyote.http11.Http11AprProtocol init

信息: Initializing Coyote HTTP/1.1 onhttp-8080

2010-11-29 11:06:51org.apache.coyote.ajp.AjpAprProtocol init

信息: Initializing Coyote AJP/1.3 onajp-8009

2010-11-29 11:06:51org.apache.catalina.startup.Catalina load

信息: Initialization processed in 3793 ms

2010-11-29 11:06:51org.apache.catalina.core.StandardService startInternal

信息: Starting service Catalina

2010-11-29 11:06:51org.apache.catalina.core.StandardEngine startInternal

信息: Starting Servlet Engine: ApacheTomcat/7.0.4

2010-11-29 11:06:52org.apache.catalina.startup.HostConfig deployDescriptor

信息: Deploying configuration descriptorMyFirstFlexSpringService.xml from F:\programs\eclipse\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\conf\Catalina\localhost

2010-11-29 11:06:54org.apache.catalina.core.ApplicationContext log

信息: Initializing Spring FrameworkServlet'spring'

2010-11-29 11:06:59org.apache.coyote.http11.Http11AprProtocol start

信息: Starting Coyote HTTP/1.1 on http-8080

2010-11-29 11:06:59org.apache.coyote.ajp.AjpAprProtocol start

信息: Starting Coyote AJP/1.3 on ajp-8009

2010-11-29 11:06:59org.apache.catalina.startup.Catalina start

信息: Server startup in 7453 ms

 

注意这条信息:F:\programs\eclipse\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\conf\Catalina\localhost

在文件系统中打开这个目录:会看到一个与你工程名相对应的配置文档(这里叫MyFirstFlexSpringService.xml。打开这个配置文档,内容如下:

<?xml version="1.0"encoding="UTF-8"?>

<ContextdocBase="F:\programs\eclipse\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\MyFirstFlexSpringService"path="/MyFirstFlexSpringService" reloadable="true"source="org.eclipse.jst.jee.server:MyFirstFlexSpringService"/>

可以看到docBase的位置,就是Eclipse指定的服务发布的位置,path就是服务访问时的名字。注意这些信息,因为在后面的flex客户端编写的时候还会用到。

Eclipse EE 没有MyEclipse那么好用,现在我也不知道咋修改这个默认生成的发布目录,如果那个同学知道,可以通知我哈!

1.      Flex客户端的编写

1.1.用flex连接到后台服务

打开flashbuilder4.0,file­->new->flexproject,project name 输入 MyFirstFlexSpringClient,在server technology 中的application servertype 选择j2ee,然后勾选BlazeDS,选择next,进入服务配置页面,Root folder 中输入前面提到的docBase中的值(这里是F:\programs\eclipse\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\MyFirstFlexSpringService)Root URL中输入http://yourIp:8080/path(注意,yourip是你的ip地址,path是前面提到的访问路径)这里我填写的是http://202.194.158.128:8080/MyFirstFlexSpringService,最后contextroot填写你工程名即可,这里是/MyFirstFlexSpringService。(注意整个过程与您的MyFirstFlexSpringService.xml填写进行对照)。然后点击Validate Configuration,会提示您工程可用。点击finish即可,新的flex工程创建完成。(注意在创建过程中,后台的Spring服务端必须是打开的,在使用和调试过程中,后台的服务也必须是打开的)。

1.2.创建服务端的对象

在Data/Services选项卡下面有一个Connect to Data/Service的连接,点击这个连接,选择BlazeDS,点击next,选择no password required,点击ok,点击next,看到我们的一个服务叫SpringService(实际上一个后台可用有多个服务,服务的名字在默认情况下与你的类名相同),选择服务,finish。这时,你会看到Flex工程中多了一个services包。

 

1.3.Flex代码编写

2. <?xml version="1.0"encoding="utf-8"?>

3. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"

4.           xmlns:s="library://ns.adobe.com/flex/spark"

5.           xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:services="services.*">

6. <fx:Script>

7.    <![CDATA[

8.        import mx.controls.Alert;

9.        import mx.rpc.events.ResultEvent;

10.       protected function submint_clickHandler(event:MouseEvent):void

11.       {

12.          sayHello();

13.       }

14.       

15.       protected function sayHello():void

16.       {

17.          sayHelloResult.token = springService.sayHello(userName.text);

18.          sayHelloResult.addEventListener(ResultEvent.RESULT,sayHelloFinish);

19.       }

20.       

21.       protected function sayHelloFinish(event:ResultEvent):void

22.       {

23.          userName.text = sayHelloResult.lastResult;

24.       }

25.       

26.   ]]>

27.</fx:Script>

28.

29.<fx:Declarations>

30.   <s:CallResponder id="sayHelloResult"/>

31.   <services:SpringServiceid="springService" fault="Alert.show(event.fault.faultString+'\n' + event.fault.faultDetail)"showBusyCursor="true">

32.       <services:channelSet>

33.          <s:ChannelSet>

34.              <s:AMFChannel url="http://202.194.158.128:8080/MyFirstFlexSpringService/messagebroker/amf"/>

35.          </s:ChannelSet>

36.       </services:channelSet>  

37.   </services:SpringService>

38.</fx:Declarations>

39.<s:Button id="submint"

40.        x="152" y="216"

41.        label="确定"

42.        click="submint_clickHandler(event)"/>

43.<s:TextInput id="userName" x="152" y="171"/>

44.</s:Application>

如果您不懂请看flex的教学视频。

注意:http://202.194.158.128:8080/MyFirstFlexSpringService/messagebroker/amf

这个与我们前面的相对应的。

 

有问题,留言或者给woshiguanxinquan@163.com发邮件。

 

原创粉丝点击