使用wildfly-swarm生成jax-rs项目
wildfly-swarm提供一个project generator1,用来生成maven项目。在这篇文章里,我用这个generator生成一个jax-rs项目。
以下是我在generator里面填写的信息:
注意我选择了wildfly-swarm的jax-rs组件。设置好后,点击「Generate project」,就可以下载生成的maven项目了。下载完成后,把压缩包解压,就得到了项目的文件目录:
$ pwd
/Users/weli/projs/weli-jaxrs
$ tree
.
├── audit.log
├── jaxrs.iml
├── pom.xml
└── src
└── main
└── java
└── io
└── weli
└── jaxrs
└── rest
└── HelloWorldEndpoint.java
7 directories, 4 files
可以使用下面的命令编译并运行项目:
$ mvn wildfly-swarm:run
第一次运行会花较长时间下载wildfly-swarm组件,等完成编译下载后,服务启动效果如下:
访问服务如下:
$ curl http://localhost:8080/hello
Hello from WildFly Swarm!
这个「/hello」的地址是由「HelloWorldEndpoint.java」驱动的,「HelloWorldEndpoint.java」的代码如下:
package io.weli.jaxrs.rest;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
@Path("/hello")
public class HelloWorldEndpoint {
@GET
@Produces("text/plain")
public Response doGet() {
return Response.ok("Hello from WildFly Swarm!").build();
}
}
wildfly-swarm会编译出一个war的大包:
$ pwd
/Users/weli/projs/weli-jaxrs/target
$ ls -l
total 121008
drwxr-xr-x 3 weli staff 102 Jan 17 23:06 classes
drwxr-xr-x 4 weli staff 136 Jan 17 23:06 demo
-rw-r--r-- 1 weli staff 49834251 Jan 17 23:07 demo-swarm.jar
-rw-r--r-- 1 weli staff 3534 Jan 17 23:07 demo.war
-rw-r--r-- 1 weli staff 12115689 Jan 17 23:06 demo.war.original
drwxr-xr-x 3 weli staff 102 Jan 17 23:06 generated-sources
drwxr-xr-x 3 weli staff 102 Jan 17 23:06 maven-archiver
drwxr-xr-x 3 weli staff 102 Jan 17 23:06 maven-status
注意看到「demo-swarm.jar」,这个包的尺寸特别大,包含了wildfly-swarm的所需组件,是可以直接运行的。可以使用下面的命令启动wildfly-swarm的服务:
$ java -jar demo-swarm.jar
启动后效果如下:
实际上就是一个服务端,可以直接使用了。
-
http://wildfly-swarm.io/generator/ ↩