前言

本人一直开发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

准备工作

  1. 确定你正在使用的IDE是Intellij Ultimate版本。
  2. 安装jdk,版本为1.8或更高。
  3. 下载GlassFish Appcation Server,版本为3.0.1或者更高。
  4. 确定浏览器在你的电脑上是可用的。

在Intellij中配置GlassFish server

  1. 打开Settings/Preferences对话框(Windows或Linux 平台通过快捷ctrl+alt+s或者选择File|Settings,OS X选择Intellij IDEA|Preferences),并且点击Build,Execution,Deployment下的Applicaton Servers。
  2. 打开Application Servers页面,点击中间栏上部的“+”图标从列表中选择GlassFish Server。
  3. 在右边栏,GlassFish Home一栏指定GlassFish Server安装文件夹。手动输入路劲或者在点击“...”弹出的对话框中选择安装文件夹。Intellij IDEA检测application server的版本并且自动填充到Name一栏。其他的区域都是自动填充或者可选的,此时点击OK。

配置JDK

  1. 按ctrl+shift+alt+s或者选择主菜单中的File|Project Structure。
  2. 在Project Structure对话框中,选择Platform Settins下的SDKs。
  3. 在打开的SDKs上点击中间栏上部的“+”并且选择JDK。
  4. 在右边栏指定JDK安装文件夹。手动输入路劲或者点击“...”弹出对话框选择安装文件夹。Intellij IDEA检测JDK的版本并且自动填充到Name一栏。
    • 其他tabs的所有必填项会被自动填充上,此时点击OK。

创建项目

  1. 在欢迎界面点击Create New Project,或者在主菜单中选择File|New|Project。打开New Project向导。
  2. 首先,Project Category and Options页面向导:第二,向导中的Project Name and Location页面,指定你新项目的名字。点击Finish并且等到直到Intellij创建好项目。
    1. 在左边栏选择Java Enterprise。
    2. 从Project SDK列表选择使用的JDK。
    3. 从Application Server下拉列表中选择GlassFish4.1.1。
    4. 从JavaEE Version下拉列表中选择JavaEE7。
    5. 在Additional Libraries and Frameworks区域选中Web Application和RESTful Web Service复选框。
    6. 在Additional Libraries and Frameworks列表下发选择Download选项。这个区域只有在你选择了Web之后才会显示。
    7. 点击Next。
  3. 第二,向导中的Project Name and Location页面,指定你新项目的名字。点击Finish并且等到直到Intellij创建好项目。

探索项目结构

当项目已经创建好,在Project视图下你可以看到类似这样的结构:

(略过目录结构介绍)

开发源码

我的Hello World程序将包含一个资源类HelloWorld.java和一个配置类MyApplication。这个程序的功能仅仅是输出一个文本Hello World。

  1. 在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";
      
               }
      
           }
  2. 在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配置即项目输出的规范。
  • 根据这样的规格(配置)生成的实际输出。

让我们看一下这个配置

  1. 在主菜单按ctrl+shift+alt+s或者选择File|Project Structure打开Project Structure对话框。
  2. 在Proj Settings下选择Artifacts。可用的artifact配置显示在中间栏的“+”和“-”下面。当前只有一个配置rest_glassfish_hello_world:war exploded,它是一个解压缩的Web应用程序存档(WAR),一种准备部署到Web服务器上的目录结构。
  3. Artifact设置显示在右边栏的对话框中:

IntelliJ IDEA已经填写了所有必填项,不需要我们进行更改,所以只需单击取消离开对话框。

探索并完成运行配置

在IntelliJ IDEA中,根据专用的run configuration启动任何应用程序。在项目创建期间,我们已经指定GlassFish Server作为运行应用程序的应用程序服务器。基于此选择和代码中的注释,IntelliJ IDEA创建了运行配置并填充了几乎所有必填项。

  1. 选择主菜单的Run|Edit Configuration或者点击Shif+Alt+F10并在弹出菜单中选择Edit Configuration。
  2. 在打开的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保存运行配置。

运行应用程序

点击工具栏上的,之后:

  1. Intellij IDEA编译你的源码并且构建一个应用程序。
  2. Run Tool Window打开。 IntelliJ IDEA启动服务器并在其上部署。
  3. 最后,你默认的web浏览器启动,然后你看到应用程序输出的Hello World。

在GlassFish应用服务器上创建并运行你的第一个Restful Web Service【翻译】的更多相关文章

  1. 在 Mac OS 上创建并运行 ASP.NET Core 1.0 网站

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  2. PyCharm下创建并运行我们的第一个Django项目

    PyCharm下创建并运行我们的第一个Django项目 准备工作: 假设读者已经安装好python 2x或3x,以及安装好Django,以及Pycharm 1. 创建一个新的工程 第一次运行Pycha ...

  3. MEAN Stack:创建RESTful web service

    本文在个人博客上的地址为URL,欢迎品尝. 前段时间做了DTREE项目中的前后端数据存储功能,在原有的ngController上进行HTTP请求,后端接受到请求后再存储到mongoDB上.现将学习所得 ...

  4. 使用JAX-RS创建RESTful Web Service

    guice resteasy http://www.cnblogs.com/ydxblog/p/7891224.html http://blog.csdn.net/withiter/article/d ...

  5. 使用Java创建RESTful Web Service

    REST是REpresentational State Transfer的缩写(一般中文翻译为表述性状态转移).2000年Roy Fielding博士在他的博士论文“Architectural Sty ...

  6. 使用Java创建RESTful Web Service(转)

    REST是REpresentational State Transfer的缩写(一般中文翻译为表述性状态转移).2000年Roy Fielding博士在他的博士论文“Architectural Sty ...

  7. spring3创建RESTFul Web Service

    spring 3支持创建RESTFul Web Service,使用起来非常简单.不外乎一个@ResponseBody的问题. 例如:后台controller: 做一个JSP页面,使用ajax获取数据 ...

  8. 如何创建一个RESTful WCF Service

    原创地址:http://www.cnblogs.com/jfzhu/p/4044813.html 转载请注明出处 (一)web.config文件 要创建REST WCF Service,endpoin ...

  9. 1903021121—刘明伟—Java第三周作业—学习在eclipse上创建并运行java程序

    项目 内容 课程班级博客链接 19信计班(本) 作业要求链接 第三周作业 作业要求 每道题要有题目,代码,截图 扩展阅读 eclipse如何创建java程序 java语言基础(上) 扩展阅读心得: 想 ...

随机推荐

  1. iOS开发——浅谈构架与用户体验

    工作不是千篇一律的重复,从中寻找乐趣才是我们应该做的. 作为一名码农,做过几个项目,每次做项目的时候都会自己构思,如果完全是我自己设计,会怎么去设计?心里一直没有满意的答案,不管怎么布局,好像都感觉差 ...

  2. pcommlite串口通讯库使用

    MFC下串口编程使用最多的两种方法是读取注册表和使用mscomm组件,都有着或多或少的缺陷,调用系统SDK比较麻烦,而MSCOMm组件最多支持16个串口,串口号大于16的时候无法打开,遇到这种情况,可 ...

  3. STM32F412应用开发笔记之八:迪文串口屏显示驱动

    迪文的显示屏使用起来比较方便,其使用串口通讯,即可支持RS232,又可以支持TTL电平.在NUCLEO-F412ZG实验板上,USART2已经引到了CN9上,我们就利用USART2来实现与迪文串口屏的 ...

  4. 在IOS中使用DES算法对Sqlite数据库进行内容加密存储并读取解密

    在IOS中使用DES算法对Sqlite 数据库进行内容加密存储并读取解密 涉及知识点: 1.DES加密算法: 2.OC对Sqlite数据库的读写: 3.IOS APP文件存储的两种方式及读取方式. 以 ...

  5. Makefile — 基础

    参考: 跟我一起写 Makefile GNU make <GNU+Make项目管理(第三版)> 1.Makefile用途 使用GNU Make工具来管理程序是每个Linux工程师必须掌握的 ...

  6. uWSGI参考资料(1.0版本的配置选项列表)

    Reference: http://blog.csdn.net/kevin6216/article/details/15378617 uWSGI参考资料(1.0版本的配置选项列表) 下面的内容包含了大 ...

  7. 【MySQL】容器集群支持数据库实践

    京东容器数据库系统,管理1800台物理计算节点,生产1W+ 多MySQL Docker容器实例.架构简单可靠,Docker容器计算平台与MySQL集群管理平台解耦处理.为描述方便,京东容器化数据库系统 ...

  8. Unity游戏开发——自动为动画剪辑添加事件 之 最后几帧的事件不能被调用的问题

    最近在做一个根据配置表自动生成动画剪辑clip以及controller的功能.做法是根据配置表配置的动作以及每个动作的关键帧,自动为每个clip添加事件.这样做可以把动画的事件处理在游戏运行之前就计算 ...

  9. HDU -2100-Lovekey

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2100 这题开始一直想着先把26进制转换成10进制,在转换成26进制,又200个字符因而行不通, 直接卡 ...

  10. #DP# ----- OpenJudge数字组合

    OpenJudge 2985:数字组合 总时间限制:1000ms  内存限制: 65536kB 描述 有n个正整数,找出其中和为t(t也是正整数)的可能的组合方式.如:n=5,5个数分别为1,2,3, ...