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> <?xml version="1.0" encoding="UTF-8"?><br /> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"><br /> <web-app><br /> <br /> <display-name>Spring and Flex</display-name><br /> <description>Spring and Flex</description><br /> <listener><br /> <listener-class>flex.messaging.HttpFlexSession</listener-class><br /> </listener><br /> <servlet><br /> <servlet-name>dispatcherServlet</servlet-name><br /> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><br /> <load-on-startup>1</load-on-startup><br /> </servlet><br /> <br /> <br /> <servlet><br /> <servlet-name>RDSDispatchServlet</servlet-name><br /> <display-name>RDSDispatchServlet</display-name><br /> <servlet-class>flex.rds.server.servlet.FrontEndServlet</servlet-class><br /> <init-param><br /> <param-name>messageBrokerId</param-name><br /> <param-value>_messageBroker</param-value><br /> </init-param><br /> <init-param><br /> <param-name>useAppserverSecurity</param-name><br /> <param-value>false</param-value><br /> </init-param><br /> <load-on-startup>10</load-on-startup><br /> </servlet><br /> <br /> <servlet-mapping id="RDS_DISPATCH_MAPPING"><br /> <servlet-name>RDSDispatchServlet</servlet-name><br /> <url-pattern>/CFIDE/main/ide.cfm</url-pattern><br /> </servlet-mapping><br /> <br /> <servlet-mapping><br /> <servlet-name>dispatcherServlet</servlet-name><br /> <url-pattern>/messagebroker/</url-pattern><br /> </servlet-mapping><br /> <br /> </web-app></p> </div> <p> </p> <p> <strong>dispatcherServlet-servlet.xml</strong></p> <p> </p> <div style="color:#666666;background-color:#e4e4e4;font-size:12px;"> <?xml version="1.0" encoding="UTF-8"?><br /> <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"><br /> <br /> <flex:message-broker><br /> <flex:remoting-service default-channels="my-amf"/><br /> </flex:message-broker><br /> <br /> <context:annotation-config /><br /> <context:component-scan base-package="wudimei" /><br /> <br /> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><br /> <property name="driverClassName" value="com.mysql.jdbc.Driver" /><br /> <property name="url" value="jdbc:mysql://localhost:3306/test" /><br /> <property name="username" value="root" /><br /> <property name="password" value="123456" /><br /> </bean><br /> <br /> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"><br /> <property name="dataSource" ref="dataSource" /><br /> <property name="packagesToScan" value="wudimei"/><br /> <property name="hibernateProperties"><br /> <props><br /> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><br /> <prop key="hibernate.hbm2ddl.auto">create</prop><br /> </props><br /> </property><br /> </bean><br /> <br /> </beans></div> <p> </p> <p> <strong>flex/service-config.xml</strong></p> <p> </p> <div class="code"> <?xml version="1.0" encoding="UTF-8"?><br /> <services-config><br /> <br /> <services/><br /> <br /> <security/><br /> <br /> <channels><br /> <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel"><br /> <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/><br /> </channel-definition><br /> </channels><br /> <br /> <logging><br /> <target class="flex.messaging.log.ConsoleTarget" level="Info"><br /> <properties><br /> <prefix>[BlazeDS] </prefix><br /> <includeDate>false</includeDate><br /> <includeTime>false</includeTime><br /> <includeLevel>false</includeLevel><br /> <includeCategory>false</includeCategory><br /> </properties><br /> <filters><br /> <pattern>Endpoint.</pattern><br /> <pattern>Service.</pattern><br /> <pattern>Configuration</pattern><br /> </filters><br /> </target><br /> </logging><br /> <br /> <system/><br /> <br /> </services-config></div> <p> </p> <p> <strong>flex-remoting.xml</strong></p> <p> </p> <div class="code"> <?xml version="1.0" encoding="UTF-8"?><br /> <service id="remoting-service"<br /> class="flex.messaging.services.RemotingService"><br /> <br /> <adapters><br /> <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/><br /> </adapters><br /> <!--<br /> <default-channels><br /> <channel ref="my-amf"/><br /> </default-channels><br /> <br /> <destination id="helloService" channels="my-amf"><br /> <properties><br /> <source>wudimei.Hello</source><br /> </properties><br /> </destination><br /> --><br /> </service></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<User> getUsers()<br /> {<br /> return this.template.findByExample(new User());<br /> }<br /> }</div> <p> </p> <p> 然后在eclipse中选择File->export ,导出war到tomcat/webapps下</p> <p> </p> <p> </p> <p> </p> <p> <strong>User.mxml</strong></p> <p> </p> <div class="code"> <?xml version="1.0" encoding="utf-8"?><br /> <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."><br /> <s:layout><br /> <s:BasicLayout/><br /> </s:layout><br /> <fx:Script><br /> <![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 /> ]]><br /> </fx:Script><br /> <fx:Declarations><br /> <services:Hello id="hello" fault="Alert.show(event.fault.faultString + \'\n\' + event.fault.faultDetail)" showBusyCursor="true"><br /> <services:channelSet><br /> <s:ChannelSet><br /> <s:AMFChannel uri="http://localhost:8080/flex-server/messagebroker/amf" /><br /> </s:ChannelSet><br /> </services:channelSet><br /> </services:Hello><br /> <s:CallResponder id="saveResult" result="users_creationCompleteHandler(event)"/><br /> <s:CallResponder id="getUsersResult"/><br /> <!-- 将非可视元素(例如服务、值对象)放在此处 --><br /> </fx:Declarations><br /> <mx:Form defaultButton="{button}" x="22" y="284"><br /> <mx:FormItem label="Username"><br /> <s:TextInput id="arg0TextInput"/><br /> </mx:FormItem><br /> <mx:FormItem label="Password"><br /> <s:TextInput id="arg1TextInput"/><br /> </mx:FormItem><br /> <s:Button label="Save" id="button" click="button_clickHandler(event)"/><br /> </mx:Form><br /> <mx:DataGrid x="51" y="47" id="users" creationComplete="users_creationCompleteHandler(event)" dataProvider="{getUsersResult.lastResult}"><br /> <mx:columns><br /> <mx:DataGridColumn headerText="id" dataField="id"/><br /> <mx:DataGridColumn headerText="email" dataField="email"/><br /> <mx:DataGridColumn headerText="password" dataField="password"/><br /> </mx:columns><br /> </mx:DataGrid><br /> </s:Application></div>
上一篇: 命令行下编译flex连接到spring blazeds
下一篇: 好不容易录了一首歌