maven


Example using Jersey (REST resource), OSGi (Apache Felix), and Maven (build and deploy)?


I seem to be really struggling here. What I want to do (in this order) is:
1) Build a RESTful resource using a Jersey application and resource w/annotations (this is not the issue).
2) Package, install, and start that bundle into the Felix OSGi container, as an HTTP service, including dependencies.
3) Package, install, and start a WAR in the OSGi container that may incorporate #2 as a dependency.
And I would like to be able to do all of this using Maven.
I cannot seem to find a working example of even the individual steps, especially involving Maven, that work let alone the combination of those steps. I have tried cobbling together various q&a from across the web with varying levels of success but not an end-to-end working example yet.
Any pointers would be appreciated...
I do not have an example for Jersey but I have a tutorial for CXF with Apache Karaf (which uses Felix). It shows how to create a Rest service and build it with maven. Using Apache Karaf you can then deploy the bundle directly from the maven repo. Moving this to Jersey probably just means to exchange the lib and use another blueprint config to initialize the rest service.
Apache Karaf also allows to deploy wars and wabs but I have not yet tested them.
Apache Stanbol does most or all of this (not sure if the war packaging is included out of the box) to implement its RESTful services.
You'll have to dig through its codebase but searching for Jax-RS annotations in there should point you to the right places.
I also am really struggling with exactly what you are attempting to do. So far, I seem to be really close but alas not quite there, here's what I've been doing:
creating a War with Maven that defines my Jersey Resource's
bundling it with maven bundle plugin ( see section Adding OSGi metadata to existing projects without changing the packaging type ). Which allows me to run the restlets in Tomcat and test.
define a target in Eclipse that includes resources from my locally defined p2 site which I create with the p2-maven-plugin plugin. In this way I can gather up any of the dependencies from the WAR project into a p2 site, which I can deploy to an Eclipse defined target
Where I am stuck is trying to register the Jersey Resource's as services, for which I've tried:
using the JAX-RS OSGI connector, for which I eventually gave up on because it uses glassfish jersey which seems to export a version 2 API of Jersey when Jersey hasn't even defined a version 2 API yet. This caused package resolution problems when I wanted to use version 1.17 of Jersey libs.
registering the Resources using a Whiteboard a la Apache Felix HTTP Service, my current approach which doesn't seem to work yet.
And, finally, if the preceding doesn't work I'll try Amdatu
Another route I might try is from the Jersey project OSGI chapter
I tried this combination and made it up and running -
1- Modularity Specification-->OSGi specification
2- OSGi implementation-->Apache Felix 4.4.0
3- OSGi Runtime-->Apache Karaf 3.0.3
4- Software Architecture Specification of REST – JAX-RS
5- JAX-RX implementation-->Apache CXF – 2.7.5
You can refer this nice tutorial - http://java.dzone.com/articles/building-cxf-rest-service-osgi
Now, I am also planning to move to Jersey from CXF as the Jersey is the light wait reference implementation of JAX-RS. Now I am planning to use Jersey with Apache Felix/Apache Karaf. You can install Jersey in Karaf and deploy your Jersey Rest Web Services as Bundle. You can refer this tutorial - https://vzurczak.wordpress.com/2014/09/30/web-applications-with-osgi-working-with-jersey/
Here's a good example on github : https://github.com/ddragosd/jax-rs-on-karaf

Related Links

ShrinkWrap load libraries from POM for JavaArchive
Add log4j maven dependency to war without having it in compile time
Grails plugin installation
Building a previous version from svn
Bamboo: change the build root for maven plugin?
maven release plugin with phase and jar-with-dependencies
Failed to resolve dependency for wicket on jenkins and not on local machine
Java Build Tools: Ant vs. Maven [closed]
Maven build parameter to exclude a pom dependency
How to manage Tycho / EAP versionning correctly
Issue when injecting MavenProject into Maven test
Leiningen equivalent for maven dependency `type` element
Nexus Unable to connect with repos on the Internet
Excluding generated-sources from source:jar
Debug Jar that is a Maven Dependency to a Main Project
Can surefire and failsafe plugin deliberately randomize execution order of test classes?

Categories

HOME
openstack
fme
sd-card
youtube-dl
q
google-docs
cvs
rdf
survey
webpack-2
ebean
opengl-es-2.0
upload
android-youtube-api
awesome-wm
tomcat6
event-handling
decimal
django-simple-history
dosgi
ghc
beyondcompare
karma-jasmine
xlsxwriter
sox
bootstrap-tour
autosys
opennlp
vlsi
assistant
react-chartjs
preg-match-all
catel
usbserial
lxd
protovis
android-nestedscrollview
main
ssjs
azure-ml
pdf-reactor
outlook-api
netcdf4
segment
convertapi
galleria
celery-task
ionicons
typed-lambda-calculus
nbconvert
bind9
chord-diagram
specrun
google-cdn
objective-c-swift-bridge
angular-strap
wdf
android-textview
log4c
intrusion-detection
etsy
simplewebrtc
wapiti
associative-array
energy
hsv
r-tree
varargs
ionic
ideamart
method-parameters
createprocessasuser
graph-api-explorer
apache-commons-net
csquery
rdtsc
issuu
bitcoinj
zend-route
responsive-slides
rebol3
didselectrowatindexpath
balanced-payments
meteor-velocity
html5-notifications
gnu-smalltalk
gridfs
eclipse-memory-analyzer
gridcontrol
qt-faststart
rabl
html-editor
android-hardware
wsdl-2.0
hamiltonian-cycle
trusted
mt
coderush
runas
regsvr32
buildr
boost-filesystem
data-loss
deobfuscation
infobox
coercion
joyent
psi
cinema-4d
inotifycollectionchanged
iphone-web-app
lang
zend-translate
memory-size
exchange-server-2003
wsdl.exe

Resources

Encrypt Message



code
soft
python
ios
c
html
jquery
cloud
mobile