使用Spring Roo进行快速云开发–第2部分:VMware Cloud Foundry

Spring Roo是在Java平台上提供快速应用程序开发的工具。 我已经解释了何时使用它: http : //www.kai-waehner.de/blog/2011/04/05/when-to-use-spring-roo 。 Spring Roo目前支持两种针对云计算的解决方案:Google App Engine(GAE)和VMware Cloud Foundry。 两者都提供了平台即服务(PaaS)概念。 本文将讨论Spring Roo的Cloud Foundry支持。 在本系列文章的第1部分中讨论了GAE。

将Cloud Foundry应用程序部署到云端

Spring Roo的参考指南在http://www.springsource.org/roo/guide?w=base-cloud-foundry进行了介绍,其中介绍了Spring Roo和Cloud Foundry的结合。 简而言之,在Cloud Foundry云中部署(CRUD-)应用程序没有太多要做。
您必须登录到Cloud Foundry帐户,创建一个WAR文件并进行部署。 三个Roo命令执行这些任务。 如果您使用任何Cloud Foundry服务(例如MySQL,Redis或RabbitMQ),则必须使用其他Roo命令创建并绑定这些服务。 部署非常容易。 您可以选择将应用程序部署到私有云(自己的服务器)或公共云(VMware服务器)。

我遇到了一个奇怪的不说话的异常(这是Spring Roo经常遇到的主要问题):“操作无法完成:400错误的请求”,但没有其他详细信息或异常。 论坛支持是必要的。 问题是我的云应用程序的名称已经被另一位开发人员使用,它不是唯一的(我尝试使用名称“ SimpleCloudFoundry”)。 一个更多的错误消息会很好! 使用另一个(唯一)名称解决了该问题。

Cloud Foundry只是传统的Web应用程序-与GAE相反

因此,在阅读了之前的介绍之后,得出以下结论:Spring Roo支持将其应用程序部署到Cloud Foundry云。 因此,一切都很好吗? 是的,或多或少令人惊讶,那是真的! Cloud Foundry文档的声明也是如此:„您无需以特殊方式构建应用程序,也无需使用有限的语言或框架功能子集,也无需调用特定于Cloud Foundry的API。 您可以像没有Cloud Foundry一样开发应用程序,然后进行部署。”
那么,为什么要考虑使用其他PaaS解决方案而不是Cloud Foundry? Cloud Foundry应用程序是传统的Java Web应用程序,它们使用Spring并将其部署到Tomcat Web容器。 您没有很多限制(请记住GAE的Java类白名单)或数据库限制(请记住GAE的BigTable概念)。 请注意,由于这一优势,您必须使用Cloud Foundry提供的服务! 目前,您可以使用MySQL,Redis,Mongo DB和RabbitMQ。 不能使用其他数据库或消息传递解决方案。 如果所提供的服务满足您的需求,那么一切都很好。

Roo Shell几乎提供了所有Cloud Foundry命令

通常,您在诸如Eclipse之类的IDE中开发Cloud Foundry应用程序。 此外,您还可以使用VMware CLI(命令行工具)登录Cloud Foundry,创建和绑定服务,部署,启动和停止应用程序,等等。
Spring Roo提供了30多个独特的Cloud Foundry命令。 通过Roo的Cloud Foundry集成,您现在可以从Roo Shell管理应用程序的整个生命周期。 这太棒了! 当然,VMware希望同时推动Cloud Foundry和Spring Roo,因此两种产品之间的连接确实很好。 但是...

没有理由使用Spring Roo进行Cloud Foundry开发

Spring Roo的目标是帮助开发人员更轻松,更快地实现应用程序。 对于创建原型或CRUD Web应用程序来说,它真棒。 但是,创建Cloud Foundry应用程序无济于事。 当然,您可以在Roo Shell中直接使用所有VMC命令,仅此而已。 我想知道这是否有优势吗? 我发现总是在输入我想使用的真实命令之前总是在Roo shell中键入“ cloud Foundry”很烦人。 因此,我Swift切换回了VMC命令行工具。 SpringSource Tool Suite还提供了Cloud Foundry插件,以通过“拖放”来绑定服务和部署应用程序。 非常好!
我认为,使用Spring Roo开发Cloud Foundry应用程序没有任何好处。 当然,有一个例外:如果您开发Spring Roo应用程序(例如CRUD应用程序),那么您可以在同一个shell中完成所有操作,这很酷。
顺便说一句:尽管我确实认为与Spring Roo的结合不会带来任何好处,但我真的很喜欢Cloud Foundry。 它是最早提供关系数据库支持的PaaS解决方案之一(Amazon Elastic Beanstalk除外)。 此外,可以部署到公共云和私有云。 它是开源的,因此将来会提供更多的支持和服务。 但请注意:与GAE相反,Cloud Foundry目前仍是BETA。
本系列文章的当前结论是,Spring Roo并没有真正帮助开发云应用程序。 不过,我喜欢Spring Roo,也喜欢PaaS解决方案,例如GAE和Cloud Foundry,但并没有结合在一起。 如果这种情况发生变化或Spring Roo支持更多PaaS产品,我将写更多文章。

参考: 使用Spring Roo进行快速云开发–第2部分:来自我们JCG合作伙伴 Kai Wahner的VMware Cloud Foundry ,位于关于Java EE / SOA / Cloud Computing博客的博客上。


翻译自: https://www.javacodegeeks.com/2012/06/rapid-cloud-development-with-spring-roo_04.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372685.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java程序日期转换_Java 日期转换详解及实例代码

Java 日期转换涉及的核心类:Date类、SimpleDateFormat类、Calendar类一、 Date型与long型Date型转换为long型Date date new Date();//取得当前时间Date类型long date2long date.getTime();//Date转longlong型转换为Date型long cur System.currentTimeMills();//取…

软件设计之思想

编程用何种语言不重要,重要的是其设计思想。转载于:https://www.cnblogs.com/redfull/p/6554898.html

asp.net 与 java 2017_[ASP.net教程]C#与JAVA学习感悟

[ASP.net教程]C#与JAVA学习感悟0 2015-10-06 23:00:07C#与JAVA学习感悟学完C#与JAVA,感觉收获良多。C#与JAVA这两门语言相似度很高(了解它们早期历史的人可能知道为什么),也许很多人在学习JAVA(或C#)时会同时学习C#(或JAVA),因为它们太相似了…

Spring和JSF集成:国际化和本地化

如果您正在开发针对多种语言的JSF应用程序&#xff0c;那么您可能很熟悉<f&#xff1a;loadBundle>标记。 即使您的应用程序不支持使用消息包的国际化仍然是一个好主意。 在<f&#xff1a;loadBundle>标记下&#xff0c;它从Java java.util.ResourceBundle中读取消…

一个实用的却被忽略的命名空间:Microsoft.VisualBasic:

当你看到这个命名空间的时候&#xff0c;别因为是vb的东西就匆忙关掉网页&#xff0c;那将会是您的损失&#xff0c;此命名空间中的资源最初目的是为了简化vb.net开发而创建的&#xff0c;所以microsoft.visualbasic并不属于system命名空间&#xff0c;而是独立存在的。虽然是为…

Linux基础之命令练习Day2-useradd(mod,del),groupadd(mod,del),chmod,chown,

作业一&#xff1a; 1) 新建用户natasha&#xff0c;uid为1000&#xff0c;gid为555&#xff0c;备注信息为“master” 2) 修改natasha用户的家目录为/Natasha 3) 查看用户信息配置文件的最后一行 4) 为natasha用户设置密码“123” 5) 查看用户密码配置文件的最后一行 6) 将nat…

动态表单,JSF世界早已等待

新的PrimeFaces扩展版本0.5.0带来了新的DynaForm组件。 通常&#xff0c;如果知道行/列的数量&#xff0c;元素的位置等&#xff0c;则可以通过h&#xff1a;panelGrid或p&#xff1a;panelGrid来构建非常简单的表单。 对于静态表单&#xff0c;这是正确的。 但是&#xff0c;如…

C# 定时器事件(设置时间间隔,间歇性执行某一函数,控制台程序)

定时器事件代码 static void Main(string[] args) {Method();#region 定时器事件 Timer aTimer new Timer();aTimer.Elapsed new ElapsedEventHandler(TimedEvent);aTimer.Interval seconds * 1000; //配置文件中配置的秒数aTimer.Enabled true;#endregionstring strLi…

总结get和post区别

参考博文&#xff1a;   浅谈HTTP中Get与Post的区别 1. 数据传递方向&#xff1a; Get是向服务器发索取数据的一种请求&#xff0c;Post是向服务器提交数据的一种请求 &#xff08;都是请求&#xff0c;并不是一个取一个发&#xff09; Get&#xff1a;①用于获取信息&#x…

Vmware安装Centos NAT方式设置静态IP

【Vmware中在搭建集群环境等&#xff0c;DHCP自动获取IP方式不方便&#xff0c;为了固定IP减少频繁更改配置信息&#xff0c;建议使用静态IP来配置&#xff0c;网络连接主要有三种方式 1.nat 2.桥接&#xff0c;3主机模式 &#xff0c;在这里主要介NAT方式&#xff0c; 为什么使…

1 TB /节点时快速,可预测且高度可用

世界正每秒从移动设备&#xff0c;Web和各种小工具向应用程序推送大量数据。 如今&#xff0c;更多的应用程序必须处理此数据。 为了保持性能&#xff0c;这些应用程序需要快速访问数据层。 在过去的几年中&#xff0c;RAM价格下降了&#xff0c;我们现在可以便宜得多地获得具有…

java jni 内存_Android开发之JNI内存模型

Java 与JNI 内存管理是怎样的想要弄清楚Java与JNI的内存管理的关系&#xff0c;首先要弄清楚JVM的内存模型JVM内存模型.png其中本地方法栈就是运行时调用native 方法的数据保存区。本地方法栈的大小可以设置成固定的或者是动态扩展。Java中的内存泄露JAVA 编程中的内存泄漏&…

04 linux用户群组和权限

作业一&#xff1a; 1)新建用户natasha&#xff0c;uid为1000&#xff0c;gid为555&#xff0c;备注信息为“master” 2)修改natasha用户的家目录为/Natasha 3)查看用户信息配置文件的最后一行 4)为natasha用户设置密码“123” 5)查看用户密码配置文件的最后一行 6)将natasha用…

基于 CoreText 实现的高性能 UITableView

引起UITableView卡顿比较常见的原因有cell的层级过多、cell中有触发离屏渲染的代码&#xff08;譬如&#xff1a;cornerRadius、maskToBounds 同时使用&#xff09;、像素是否对齐、是否使用UITableView自动计算cell高度的方法等。本文将从cell层级出发&#xff0c;以一个仿朋友…

RESTEasy教程第1部分:基础

RESTEasy是JBoss / RedHat的JAX-RS实现&#xff0c;内置于JBoss 6之后。 在这里&#xff0c;我将向您展示如何使用RESTEasy和JBossAS7.1.1.FINAL开发一个简单的RESTful Web服务应用程序。 步骤1&#xff1a;使用Maven配置RESTEasy依赖项。 <project xmlnshttp:maven.apache.…

php函数相关函数,PHP数组相关函数汇总

这篇文章主要介绍了PHP数组相关函数,汇总说明了php中相关的数组,具有一定参考借鉴价值,需要的朋友可以参考下本文总结了PHP数组相关的函数。分享给大家供大家参考。具体如下&#xff1a;这里包括函数名和用法说明&#xff0c;没有详细的代码范例。感兴趣的朋友可以查阅本站相关…

Web Magic 总体架构

1.2 总体架构 WebMagic的结构分为Downloader、PageProcessor、Scheduler、Pipeline四大组件&#xff0c;并由Spider将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。WebMagic的设计参考了Scapy&#xff0c;但是实现方式更Java化一些。 而S…

L1-006. 连续因子

一个正整数N的因子中可能存在若干连续的数字。例如630可以分解为3*5*6*7&#xff0c;其中5、6、7就是3个连续的数字。给定任一正整数N&#xff0c;要求编写程序求出最长连续因子的个数&#xff0c;并输出最小的连续因子序列。 输入格式&#xff1a; 输入在一行中给出一个正整数…

基于Java JAAS表单的身份验证

使用JAAS实现登录模块是一个高级主题&#xff0c;而且大多数开发人员也很少有机会参与这种开发。 但是JAAS登录模块的基本实现并不是那么困难&#xff0c;这是因为我打算将其发布。 在这里&#xff0c;我正在解释如何实现tomcat管理的身份验证模块。 此实现与容器无关。 我们可…

java自动投票代码,Java 投票(自动添一)

Java 投票(自动加一)数据库建立&#xff1a;SQL> create table vote(2 id number,3 name varchar(200),4 num number5 );//index.jsppageEncoding"utf-8"%>投票Connection conn1 null;Statement stmt1 null;ResultSet rs1 null;try {Class.forName("or…