杨庆荣的博客

工作之余接单:公司产品展示网站建设、电商网站建设、小程序、app开发。+86 13714715608

blaze ds 连接到mysql

点击 147449    创建时间 2012-10-22 18:31:56

<p> 转载请注意地址:http://www.wudimei.com/yangqingrong<br /> 第一部份:服务器端</p> <p> <strong>web.xml</strong></p> <div class="code"> <p> &lt;?xml version="1.0" encoding="UTF-8"?&gt;<br /> &lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"&gt;<br /> &lt;web-app&gt;<br /> <br /> &lt;display-name&gt;Spring and Flex&lt;/display-name&gt;<br /> &lt;description&gt;Spring and Flex&lt;/description&gt;<br /> &lt;listener&gt;<br /> &lt;listener-class&gt;flex.messaging.HttpFlexSession&lt;/listener-class&gt;<br /> &lt;/listener&gt;<br /> &lt;servlet&gt;<br /> &lt;servlet-name&gt;dispatcherServlet&lt;/servlet-name&gt;<br /> &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt;<br /> &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;<br /> &lt;/servlet&gt;<br /> <br /> <br /> &lt;servlet&gt;<br /> &lt;servlet-name&gt;RDSDispatchServlet&lt;/servlet-name&gt;<br /> &lt;display-name&gt;RDSDispatchServlet&lt;/display-name&gt;<br /> &lt;servlet-class&gt;flex.rds.server.servlet.FrontEndServlet&lt;/servlet-class&gt;<br /> &lt;init-param&gt;<br /> &lt;param-name&gt;messageBrokerId&lt;/param-name&gt;<br /> &lt;param-value&gt;_messageBroker&lt;/param-value&gt;<br /> &lt;/init-param&gt;<br /> &lt;init-param&gt;<br /> &lt;param-name&gt;useAppserverSecurity&lt;/param-name&gt;<br /> &lt;param-value&gt;false&lt;/param-value&gt;<br /> &lt;/init-param&gt;<br /> &lt;load-on-startup&gt;10&lt;/load-on-startup&gt;<br /> &lt;/servlet&gt;<br /> <br /> &lt;servlet-mapping id="RDS_DISPATCH_MAPPING"&gt;<br /> &lt;servlet-name&gt;RDSDispatchServlet&lt;/servlet-name&gt;<br /> &lt;url-pattern&gt;/CFIDE/main/ide.cfm&lt;/url-pattern&gt;<br /> &lt;/servlet-mapping&gt;<br /> <br /> &lt;servlet-mapping&gt;<br /> &lt;servlet-name&gt;dispatcherServlet&lt;/servlet-name&gt;<br /> &lt;url-pattern&gt;/messagebroker/&lt;/url-pattern&gt;<br /> &lt;/servlet-mapping&gt;<br /> <br /> &lt;/web-app&gt;</p> </div> <p>  </p> <p> <strong>dispatcherServlet-servlet.xml</strong></p> <p>  </p> <div style="color:#666666;background-color:#e4e4e4;font-size:12px;"> &lt;?xml version="1.0" encoding="UTF-8"?&gt;<br /> &lt;beans xmlns="http://www.springframework.org/schema/beans"<br /> xmlns:flex="http://www.springframework.org/schema/flex" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br /> xmlns:context="http://www.springframework.org/schema/context"<br /> xsi:schemaLocation="<br /> http://www.springframework.org/schema/beans<br /> http://www.springframework.org/schema/beans/spring-beans-3.0.xsd<br /> http://www.springframework.org/schema/flex<br /> http://www.springframework.org/schema/flex/spring-flex-1.0.xsd<br /> http://www.springframework.org/schema/context<br /> http://www.springframework.org/schema/context/spring-context-3.0.xsd"&gt;<br /> <br /> &lt;flex:message-broker&gt;<br /> &lt;flex:remoting-service default-channels="my-amf"/&gt;<br /> &lt;/flex:message-broker&gt;<br /> <br /> &lt;context:annotation-config /&gt;<br /> &lt;context:component-scan base-package="wudimei" /&gt;<br /> <br /> &lt;bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"&gt;<br /> &lt;property name="driverClassName" value="com.mysql.jdbc.Driver" /&gt;<br /> &lt;property name="url" value="jdbc:mysql://localhost:3306/test" /&gt;<br /> &lt;property name="username" value="root" /&gt;<br /> &lt;property name="password" value="123456" /&gt;<br /> &lt;/bean&gt;<br /> <br /> &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"&gt;<br /> &lt;property name="dataSource" ref="dataSource" /&gt;<br /> &lt;property name="packagesToScan" value="wudimei"/&gt;<br /> &lt;property name="hibernateProperties"&gt;<br /> &lt;props&gt;<br /> &lt;prop key="hibernate.dialect"&gt;org.hibernate.dialect.MySQLDialect&lt;/prop&gt;<br /> &lt;prop key="hibernate.hbm2ddl.auto"&gt;create&lt;/prop&gt;<br /> &lt;/props&gt;<br /> &lt;/property&gt;<br /> &lt;/bean&gt;<br /> <br /> &lt;/beans&gt;</div> <p>  </p> <p> <strong>flex/service-config.xml</strong></p> <p>  </p> <div class="code"> &lt;?xml version="1.0" encoding="UTF-8"?&gt;<br /> &lt;services-config&gt;<br /> <br /> &lt;services/&gt;<br /> <br /> &lt;security/&gt;<br /> <br /> &lt;channels&gt;<br /> &lt;channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel"&gt;<br /> &lt;endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/&gt;<br /> &lt;/channel-definition&gt;<br /> &lt;/channels&gt;<br /> <br /> &lt;logging&gt;<br /> &lt;target class="flex.messaging.log.ConsoleTarget" level="Info"&gt;<br /> &lt;properties&gt;<br /> &lt;prefix&gt;[BlazeDS] &lt;/prefix&gt;<br /> &lt;includeDate&gt;false&lt;/includeDate&gt;<br /> &lt;includeTime&gt;false&lt;/includeTime&gt;<br /> &lt;includeLevel&gt;false&lt;/includeLevel&gt;<br /> &lt;includeCategory&gt;false&lt;/includeCategory&gt;<br /> &lt;/properties&gt;<br /> &lt;filters&gt;<br /> &lt;pattern&gt;Endpoint.&lt;/pattern&gt;<br /> &lt;pattern&gt;Service.&lt;/pattern&gt;<br /> &lt;pattern&gt;Configuration&lt;/pattern&gt;<br /> &lt;/filters&gt;<br /> &lt;/target&gt;<br /> &lt;/logging&gt;<br /> <br /> &lt;system/&gt;<br /> <br /> &lt;/services-config&gt;</div> <p>  </p> <p> <strong>flex-remoting.xml</strong></p> <p>  </p> <div class="code"> &lt;?xml version="1.0" encoding="UTF-8"?&gt;<br /> &lt;service id="remoting-service"<br /> class="flex.messaging.services.RemotingService"&gt;<br /> <br /> &lt;adapters&gt;<br /> &lt;adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/&gt;<br /> &lt;/adapters&gt;<br /> &lt;!--<br /> &lt;default-channels&gt;<br /> &lt;channel ref="my-amf"/&gt;<br /> &lt;/default-channels&gt;<br /> <br /> &lt;destination id="helloService" channels="my-amf"&gt;<br /> &lt;properties&gt;<br /> &lt;source&gt;wudimei.Hello&lt;/source&gt;<br /> &lt;/properties&gt;<br /> &lt;/destination&gt;<br /> --&gt;<br /> &lt;/service&gt;</div> <p>  </p> <p> 以上是配置,基本是根据adobe教程来的,我改了上面的mysql的连接配置,把mysql-connector-java-5.1.15-bin.jar拷到WEB-INF/lib下。</p> <p>  </p> <p> <strong>实体类User.java</strong></p> <p>  </p> <div class="code"> package wudimei;<br /> <br /> import javax.persistence.Entity;<br /> import javax.persistence.GeneratedValue;<br /> import javax.persistence.Id;<br /> <br /> @Entity<br /> public class User {<br /> @Id<br /> @GeneratedValue<br /> public long id;<br /> private String email;<br /> private String password;<br /> public long getId() {<br /> return id;<br /> }<br /> public void setId(long id) {<br /> this.id = id;<br /> }<br /> public String getEmail() {<br /> return email;<br /> }<br /> public void setEmail(String email) {<br /> this.email = email;<br /> }<br /> public String getPassword() {<br /> return password;<br /> }<br /> public void setPassword(String password) {<br /> this.password = password;<br /> }<br /> }</div> <p>  </p> <p> <strong>服务类Hello.java</strong></p> <div class="code">  </div> <div class="code"> package wudimei;<br /> <br /> import java.util.List;<br /> <br /> import javax.servlet.http.HttpServletRequest;<br /> <br /> import org.apache.commons.logging.Log;<br /> import org.apache.commons.logging.LogFactory;<br /> import org.hibernate.SessionFactory;<br /> import org.springframework.beans.factory.annotation.Autowired;<br /> import org.springframework.flex.remoting.RemotingDestination;<br /> import org.springframework.flex.remoting.RemotingInclude;<br /> import org.springframework.orm.hibernate3.HibernateTemplate;<br /> import org.springframework.stereotype.Service;<br /> <br /> import flex.messaging.FlexContext;<br /> <br /> @Service<br /> @RemotingDestination<br /> public class Hello {<br /> private Log logger = LogFactory.getLog(this.getClass());<br /> private HibernateTemplate template;<br /> @Autowired<br /> public void setSessionFactory(SessionFactory session)<br /> {<br /> this.template = new HibernateTemplate(session);<br /> }<br /> @RemotingInclude<br /> public String say(String name)<br /> {<br /> HttpServletRequest request = FlexContext.getHttpRequest();<br /> <br /> return "hello," +name + " encoding:" + request.getCharacterEncoding();<br /> }<br /> @RemotingInclude<br /> public boolean login(String username,String password )<br /> {<br /> boolean isLogined = false;<br /> HttpServletRequest request = FlexContext.getHttpRequest();<br /> <br /> return isLogined;<br /> <br /> }<br /> @RemotingInclude<br /> public void save(String email , String password )<br /> {<br /> User u = new User();<br /> u.setEmail(email);<br /> u.setPassword(password);<br /> this.template.save(u);<br /> }<br /> @RemotingInclude<br /> public List&lt;User&gt; getUsers()<br /> {<br /> return this.template.findByExample(new User());<br /> }<br /> }</div> <p>  </p> <p> 然后在eclipse中选择File-&gt;export ,导出war到tomcat/webapps下</p> <p>  </p> <p>  </p> <p>  </p> <p> <strong>User.mxml</strong></p> <p>  </p> <div class="code"> &lt;?xml version="1.0" encoding="utf-8"?&gt;<br /> &lt;s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"<br /> xmlns:s="library://ns.adobe.com/flex/spark"<br /> xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:services="services."&gt;<br /> &lt;s:layout&gt;<br /> &lt;s:BasicLayout/&gt;<br /> &lt;/s:layout&gt;<br /> &lt;fx:Script&gt;<br /> &lt;![CDATA[<br /> import mx.controls.Alert;<br /> import mx.events.FlexEvent;<br /> <br /> protected function button_clickHandler(event:MouseEvent):void<br /> {<br /> saveResult.token = hello.save(arg0TextInput.text,arg1TextInput.text);<br /> }<br /> <br /> <br /> protected function users_creationCompleteHandler(event:Event):void<br /> {<br /> getUsersResult.token = hello.getUsers();<br /> }<br /> <br /> ]]&gt;<br /> &lt;/fx:Script&gt;<br /> &lt;fx:Declarations&gt;<br /> &lt;services:Hello id="hello" fault="Alert.show(event.fault.faultString + \'\n\' + event.fault.faultDetail)" showBusyCursor="true"&gt;<br /> &lt;services:channelSet&gt;<br /> &lt;s:ChannelSet&gt;<br /> &lt;s:AMFChannel uri="http://localhost:8080/flex-server/messagebroker/amf" /&gt;<br /> &lt;/s:ChannelSet&gt;<br /> &lt;/services:channelSet&gt;<br /> &lt;/services:Hello&gt;<br /> &lt;s:CallResponder id="saveResult" result="users_creationCompleteHandler(event)"/&gt;<br /> &lt;s:CallResponder id="getUsersResult"/&gt;<br /> &lt;!-- 将非可视元素(例如服务、值对象)放在此处 --&gt;<br /> &lt;/fx:Declarations&gt;<br /> &lt;mx:Form defaultButton="{button}" x="22" y="284"&gt;<br /> &lt;mx:FormItem label="Username"&gt;<br /> &lt;s:TextInput id="arg0TextInput"/&gt;<br /> &lt;/mx:FormItem&gt;<br /> &lt;mx:FormItem label="Password"&gt;<br /> &lt;s:TextInput id="arg1TextInput"/&gt;<br /> &lt;/mx:FormItem&gt;<br /> &lt;s:Button label="Save" id="button" click="button_clickHandler(event)"/&gt;<br /> &lt;/mx:Form&gt;<br /> &lt;mx:DataGrid x="51" y="47" id="users" creationComplete="users_creationCompleteHandler(event)" dataProvider="{getUsersResult.lastResult}"&gt;<br /> &lt;mx:columns&gt;<br /> &lt;mx:DataGridColumn headerText="id" dataField="id"/&gt;<br /> &lt;mx:DataGridColumn headerText="email" dataField="email"/&gt;<br /> &lt;mx:DataGridColumn headerText="password" dataField="password"/&gt;<br /> &lt;/mx:columns&gt;<br /> &lt;/mx:DataGrid&gt;<br /> &lt;/s:Application&gt;</div>

上一篇: 命令行下编译flex连接到spring blazeds
下一篇: 好不容易录了一首歌