在GlassFish应用服务器上创建并运行你的第一个Restful Web Service【翻译】
前言
本人一直开发Android应用,目前Android就业形势恶劣,甚至会一路下滑,因此决定学习服务器开发。采用的语言是java,IDE是Intellij,在下载Intellij的同时看到官网很多优秀的guide文章,于是按照guide成功完成了一个RESTful的demo。官方文档非常简洁,给我带来了很大的帮助,于是翻译之,希望对其他不愿意看原文的人有所帮助。由于水平有限,读者发现错误请指正,谢谢。
原文地址:
准备工作
- 确定你正在使用的IDE是Intellij Ultimate版本。
- 安装jdk,版本为1.8或更高。
- 下载GlassFish Appcation Server,版本为3.0.1或者更高。
- 确定浏览器在你的电脑上是可用的。
在Intellij中配置GlassFish server
- 打开Settings/Preferences对话框(Windows或Linux 平台通过快捷ctrl+alt+s或者选择File|Settings,OS X选择Intellij IDEA|Preferences),并且点击Build,Execution,Deployment下的Applicaton Servers。
- 打开Application Servers页面,点击中间栏上部的“+”图标从列表中选择GlassFish Server。
- 在右边栏,GlassFish Home一栏指定GlassFish Server安装文件夹。手动输入路劲或者在点击“...”弹出的对话框中选择安装文件夹。Intellij IDEA检测application server的版本并且自动填充到Name一栏。其他的区域都是自动填充或者可选的,此时点击OK。
配置JDK
- 按ctrl+shift+alt+s或者选择主菜单中的File|Project Structure。
- 在Project Structure对话框中,选择Platform Settins下的SDKs。
- 在打开的SDKs上点击中间栏上部的“+”并且选择JDK。
- 在右边栏指定JDK安装文件夹。手动输入路劲或者点击“...”弹出对话框选择安装文件夹。Intellij IDEA检测JDK的版本并且自动填充到Name一栏。
其他tabs的所有必填项会被自动填充上,此时点击OK。
创建项目
- 在欢迎界面点击Create New Project,或者在主菜单中选择File|New|Project。打开New Project向导。
- 首先,Project Category and Options页面向导:第二,向导中的Project Name and Location页面,指定你新项目的名字。点击Finish并且等到直到Intellij创建好项目。
- 在左边栏选择Java Enterprise。
- 从Project SDK列表选择使用的JDK。
- 从Application Server下拉列表中选择GlassFish4.1.1。
- 从JavaEE Version下拉列表中选择JavaEE7。
- 在Additional Libraries and Frameworks区域选中Web Application和RESTful Web Service复选框。
- 在Additional Libraries and Frameworks列表下发选择Download选项。这个区域只有在你选择了Web之后才会显示。
- 点击Next。
第二,向导中的Project Name and Location页面,指定你新项目的名字。点击Finish并且等到直到Intellij创建好项目。
探索项目结构
当项目已经创建好,在Project视图下你可以看到类似这样的结构:

(略过目录结构介绍)
开发源码
我的Hello World程序将包含一个资源类HelloWorld.java和一个配置类MyApplication。这个程序的功能仅仅是输出一个文本Hello World。
- 在src文件夹创建HelloWorld.java类:
import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; // The Java class will be hosted at the URI path "/helloworld" @Path("/helloworld") public class HelloWorld { // The Java method will process HTTP GET requests @GET // The Java method will produce content identified by the MIME Media type "text/plain" @Produces("text/plain") public String getClichedMessage() { // Return some cliched textual content return "Hello World"; } }
- 在src文件夹创建MyApplication.java类:
import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; import java.util.HashSet; import java.util.Set; //Defines the base URI for all resource URIs. @ApplicationPath("/") //The java class declares root resource and provider classes public class MyApplication extends Application{ //The method returns a non-empty collection with classes, that must be included in the published JAX-RS application @Override public Set<Class<?>> getClasses() { HashSet h = new HashSet<Class<?>>(); h.add( HelloWorld.class ); return h; } }
检查生成的artifact配置
除了构建一个具体的RESTful项目结构以外,Intellij IDEA也为我们配置了artifact。
IntelliJ IDEA中的artifact可能意味着以下之一:
- 一个artifact配置即项目输出的规范。
- 根据这样的规格(配置)生成的实际输出。
让我们看一下这个配置
- 在主菜单按ctrl+shift+alt+s或者选择File|Project Structure打开Project Structure对话框。
- 在Proj Settings下选择Artifacts。可用的artifact配置显示在中间栏的“+”和“-”下面。当前只有一个配置rest_glassfish_hello_world:war exploded,它是一个解压缩的Web应用程序存档(WAR),一种准备部署到Web服务器上的目录结构。
- Artifact设置显示在右边栏的对话框中:
IntelliJ IDEA已经填写了所有必填项,不需要我们进行更改,所以只需单击取消离开对话框。
探索并完成运行配置
在IntelliJ IDEA中,根据专用的run configuration启动任何应用程序。在项目创建期间,我们已经指定GlassFish Server作为运行应用程序的应用程序服务器。基于此选择和代码中的注释,IntelliJ IDEA创建了运行配置并填充了几乎所有必填项。
- 选择主菜单的Run|Edit Configuration或者点击Shif+Alt+F10并在弹出菜单中选择Edit Configuration。
- 在打开的Edit Configuration对话框中,展开GlassFish Server节点并且点击GlassFish4.1.1。 右边栏显示自动生成的运行配置的设置。

- Application Server字段显示GlassFish4.1.1,它是在项目创建期间选择的GlassFish Server安装的。Name字段也显示GlassFish4.1.1,在指定应用服务器后IntelliJ IDEA已自动命名生成的配置。
- 在Open brower区域,After launch复选框已经被选中,所以具有应用程序输出的页面将自动打开。在下面的文本区,我们需要指定被打开页面的URL地址。在我们的例子中是http://localhost:8080/rest_glassfish_hello_world_war_exploded/helloworld。
- 为了rest_glassfish_hello_world:war exploded自动部署启动运行配置,该artifact必须被标记为部署。如果你已经成功完成项目创建步骤,该artifact会被标记为自动部署,否则Intellij IDEA显示警告No artifacts marked for deployment和一个Fix按钮。

- 当你点击Fix时,Intellij IDEA打开Deployment栏,其中rest_glassfish_hello_world:war exploded被添加到Deploy on the server starup列表中。
所有的其他字段会被自动填充上或是可选项,所以点击OK保存运行配置。
运行应用程序
点击工具栏上的,之后:
- Intellij IDEA编译你的源码并且构建一个应用程序。
- Run Tool Window打开。 IntelliJ IDEA启动服务器并在其上部署。
- 最后,你默认的web浏览器启动,然后你看到应用程序输出的Hello World。
在GlassFish应用服务器上创建并运行你的第一个Restful Web Service【翻译】的更多相关文章
- 在 Mac OS 上创建并运行 ASP.NET Core 1.0 网站
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- PyCharm下创建并运行我们的第一个Django项目
PyCharm下创建并运行我们的第一个Django项目 准备工作: 假设读者已经安装好python 2x或3x,以及安装好Django,以及Pycharm 1. 创建一个新的工程 第一次运行Pycha ...
- MEAN Stack:创建RESTful web service
本文在个人博客上的地址为URL,欢迎品尝. 前段时间做了DTREE项目中的前后端数据存储功能,在原有的ngController上进行HTTP请求,后端接受到请求后再存储到mongoDB上.现将学习所得 ...
- 使用JAX-RS创建RESTful Web Service
guice resteasy http://www.cnblogs.com/ydxblog/p/7891224.html http://blog.csdn.net/withiter/article/d ...
- 使用Java创建RESTful Web Service
REST是REpresentational State Transfer的缩写(一般中文翻译为表述性状态转移).2000年Roy Fielding博士在他的博士论文“Architectural Sty ...
- 使用Java创建RESTful Web Service(转)
REST是REpresentational State Transfer的缩写(一般中文翻译为表述性状态转移).2000年Roy Fielding博士在他的博士论文“Architectural Sty ...
- spring3创建RESTFul Web Service
spring 3支持创建RESTFul Web Service,使用起来非常简单.不外乎一个@ResponseBody的问题. 例如:后台controller: 做一个JSP页面,使用ajax获取数据 ...
- 如何创建一个RESTful WCF Service
原创地址:http://www.cnblogs.com/jfzhu/p/4044813.html 转载请注明出处 (一)web.config文件 要创建REST WCF Service,endpoin ...
- 1903021121—刘明伟—Java第三周作业—学习在eclipse上创建并运行java程序
项目 内容 课程班级博客链接 19信计班(本) 作业要求链接 第三周作业 作业要求 每道题要有题目,代码,截图 扩展阅读 eclipse如何创建java程序 java语言基础(上) 扩展阅读心得: 想 ...
随机推荐
- Java中的Runtime类
Runtime类描述了虚拟机一些信息.该类采用了单例设计模式,可以通过静态方法 getRuntime()获取Runtime类实例.下面演示了获取虚拟机的内存信息: package Main; publ ...
- Android之layout_weight属性详解
博文:http://www.cnblogs.com/net168/p/4227144.html讲分非常好,推荐下
- [TJOI2013]单词
2755: [TJOI2013]单词 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 6 Solved: 3[Submit][Status][Web B ...
- Warning: Attempt to present on whose view is not in模态跳转问题
错误分析: controller A present controller B ,前提是A的view要存在,如果不存在,就会报这个错. 解决方法: 将 ...
- java.lang.UnsupportedClassVersionError: com/T : Unsupported major.minor version问题解决
编译的时候jdk版本为1.8 2.运行的时候jdk版本为1.7 解决办法:将编译的jdk版本降为1.7,问题解决
- IOS软件国际化(本地化Localizable)
IOS软件国际化(本地化Localizable) iPhone是支持语言最多的手机,它支持各国语言及中国少数名族如蒙古等语言,这也是好多少数名族都用苹果的原因.在这一点上我们自主品牌还是要多学习学习. ...
- http://begin.lydsy.com/JudgeOnline/problem.php?id=2774(poi病毒)
2774: Poi2000 病毒 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 5 Solved: 4[Submit][Status][Web Boa ...
- UVa 270 & POJ 1118 - Lining Up
题目大意:给一些点,找出一条直线使尽可能多的点在这条直线上,求这条直线上点的个数. 以每一个点为原点进行枚举,求其它点的斜率,斜率相同则说明在一条直线上.对斜率排序,找出斜率连续相等的最大长度. #i ...
- PHP新手之学习类与对象(4)
五.范围解析操作符(::) 范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,可以用于访问静态成员.方法和常量,还可以用于覆盖类中的成员和方法. 当在类的外 ...
- YII 1.0 发表文章用到的小物件
<?php $form = $this->beginWidget('CActiveForm',array('htmlOptions'=>array('enctype'=>'mu ...






