On Thu, Apr 21, 2011 at 11:45 AM, Achim Nierbeck <[email protected]>wrote:

> Daniele,
>
> there is also pax-wicket, this might help you with developing wicket apps.
> :)
> And as far as I know the maven-bundle-plugin 2.3.4 is much more
> suitable for creating
> war archives with manifest information.
>
> regards, achim
>

Thanks Achim.

The problem is not the lack of tool that can help me, but the opposite:
there seems to be so many different way to do this thing that came out
during last few years, that is difficult to find relevant and actual
information.
I'm following the few things said on the book OSGi in ACtion I own, and it
says that the thing that defines a  bundle as a WAB is Web-ContextPath,
which should just define the URL context where to mound the webapp.
That is nice, but still does not say anything on how to avoid the war to
include dependencies.


Here's what I've done:

I managed my way to deploy a war. I've manually removed the jars in the lib
folder after the war has been built by maven.
The actual MANIFEST is what follows and it finally starts, but I got
exceptions for some ClassNotFound which makes no sense: the bundle starts so
every dependency is there, but indeed I have the class not found when the
http service starts to make its work.

Here's the relevant part of the manifest

Bundle-ClassPath: WEB-INF/classes
Bundle-SymbolicName: fenotipi-web
Web-ContextPath: /fenotipi
Bundle-Name: Fenotipi - Web Client
Bundle-Version: 0.0.3.SNAPSHOT
Bnd-LastModified: 1303403761811
Bundle-ManifestVersion: 2
Tool: Bnd-1.15.0
Import-Package: [... lots of stuff... ]

And here the log after. First I stop the module:

16:55:46,348 | INFO  | Thread-32        | HttpServiceFactoryImpl           |
.internal.HttpServiceFactoryImpl   40 | 54 -
org.ops4j.pax.web.pax-web-runtime - 1.0.1 | Unbinding bundle: [fenotipi-web
[352]]
16:55:46,348 | INFO  | Thread-32        | JettyServerWrapper               |
etty.internal.JettyServerWrapper  124 | 56 - org.ops4j.pax.web.pax-web-jetty
- 1.0.1 | ServletContext service already removed

Then I start it

16:55:49,085 | INFO  | NioProcessor-1   | ChannelSession                   |
d.common.channel.AbstractChannel  162 | 17 - sshd-core - 0.5.0 | Received
SSH_MSG_CHANNEL_WINDOW_ADJUST on channel 0
16:55:49,308 | INFO  | NioProcessor-1   | ChannelSession                   |
d.common.channel.AbstractChannel  162 | 17 - sshd-core - 0.5.0 | Received
SSH_MSG_CHANNEL_WINDOW_ADJUST on channel 0
16:55:49,488 | INFO  | NioProcessor-1   | ChannelSession                   |
d.common.channel.AbstractChannel  162 | 17 - sshd-core - 0.5.0 | Received
SSH_MSG_CHANNEL_WINDOW_ADJUST on channel 0
16:55:49,637 | INFO  | NioProcessor-1   | ChannelSession                   |
d.common.channel.AbstractChannel  162 | 17 - sshd-core - 0.5.0 | Received
SSH_MSG_CHANNEL_WINDOW_ADJUST on channel 0
16:55:59,008 | INFO  | Thread-32        | WebXmlObserver                   |
nder.war.internal.WebXmlObserver  118 | 62 -
org.ops4j.pax.web.pax-web-extender-war - 1.0.1 | Using [fenotipi] as web
application context name
16:55:59,008 | INFO  | Thread-32        | WebXmlObserver                   |
nder.war.internal.WebXmlObserver  133 | 62 -
org.ops4j.pax.web.pax-web-extender-war - 1.0.1 | Using [] as web application
root path
16:55:59,034 | INFO  | Thread-32        | HttpServiceFactoryImpl           |
.internal.HttpServiceFactoryImpl   33 | 54 -
org.ops4j.pax.web.pax-web-runtime - 1.0.1 | Binding bundle: [fenotipi-web
[352]] to http service
16:55:59,087 | ERROR | Thread-32        | RegisterWebAppVisitorWC          |
internal.RegisterWebAppVisitorWC  283 | 62 -
org.ops4j.pax.web.pax-web-extender-war - 1.0.1 | Registration exception.
Skipping.
java.lang.ClassNotFoundException:
org.springframework.web.context.ContextLoaderListener not found by
fenotipi-web [352]

Here we go. It can't find this class and also the WicketFilter class.

This is strange, maybe it's using a different classloader?



> 2011/4/21 Daniele Dellafiore <[email protected]>:
> > On Thu, Apr 21, 2011 at 9:48 AM, Daniele Dellafiore
> > <[email protected]>wrote:
> >
> >> I thank you all for the information. I need to make it run from the
> >> maven-bundle-plugin 2.2.0.
> >> With the configuration (pasted in the end of the email) and instructing
> the
> >> maven-war-plugin to where the MANIFEST file is, the module with
> packaging =
> >> war has the osgi info but still has the /lib folder with all the jars
> and
> >> the MANIFEST file is not even populated with the OSGI info (while for
> all
> >> the other jar it is)
> >>
> >
> > sorry, here is the correct statement:
> > 1. the Manifest is correctly populated with the OSGI info, either if it's
> > built as jar or war, so this is ok, I think.
> > 2. the lib folder still has the jars, and I want to get rid of them and
> use
> > the bundles on karaf referenced with the manifest, instead.
> >
> > Actually, the manifest import the packages, not the jars. Have I to
> change
> > this?
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to