Building REST services with JAX-RS is truly pretty smooth and quick (I've been using Jersey not Wink though).
One thing I don't ever recommend is using JPA based libraries (Hibernate, EclipseLink, whatever). Run screaming away from that spec as fast as you possibly can. There are much better options for ORMs in Java that don't have the session management headache and endless string of gotchas that is JPA. Ebean is my current favorite.
As for the "framework", I haven't really found the need for one. Jersey/Jackson + Jetty + Ebean gets you 90% of the way there, just fill in whatever you want for logging and other minor support items. If you want something more pre-packaged with some of the service start/stop boilerplate built in there is dropwizard (https://github.com/codahale/dropwizard).
Nice. +1 for avoiding JPA. I hadn't heard of Ebean, I'll look in to that. Shameless plug, but Joist is my take on a "post-Hibernate" back-to-the-basics ORM:
Wise comment about JPA, it's full of gotchas and just when you need something fancy that you think will justify all the troubles of setting it up, you find that is impossible either because of a bug in your provider or because the spec just didn't cover that case.
On the rest side the real beauty of it over SOAP is that you don't really need a framework, I use Spring MVC but I set it up to the barebones because much of it is not needed.
Usually reserved for legacy databases with lots of custom queries and jdbc code, mybatis (previously ibatis) is a pretty flexible solution. Hooks into Spring pretty well too.
Thanks a lot for the pointers. I have been looking for a good java framework to learn. I will be more than happy to settle with this 90% you quoted. They look simple enough to understand in a couple of days without wrestling with tons of XML config files.
Besides the frontend code being much simpler (Javascript can do a lot of fancy stuff when it receives nicely structured data instead of dumb HTML) another huge benefit was enabling other people with different language backgrounds (Perl in my case) to perform their QA on the resulting API instead of manually clicking through the app (or writing quickly dying Selenium tests due to page modifications).
In the meantime even the customer does use the API for integration purposes using curl :)
[+] [-] mbell|13 years ago|reply
One thing I don't ever recommend is using JPA based libraries (Hibernate, EclipseLink, whatever). Run screaming away from that spec as fast as you possibly can. There are much better options for ORMs in Java that don't have the session management headache and endless string of gotchas that is JPA. Ebean is my current favorite.
As for the "framework", I haven't really found the need for one. Jersey/Jackson + Jetty + Ebean gets you 90% of the way there, just fill in whatever you want for logging and other minor support items. If you want something more pre-packaged with some of the service start/stop boilerplate built in there is dropwizard (https://github.com/codahale/dropwizard).
[+] [-] stephen|13 years ago|reply
http://joist.ws/
[+] [-] ilcavero|13 years ago|reply
[+] [-] justwrote|13 years ago|reply
[+] [-] moondowner|13 years ago|reply
Though, I haven't taken a look and try at Ebean, and I will these days.
[+] [-] heathlilley|13 years ago|reply
http://www.mybatis.org/core/
[+] [-] rohshall|13 years ago|reply
[+] [-] haroldship|13 years ago|reply
http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=A...
[+] [-] rauar|13 years ago|reply
Besides the frontend code being much simpler (Javascript can do a lot of fancy stuff when it receives nicely structured data instead of dumb HTML) another huge benefit was enabling other people with different language backgrounds (Perl in my case) to perform their QA on the resulting API instead of manually clicking through the app (or writing quickly dying Selenium tests due to page modifications).
In the meantime even the customer does use the API for integration purposes using curl :)
Really happy with the latest developments...
[+] [-] bradgessler|13 years ago|reply
[+] [-] pjmlp|13 years ago|reply
[+] [-] alphamale3000|13 years ago|reply