阿男的小窝

View the Project on GitHub

使用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

启动后效果如下:

实际上就是一个服务端,可以直接使用了。

  1. http://wildfly-swarm.io/generator/