在GlassFish应用服务器上创建并运行你的第一个Restful Web Service【翻译】
前言
本人一直开发Android应用,目前Android就业形势恶劣,甚至会一路下滑,因此决定学习服务器开发。采用的语言是java,IDE是Intellij,在下载Intellij的同时看到官网很多优秀的guide文章,于是按照guide成功完成了一个RESTful的demo。官方文档非常简洁,给我带来了很大的帮助,于是翻译之,希望对其他不愿意看原文的人有所帮助。由于水平有限,读者发现错误请指正,谢谢。
原文地址:
https://www.jetbrains.com/help/idea/2016.3/creating-and-running-your-first-restful-web-service-on-glassfish-application-server.html
准备工作
- 确定你正在使用的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。
转载于:https://www.cnblogs.com/vanezkw/p/6414392.html
在GlassFish应用服务器上创建并运行你的第一个Restful Web Service【翻译】相关推荐
- shell bash脚本_如何在Windows 10上创建和运行Bash Shell脚本
shell bash脚本 With the arrival of Windows 10's Bash shell, you can now create and run Bash shell scri ...
- 使用JAX-RS创建RESTful Web Service
guice resteasy http://www.cnblogs.com/ydxblog/p/7891224.html http://blog.csdn.net/withiter/article/d ...
- java 创建restful_使用Java创建RESTful Web Service
[RESTful Web Service是轻量级的service,可以通过HTTP的方式来实现对后台数据库的CRUD,在Web开发和移动开发时使用的比较广泛,非常方便.在Java世界里, JAX-RS ...
- spring3创建RESTFul Web Service
spring 3支持创建RESTFul Web Service,使用起来非常简单.不外乎一个@ResponseBody的问题. 例如:后台controller: 做一个JSP页面,使用ajax获取数据 ...
- linux执行windows创建的脚本,如何在Windows 10上创建和运行Bash Shell脚本 | MOS86
随着Windows 10的到来您还可以将Bash命令合并到Windows批处理文件或PowerShell脚本中. 如果你知道你是什么Windows和UNIX使用不同的行尾字符,Windows文件系统可 ...
- Django系列:(1)PyCharm下创建并运行我们的第一个Django工程
准备工作: 假设读者已经安装好python 2x或3x,以及安装好Django,以及Pycharm. 我的配置: – Python 2.7.11 – Pycharm Professional 5 ...
- 如何在Polygon上创建ERC-20通证
ERC-20通证是在EVM兼容的区块链和Layer 2网络上进行交易的一个关键部分.在本教程中,你将学习如何在Polygon上创建ERC-20通证,这是一个Layer 2 EVM区块链,比直接部署在E ...
- 【高级PDF库】上海道宁为您提供先进的.Net库,完全控制您的PDF创建工作流程,在WEB或任何服务器系统上创建动态PDF
Pdfium.Net SDK是 先进的.Net library 用于生成.操作和查看 可移植文档格式的文件 道宁专注于软件工具经销 为您带来高级PDF库 可完全控制您的PDF创建工作流程 提供高级c# ...
- git关联远程仓库+在github上创建新分支
1.通过命令 git init 把这个目录变成git可以管理的仓库 git init 2.使用命令 git add . 添加到暂存区里面 3.用命令 git commit -m '注释' 把 ...
最新文章
- iOS下JS与OC互相调用(五)--UIWebView + WebViewJavascriptBridge
- druid seata 配置_五分钟体验分布式事务框架Seata
- 构建安全的Xml Web Service系列之SSL篇
- MFC apps must not include windows.h
- C语言显示相位的程序,【图片】求助大佬用c语言帮忙编写下程序【c程序吧】_百度贴吧...
- 07 行锁功过:怎么减少行锁对性能的影响? (笔记)
- LINQ的ORM功能中对使用sp_executesql语句的存储过程的支持
- HDOJ--1425 SORT (刚开始学ACM,用的是最简单的方法)
- [dfs] 洛谷 P2535 收集资源
- ArcGIS操作小技巧(一)之属性表中显示出小数点前面的 0
- h3c交换机堆叠(IRF)配置三步完成
- 2021年双非院校保研浙江大学软件学院末位上车经验记录
- 软件测评师考试大纲2018
- 高频电子线路实验 03 - | 环形混频与直接调频
- 微信小程序轮播图swiper使用
- python中utf-8和gbk编码格式_python中unicode、utf8、gbk等编码问题
- 学习ubuntu基础看完这一篇就够了,我是貔貅带你打开ubuntu的大门
- sharepoint 服务器错误: http://go.microsoft.com/fwlink?LinkID=96177
- 转载:50有用的JavaScript和jQuery技术和插件
- 2022年,佳能中国坚持“单反、微单两手抓”
热门文章
- 最大尺寸分辨率_LG UltraFine 4K显示器重上架苹果商店:尺寸变大,但降为UHD
- asp.net MVC遇到的问题
- python变量的作用_Python中的变量
- 黑苹果 电脑关机是因为发生了问题_【电脑常识】常见的电脑误区,你中了几点?...
- keil5——常见报错【cannot load flash device description】
- 计算机加域成灰色,高手解说win7系统创建域选项变成灰色的具体教程
- 截取字符串_妙用字符串的替换和截取让Shell脚本精准得到你心中的那个“她”...
- 如何实现一个遵从设计原则的积分兑换系统2
- Your branch is ahead of ‘origin/main‘ by 1 commit.
- Windows核心编程_PE文件格式解析