在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类:
-
1 import javax.ws.rs.GET; 2 3 import javax.ws.rs.Path; 4 5 import javax.ws.rs.Produces; 6 7 8 9 // The Java class will be hosted at the URI path "/helloworld" 10 11 @Path("/helloworld") 12 13 public class HelloWorld { 14 15 // The Java method will process HTTP GET requests 16 17 @GET 18 19 // The Java method will produce content identified by the MIME Media type "text/plain" 20 21 @Produces("text/plain") 22 23 public String getClichedMessage() { 24 25 // Return some cliched textual content 26 27 return "Hello World"; 28 29 } 30 31 }
-
- 在src文件夹创建MyApplication.java类:
-
1 import javax.ws.rs.ApplicationPath; 2 3 import javax.ws.rs.core.Application; 4 5 import java.util.HashSet; 6 7 import java.util.Set; 8 9 10 11 //Defines the base URI for all resource URIs. 12 13 @ApplicationPath("/") 14 15 //The java class declares root resource and provider classes 16 17 public class MyApplication extends Application{ 18 19 //The method returns a non-empty collection with classes, that must be included in the published JAX-RS application 20 21 @Override 22 23 public Set<Class<?>> getClasses() { 24 25 HashSet h = new HashSet<Class<?>>(); 26 27 h.add( HelloWorld.class ); 28 29 return h; 30 31 } 32 33 }
-
检查生成的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。