Maven archetype to create a modern Java RPC stack using Jetty + Jersey + Jackson + MessagePack on Spring Boot
with Bash
mvn archetype:generate\
-DarchetypeGroupId=am.ik.archetype\
-DarchetypeArtifactId=msgpack-rpc-jersey-blank-archetype\
-DarchetypeVersion=1.0.7
with CommandPrompt (Windows)
mvn archetype:generate^
-DarchetypeGroupId=am.ik.archetype^
-DarchetypeArtifactId=msgpack-rpc-jersey-blank-archetype^
-DarchetypeVersion=1.0.7
$ mvn archetype:generate -B\
-DarchetypeGroupId=am.ik.archetype\
-DarchetypeArtifactId=msgpack-rpc-jersey-blank-archetype\
-DarchetypeVersion=1.0.7\
-DgroupId=com.example\
-DartifactId=hello-modern-rpc\
-Dversion=1.0.0-SNAPSHOT
$ find . | sort | sed '1d;s,[^/]*/,| ,g;s/..//;s/[^ ]*$/|-- &/'
|-- hello-modern-rpc
| |-- pom.xml
| |-- src
| | |-- main
| | | |-- java
| | | | |-- com
| | | | | |-- example
| | | | | | |-- App.java
| | | | | | |-- AppConfig.java
| | | | | | |-- CalcEndpoint.java
| | | |-- resources
| | | | |-- application.yml
| | |-- test
| | | |-- java
| | | | |-- com
| | | | | |-- example
| | | | | | |-- CalcEndpointTest.java
| | | |-- resources
| | | | |-- .gitkeep
$ cd hello-modern-rpc
$ mvn spring-boot:run
$ curl -v -H "Accept: application/x-msgpack" "localhost:8080/calc?left=100&right=300"
> GET /calc?left=100&right=300 HTTP/1.1
> User-Agent: curl/7.30.0
> Host: localhost:8080
> Accept: application/x-msgpack
>
< HTTP/1.1 200 OK
< Server: Apache-Coyote/1.1
< Content-Type: application/x-msgpack;charset=UTF-8
< Content-Length: 26
< Date: Fri, 16 Jan 2015 16:32:05 GMT
<
��leftd�right�,�answer��
Content negotiation is supported.
$ curl -v -H "Accept: application/json" "localhost:8080/calc?left=100&right=300"
> GET /calc?left=100&right=300 HTTP/1.1
> User-Agent: curl/7.30.0
> Host: localhost:8080
> Accept: application/json
>
< HTTP/1.1 200 OK
< Server: Apache-Coyote/1.1
< Content-Type: application/json;charset=UTF-8
< Content-Length: 37
< Date: Fri, 16 Jan 2015 16:32:52 GMT
<
{"left":100,"right":300,"answer":400}
You can change server port like as mvn spring-boot:run -Drun.arguments="--server.port=8888"
$ mvn test
$ mvn clean package
$ java -jar target/*.jar
See a sample CalcEndpint
Licensed under the Apache License, Version 2.0.