I’m using karaf 4.1.1 deploying a servlet 3 enabled war using the bundle:install command. It installs successfully and the bundle moves to a state of active. However the app is not starting up. On the latest karaf doco it does state that there needs to be a web.xml in the war for the war feature to work. However, I’ve noticed that internally karaf is using jetty9 which supports servlet 3 ie. No web.xml.
How can I get this to work?
This email, including any attachments sent with it, is confidential and for the sole use of the intended recipient(s). This confidentiality is not waived or lost, if you receive it and you are not the intended recipient(s), or if it is transmitted/received in error.
Any unauthorised use, alteration, disclosure, distribution or review of this email is strictly prohibited. The information contained in this email, including any attachment sent with it, may be subject to a statutory duty of confidentiality if it relates to health service matters.
If you are not the intended recipient(s), or if you have received this email in error, you are asked to immediately notify the sender. You should also delete this email, and any copies, from your computer system network and destroy any hard copies produced.
If not an intended recipient of this email, you must not copy, distribute or take any action(s) that relies on it; any form of disclosure, modification, distribution and/or publication of this email is also prohibited.
Although the Queensland Ambulance Service takes all reasonable steps to ensure this email does not contain malicious software, the Queensland Ambulance Service does not accept responsibility for the consequences if any person's computer inadvertently suffers any disruption to services, loss of information, harm or is infected with a virus, other malicious computer programme or code that may occur as a consequence of receiving this email.
Unless stated otherwise, this email represents only the views of the sender and not the views of the Queensland Government.
The content presented in this publication is distributed by the Queensland Government as an information source only. The State of Queensland makes no statements, representations or warranties about the accuracy, completeness or reliability of any information contained in this publication. The State of Queensland disclaims all responsibility and all liability (including without limitation for liability in negligence) for all expenses, losses, damages and costs you might incur as a result of the information being inaccurate or incomplete in any way, and for any reason reliance was placed on such information.
it depends on what kind of Servlet3 application you deploy.
As Karaf doesn't use jetty directly but uses Pax Web as intermediate layer for the deployment and management of web applications in an OSGi manner. Actually you can also replace Jetty with undertow or Tomcat.
Never the less, you have a couple different ways of deploying your web application.
Let's go the easiest for non OSGi people. You drop your non-OSGi war in the deploy folder or
install it with a war-URL handler attached, e.g. war:my.groupId/myArtifact/version
That'll make sure your non-OSGi war is transformed into a OSGi war where the myArtifact will be used as the web-ContextPath.
You create a OSGi war, and add a web-ContextPath to it.
These WABs just need this manifest header, which makes sure the wab is going to be identified as such.
2a) use a regular WAR with web.xml, the WAB-Extender will make sure to retrieve everthing needed from the web.xml and will make sure the war is deployed as such, but also that parts are available as OSGi services
2b) use a regular WAR without web.xml, the WEB-Extender will check for annotated Servlet classes and will make sure the complete war is deployed correctly, again also registering parts as services
Use the HttpService, is the "old" OSGi way of registering plain Servlets and resources, and requires an Activator class where those services are registered with the HttpService
The WebContainer (non-Standardised), is the PaxWeb Extension of the HttpService, which provides a way to register all possible services around servlets.
The Whiteboard extender will listen to any registered Service like Servlet and will make sure it's handled by the underlying container.
5a) the OSGi standard one, with all Props and possibilities in the spec.
5b) the original Pax Web one, which uses a different set of Properties
In your case it sounds like your looking for 2b), so make sure you do have a web-ContextPath in the manifest header.
All kind of different ways can also be seen in the samples of Pax-Web 
2017-07-28 5:13 GMT+02:00 Matthew Shaw <[hidden email]>:
|Free forum by Nabble||Edit this page|