Dropwizard 编写Hello world应用
2016-10-27 16:25
316 查看
Dropwizard 编写Hello world应用
本文介绍如何创建Dropwizard Hello world应用,适合Dropwizard使用入门,对使用Dropwizard的基本流程的理解有一定帮助。Dropwizard 编写Hello world应用
环境准备
创建Maven项目
配置POM文件
编写Hello World
构建编译运行
更多
环境准备
在创建Dropwizard应用之前,需要准备好开发环境,Java(JDK 7以上)、Maven和MySQL是必须的。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模板的空项目。具体步骤如下:
打开命令行,切换到想要创建项目的目录
在命令行中输入以下命令,创建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会自动下载所需模块并包含到项目中。具体步骤如下:
在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 inuse,这是因为Dropwizard应用内置的Jetty服务默认使用8080端口监听应用请求,8081端口监听用户请求,如果这两个端口被其他应用占用则会导致报错。
另外,可能会出现错误the ResourceConfig instance does not contain any root resource classes。这是由于我们的Hello world应用还没有创建和配置任何的REST资源。
相关文章推荐
- 编写Backbone.js的第一个应用,相当于Hello World!
- 基于dropwizard/metrics ,kafka,zabbix构建应用统计数据收集展示系统
- ubuntu12.04 python编写dijango 应用实例 hello world!
- 基于dropwizard/metrics ,kafka,zabbix构建应用统计数据收集展示系统
- ABAP--编写应用服务器执行外部命令的程序示例
- 编写 "纯HTML" jsp应用--学会使用 JSTL
- 编写" 纯HTML" jsp应用--学会使用 JSTL
- JAVA 中 jar 文件的编写和应用
- 编写 "纯HTML" jsp应用--学会使用 JSTL
- 编写 "纯HTML" jsp应用--学会使用 JSTL
- ABAP--编写应用服务器执行外部命令的程序示例
- 在Redhat9 Linux下安装java开发环境,并编写“Hello world”程序
- 编写 "纯HTML" jsp应用--学会使用 JSTL
- 用Python编写运行Hello World程序
- JAVA中jar文件的编写和应用
- ABAP--编写应用服务器执行外部命令的程序示例
- Java下的Framework编写(3)--cglib的应用
- SAS应用- 编写自己的broker.exe时BOSS给的一点提议
- 如何为嵌入式应用编写优秀的C++代码
- spring编写hello world