This is a starter project using jax-rs / jersey. I've created this because I often find myself wanting to expirement with something that needs a webservice, and this gives me a starting spot. Clone or fork and use as needed.
Note: if you like this version, I highly recommend checking out the sample dropwizard implemenation [https://github.com/jasonray/jersey-starterkit/tree/dropwizard], much better for quick implemenations of java based web services. I love me some dropwizard. Until I discovered node/express.
- Compile The project compiles using gradle. If you already have gradle installed, compile using:
gradle build
If you do not have gradle installed, you can utilize the gradle wrapper included in the source
./gradlew war
The war file is compiled to: build/libs/jersey-starterkit.war
- Deploy the war file to web container. I've been using apache-tomcat [http://tomcat.apache.org], and typically copy the war to the tomcat webapps directory. On my machine:
cp build/libs/jersey-starterkit.war /Applications/apache-tomcat-6.0.33/webapps/
Shortcut: if you are using tomcat, and $CATALINA_HOME is set, you can run: ./deploy.sh
- Confirm that it is running by fetching the URL at on webcontainer + /jersey-helloworld/rest/hello. On my machine:
curl localhost:8080/jersey-starterkit/rest/hello
The supported endpoints are:
http://localhost:8080/jersey-starterkit/rest/customer/id/1
http://localhost:8080/jersey-starterkit/rest/echo?m=hello
http://localhost:8080/jersey-starterkit/rest/hello
If you use Eclipse, the gradle scripts are nice enough to create your eclipse project and classpath files.
If you have gradle installed, run:
gradle eclipse
Now you can import the project into eclipse.
If you update dependencies, pull the new libs into your classpath:
gradle eclipseClasspath
There is a log4j configuration defined in src/main/resources/log4j.properties
. By default this will log to the STDOUT and to a series of log files. Change the logging configuration as needed.
If you would like to use the default logging, create the logging folders:
> sudo mkdir /restapi
> chmod a+wr /restapi