Heroku:快速部署Dropwizard开发的RESTful Service
来源:互联网 发布:卡苏马苏奶酪 知乎 编辑:程序博客网 时间:2024/06/05 12:41
上一篇博客《Dropwizard:用Java轻轻的写一个RESTful Service》中讲到了使用Dropwizard可以快速的开发出一个RESTful service,同时因为Dropwizard使用的是Jetty Embedded Container,就可以不再需要繁琐的去安装相应的container,以及其他的好处(参考《Embedded Server:像写main函数一样写Web Server》)。唯一需要的东西,只是java的运行时环境。为了说明这样带来的好处,这篇博客将会采用大家耳熟能详的一个PaaS平台Heroku来部署用Dropwizard开发出的RESTful service。
1. dropwizard
使用已有的的项目
git clone https://github.com/kiwiwin/heroku-dropwizard-demo
比上篇Dropwizard的博客中的项目中仅有的几个不同点是:
Profile
web: java $JAVA_OPTS -Ddw.http.port=$PORT -Ddw.http.adminPort=$PORT -jar heroku-app/*-standalone.jar server heroku-app/hello.yaml
Profile中包含的内容是,heroku需要启动App时调用的命令。
system.properties
java.runtime.version=1.7
使用system.properties指定需要使用的java版本是1.7
build.gradle
新增一个task stage,这个在后面会解释
2.创建heroku project
在项目heroku-dropwizard-demo文件路径下
登陆heroku:$heroku login
创建heroku app:$heroku create -s cedar kiwi-dropwizard-demo
kiwi-dropwizard-demo是你创建的heroku的app名称,需要是唯一的。app的名称也就对应了你app的url:http://kiwi-dropwizard-demo.herokuapp.com/。cedar是heroku提供的默认runtime环境,在这个环境中,你可以build,deploy你的app。
设置buildpack:buildpack决定了当你把你的代码push到heroku的时候,heroku怎么样build你的代码,在heroku官网中,其提供了一个gradle的buildpack(https://devcenter.heroku.com/articles/buildpacks)。但这个build脚本使用的是gradle-1.0-milestone-5。版本实在太老了。所以,我自己稍作修改,使用gradle1.9。让heroku知道你使用这个buildpack:
$heroku config:set BUILDPACK_URL=https://github.com/kiwiwin/heroku-buildpack-gradle
部署到heroku:$git push heroku master
3.访问app
$curl http://kiwi-dropwizard-demo.herokuapp.com/hello?name=recocojie
返回:
{"id":3,"content":"Hello, recocojie!"}
4.总结
使用Heroku部署standalone的jar包是非常方便的,不信你也试试。
- Heroku:快速部署Dropwizard开发的RESTful Service
- Dropwizard:用Java轻轻的写一个RESTful Service
- Dropwizard - 开发Java RESTful Web服务
- Dropwizard: 开发轻量RESTful服务
- Dropwizard: 开发轻量RESTful服务
- heroku部署
- CXF开发RESTful风格的Web Service
- CXF开发RESTful风格的Web Service
- 开发RESTful web Service
- 快速构建一个基于Spring的RESTful Web Service
- 基于rails的schedule网站开发(7):部署到heroku
- 如何把自己的app(MEAN开发方式)部署到heroku
- 用grails 开发restful service
- rails heroku 部署
- Heroku部署错误
- heroku部署node.js
- Heroku部署PHP应用
- heroku 部署flask应用
- javascript cookies 存、取、删除实例
- Unity手游之路<四>3d旋转-四元数,欧拉角和变幻矩阵
- MFC Loads Wrong Resource in Extension DLL
- stream_set_blocking让程序无阻塞
- stream_set_timeout的使用方法
- Heroku:快速部署Dropwizard开发的RESTful Service
- last time ? first time : continue
- 如何在Linux上制作一个屏幕录像视频教程
- 最大子数组问题
- Cadence 信号完整性(一)-- 仿真步骤2
- mongo使用经验谈
- php中 curl, fsockopen ,file_get_contents 三个函数
- fsockopen打开网络的 Socket 链接
- cocos2d之CCBezierBy,CCBezierTo