Dropwizard 编写Hello world应用

Dropwizard 编写Hello world应用

本文介绍如何创建Dropwizard Hello world应用,适合Dropwizard使用入门,对使用Dropwizard的基本流程的理解有一定帮助。


环境准备

在创建Dropwizard应用之前,需要准备好开发环境,Java(JDK 7以上)MavenMySQL是必须的。
Java JDK 7下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html
Maven 下载地址:
http://maven.apache.org/download.cgi
MySQL下载地址:
http://dev.mysql.com/downloads/mysql/#downloads

Java和Maven需要配置好环境变量。

创建Maven项目

Maven项目可以使用maven的原型命令maven-archetype-quickstart快速创建,创建出的Maven项目为一个基于标准Maven模板的空项目。
具体步骤如下:

  1. 打开命令行,切换到想要创建项目的目录

  2. 在命令行中输入以下命令,创建Maven项目:

$ mvn archetype:generate
-DgroupId=com.dwbook.phonebook
-DartifactId=dwbook-phonebook
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false

(输入时不要换行符,“-”前接空格)
创建成功则会在当前目录下创建一个空的Maven项目在名为dwbook-phonebook文件夹中。

配置POM文件

创建Maven项目成功后,在dwbook-phonebook目录下会自动生成一个pom.xml文件。想要通过Maven项目创建Dropwizard应用,需要在pom文件中配置Dropwizard依赖项。创建Dropwizard所需要的模块都可以由Maven中央存储库提供,我们需要做的只是提供模块的ID配置到pom中的依赖项,Maven会自动下载所需模块并包含到项目中。
具体步骤如下:

  1. 在pom.xml文件中加入Dropwizard依赖项,在<dependencies>标签之间加入以下项:
<dependency>
  <groupId>io.dropwizard</groupId>
  <artifactId>dropwizard-core</artifactId>
  <version>1.0.2</version>
</dependency>

(依赖项可能存在groupId,artifactId,和合适的version问题,可以自行查找所需依赖,推荐网址:http://repository.sonatype.org/index.html)
2. 加入Maven所需相关插件,用来编译和打包整个项目为一个Jar文件,并可以利用Maven直接运行。在<project>标签之间加入以下项:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.3</version>
      <configuration>
        <source>1.7</source>
        <target>1.7</target>
        <encoding>UTF-8</encoding>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>1.6</version>
      <configuration>
        <filters>
        <filter>
        <artifact>*:*</artifact>
        <excludes>
          <exclude>META-INF/*.SF</exclude>
          <exclude>META-INF/*.DSA</exclude>
          <exclude>META-INF/*.RSA</exclude>
        </excludes>
       </filter>
       </filters>
     </configuration>
     <executions>
     <execution>
     <phase>package</phase>
     <goals>
       <goal>shade</goal>
     </goals>
     <configuration>
     <transformers>
        section:<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
     <transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
     <mainClass>com.dwbook.phonebook.App</mainClass>
     </transformer>
     </transformers>
     </configuration>
     </execution>
     </executions>
  </plugin>
  </plugins>
</build>

编写Hello World

在Maven项目的dwbook-phonebook\src\main\java\com\dwbook\phonebook目录中已经自动生成了App.java文件,只是目前此java文件还只是一个普通的java应用类。所以我们需要将其改写为一个Dropwizard应用的类。具体步骤如下:

  • 在App.java中导入Dropwizard相关包:
import io.dropwizard.Application;
import io.dropwizard.Configuration;
import io.dropwizard.setup.Bootstrap;
import io.dropwizard.setup.Environment;
  • 让App类继承Application <Configuration>类:
public class App extends Application<AppConfig>
  • 实现Service类的抽象方法initialize()run()
public void initialize(Bootstrap<AppConfig> b) {}

public void run(AppConfig c, Environment e) throws Exception 
{

    System.out.println( "Hello world, by Dropwizard!" );
}
  • 最后添加main()方法来启动Dropwizard服务:
public static void main( String[] args ) throws Exception
{
        new App().run(args);
}

构建、编译运行

  • 命令行在项目根目录dwbook-phonebook下,输入:
$ mvn package

构建项目成功,命令行显示如下:
这里写图片描述

此时,在target文件夹中生成了dwbook-phonebook-1.0-SNAPSHOT.jar文件,即我们要运行的jar文件。

  • 在命令行下输入:
$ java -jar target/dwbook-phonebook-1.0-SNAPSHOT.jar server

来运行Dropwizard应用。命令行中显示:
这里写图片描述
Hello World显示成功。

更多

  • 命令行中可能会出现服务启动错误,并提示address already in
    use,这是因为Dropwizard应用内置的Jetty服务默认使用8080端口监听应用请求,8081端口监听用户请求,如果这两个端口被其他应用占用则会导致报错。
  • 另外,可能会出现错误the ResourceConfig instance does not contain any root resource classes。这是由于我们的Hello world应用还没有创建和配置任何的REST资源。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值