整合 java + BlazeDS + spring + JDO 部署到 app 上.

简介: 先看到 一篇 部署到 app 上面的文章. http://www.iteye.com/topic/428326   感谢这个兄弟的研究.       先说昨天写的一篇 文章.   http://toeo.iteye.com/admin/blogs/641211   讲到 如果 创建 一个 java 和 BlazeDS的工程. 并且工程文件是放到一起的.   f

先看到 一篇 部署到 app 上面的文章.

http://www.iteye.com/topic/428326

 

感谢这个兄弟的研究.

 

 

 

先说昨天写的一篇 文章.

 

http://toeo.iteye.com/admin/blogs/641211

 

讲到 如果 创建 一个 java 和 BlazeDS的工程. 并且工程文件是放到一起的.

 

flex 和 J2EE 一起开发.

 

现在将工程 可以运行 app 上面. 开发 的东西直接部署到 google的服务器上面.

 

工程代码很简单.

 

一个pojo.

 

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class SystemUser implements Serializable {

	private static final long serialVersionUID = 5679860749390605118L;

	@PrimaryKey
	@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
	private Long id;

	@Persistent
	public String loginName;

	@Persistent
	public String passwd;
......

 

一个dao.

 

public class SystemUserDAO extends JdoDaoSupport {

......

/**
	 * 保存数据.
	 */
	public String saveSystemUser(SystemUser systemUser) {
		String countNo = "";
		PersistenceManager pm = getPersistenceManager();
		try {
			if (systemUser.getId() == null) {
				systemUser.setCreateDate(new Date());
				pm.makePersistent(systemUser);
			} else {
				SystemUser tempSystemUser = pm.getObjectById(SystemUser.class,
						systemUser.getId());
				tempSystemUser.setLoginName(systemUser.getLoginName());
				tempSystemUser.setPasswd(systemUser.getPasswd());
				tempSystemUser.setName(systemUser.getName());
				tempSystemUser.setPhone(systemUser.getPhone());
				tempSystemUser.setEmail(systemUser.getEmail());
				tempSystemUser.setIslock(systemUser.getIslock());
				tempSystemUser.setLoginTimes(systemUser.getLoginTimes());
				tempSystemUser.setLastLogin(systemUser.getLastLogin());
				pm.makePersistent(tempSystemUser);
			}
			Query query = pm.newQuery("select count(id) from "
					+ SystemUser.class.getName());
			/** 强制转换成int */
			countNo = "" + Integer.parseInt(query.execute("Smith").toString());
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			pm.close();
		}
		return countNo;
	}

......
 

一个远程调用的方法.

 

public class ROService {

	public ROService() {
		System.out.println("初始化类.");
	}

	private SystemUserDAO systemUserDAO;

	public String helloWorld() {
		SystemUser systemUser = new SystemUser();
		systemUser.setCreateDate(new Date());
		systemUser.setLoginName("123456");
		systemUser.setPasswd("1223");
		System.out.println("函数被调用.");
		return "保存一个新类.总共有:\t" + systemUserDAO.saveSystemUser(systemUser)
				+ "条记录.";
	}

 

flex 远程调用.

 

 <mx:Script>
    <![CDATA[
      import mx.rpc.remoting.mxml.Operation;
      private function callIt():void
      {
        var op:Operation = roHello.getOperation("helloWorld") as Operation;
        op.send();
      }
    ]]>
  </mx:Script>
  
  <mx:RemoteObject id="roHello" destination="helloClass"/>
    
  <mx:Label text="Hello from BlazeDS!" fontSize="14" fontWeight="bold"/>
  
  <mx:Button label="Click to say hello" click="callIt()"/>
  
  <mx:Label text="{roHello.helloWorld.lastResult}"
    fontSize="14" fontWeight="bold"/>
 

 

更新插件.

 

将eclipse的 插件更新到 最新的 4 月 11 日的版本.(3 月的版本是不可以的.报错误.启动不了.)

 

然后选择工程的 属性.

 




添加 SDK.

 


修改 flex 的服务器路径 然后重新编译.flex.

 

然后按照 那个兄弟的方法.

 

 

1 .修改WEB-INF/appengine-web.xml,在<appengine-web-app> 下加入这句:
<sessions-enabled>true</sessions-enabled> 

 

2. 修改WEB-INF/flex/services-config.xml,在<system>下加入下句:
<manageable>false</manageable> 

3.

替换WEB-INF/lib/flex-messaging-core.jar(基于blazeds-src- 3.2.0.3978)

文件下载地址.

 

http://dl.iteye.com/topics/download/25a933ff-c336-3387-9c9b-a5b00ae4cf68

 

 

 

2010-4-11 23:32:29 com.google.apphosting.utils.jetty.JettyLogger info
信息: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
2010-4-11 23:32:29 com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
信息: Successfully processed E:\new_workspace\workspace_win_3.4_flex\chapter24_test\WebContent\WEB-INF/appengine-web.xml
2010-4-11 23:32:29 com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
信息: Successfully processed E:\new_workspace\workspace_win_3.4_flex\chapter24_test\WebContent\WEB-INF/web.xml
初始化类.
The server is running at http://localhost:8888/

 启动的时候 比以前的版本多了些日志.

 

 

 

测试. 调用jdo.成功.调用 flex 成功.

 

然后配置 spring 2.0.7整合

 

 

spring 不用太高的版本.用 spring 2.0.7 就行.

 

发现 其实在 BlazeDS 里面就支持spring呢.

 

1.要有一个 SpringFactory

 

相信见附件.

 

 

2. 在services-config.xml中

<factories>
        <factory id="spring" class="com.spring.factories.SpringFactory" />
    </factories>

3.在remoting-config.xml中

 <destination id="helloClass" channels="my-amf">
        <properties>
            <factory>spring</factory>
            <scope>application</scope>
            <source>helloClass</source>
        </properties>
    </destination>
 
4.在spring配置中加入

<bean id="systemUserDAO" class="com.freewebsys.dao.SystemUserDAO">
        <property name="persistenceManagerFactory">
            <ref bean="pmf" />
        </property>
    </bean>
   
    <bean id="helloClass" class="flex3Bible.ROService"/>

 

这样在点击的时候就可以调用 jdo 进行保存.

 

在使用Google app的服务的时候.jdo如果jdo调用出错是由于 jar 文件引用重复.

 


 

将 WebContent 下面的 那个 app的jar 都不要引用..和 sdk的jar 重复.

 

 

附件是  源文件 去掉 jar 包.

 

修改配置文件的服务器路径.修改成你自己申请的名称.



选择工程右键直接可以部署到google app 上面.(怎么申请帐号部署略)

 

我的应用访问地址.

 

http://myflexeye.appspot.com/flex_web/CallOperation.html

 

访问页面显示结果.

 


 

服务调用成功.

 

[下面继续做一个简单的CRUD.部署到app上面.]

 

目录
相关文章
|
19天前
|
人工智能 Java API
Java也能快速搭建AI应用?一文带你玩转Spring AI可落地性
Java语言凭借其成熟的生态与解决方案,特别是通过 Spring AI 框架,正迅速成为 AI 应用开发的新选择。本文将探讨如何利用 Spring AI Alibaba 构建在线聊天 AI 应用,并实现对其性能的全面可观测性。
|
14天前
|
人工智能 Java API
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
|
2月前
|
存储 NoSQL Java
使用Java和Spring Data构建数据访问层
本文介绍了如何使用 Java 和 Spring Data 构建数据访问层的完整过程。通过创建实体类、存储库接口、服务类和控制器类,实现了对数据库的基本操作。这种方法不仅简化了数据访问层的开发,还提高了代码的可维护性和可读性。通过合理使用 Spring Data 提供的功能,可以大幅提升开发效率。
80 21
|
1月前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
74 7
|
10天前
|
存储 监控 数据可视化
SaaS云计算技术的智慧工地源码,基于Java+Spring Cloud框架开发
智慧工地源码基于微服务+Java+Spring Cloud +UniApp +MySql架构,利用传感器、监控摄像头、AI、大数据等技术,实现施工现场的实时监测、数据分析与智能决策。平台涵盖人员、车辆、视频监控、施工质量、设备、环境和能耗管理七大维度,提供可视化管理、智能化报警、移动智能办公及分布计算存储等功能,全面提升工地的安全性、效率和质量。
|
16天前
|
人工智能 Java API
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
|
3月前
|
网络协议 容器
【Container App】部署Contianer App 遇见 Failed to deploy new revision: The Ingress's TargetPort or ExposedPort must be specified for TCP apps.
Failed to deploy new revision: The Ingress's TargetPort or ExposedPort must be specified for TCP apps.
79 27
|
2月前
|
Java Spring
Java Spring Boot监听事件和处理事件
通过上述步骤,我们可以在Java Spring Boot应用中实现事件的发布和监听。事件驱动模型可以帮助我们实现组件间的松耦合,提升系统的可维护性和可扩展性。无论是处理业务逻辑还是系统事件,Spring Boot的事件机制都提供了强大的支持和灵活性。希望本文能为您的开发工作提供实用的指导和帮助。
119 15
|
2月前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
115 7
|
3月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
121 7
Spring Boot 入门:简化 Java Web 开发的强大工具

热门文章

最新文章