Guillaume,

Ok, that reproduced the issue.

I updated your felix-launcher.jar to use Felix framework 3.0.6 since we've made changes to implicit boot delegation, so it makes more sense to work from 3.0.6 as a starting point.

I started getting errors for jlp.* classes. I added the jlp.* class to boot delegation, but this wasn't sufficient because for R4.2 the default class loader used for boot delegation has changed from the framework class loader (which was framework implementation specific) to the boot class loader. So, I also had the add "org.osgi.framework.bundle.parent app" to your gateway.properties to configure the framework to use the application class loader for boot delegation (I just guessed that this would be the correct class loader).

That got me past the jlp.* errors, but then I got errors because the org.apache.xerces.jaxp.SAXParserFactoryImpl provider could not be found. As a guess, I added this to the boot delegation property too, which got the server starting.

However, this still didn't solve the original issue, so I also added org.aspectj.* to the boot delegation property. This led me to another error, where the org.apache.xpath.jaxp.XPathFactoryImpl provider could not be found, so I added that to the boot delegation property too.

This got the admin console loading, but when I logged in I got an error because the org.apache.xalan.processor.TransformerFactoryImpl could not be found, so I added that to the boot delegation property.

Now everything appears to be working, since I was able to access the admin console and login. I'm not sure if you intended to get all of this stuff working via boot delegation or not. If not maybe this at least gives you enough hints about where to go next.

I'd definitely recommend moving to Felix framework 3.0.6 and to Gogo! :-)

-> richard



-> richard

On 12/8/10 8:34, Guillaume Sauthier wrote:
Sorry for the delay Richard

Can you try with export JAVA_OPTS=... instead of exporting JONAS_OPTS (my latest try was with JAVA_OPTS and there was the failure) ? Make sure that the -javaagent parameter was really used (ps aux | grep weaver)

It's possible that you may need some more PermGenSpace to run theses aspects:
export JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=256m"

Thanks
--G

Le 06/12/2010 18:36, Richard S. Hall a écrit :
I'm on a Mac. I did this:

  1. export JONAS_ROOT=/Users/rsh/Projects/tmp/jonas-full-5.2.0-M3/
  2. export
     JONAS_OPTS="-javaagent:/Users/rsh/Downloads/myaspectjweaver.jar"
  3. ./bin/jonas start -clean -tui -debug -p 4142
  4. goto http://localhost:9000/jonasAdmin and login

I don't see any exception. This is the console output snippet after the server starts up and when I login to the admin console:

2010-12-06 12:31:47,218 : J2EEServer.__info : JOnAS AS v5.2.0-M3 named 'jonas' RUNNING 2010-12-06 12:33:07,324 : WebappLoader.start : Dual registration of jndi stream handler: factory already defined log4j:WARN No appenders could be found for logger (org.granite.config.GraniteConfigListener).
log4j:WARN Please initialize the log4j system properly.
2010-12-06 12:33:11,493 : BaseWebContainerService.registerWar : War jonas-admin-5.2.0-M3.war available at the context /jonasAdmin.

When I login the admin console app comes up fine.

So, I must be missing a step.

-> richard

On 12/6/10 11:24, Guillaume Sauthier wrote:
Yeah, the Exception is not thrown by the Felix framework, this is normal because the searched class is not in the webapp.
I was expecting the framework to actually find something.
The problem is not the Exception, it's more why the framework didn't find the libs of the agent.

To reproduce (I'm using JDK6):
1. Download JOnAS 5.2M3 (http://wiki.jonas.ow2.org/xwiki/bin/view/Main/Downloads)
2. Unzip
3. export JONAS_ROOT=<path-where-you-unziped-jonas>
4. export JONAS_OPTS="-javaagent:<path-where-you-placed>/myaspectjweaver.jar" (this jar is attached to the JOnAS Bug) 5. jonas start -clean -tui (Add "-debug -p 4142" if you want to launch in debug mode) 6. Goto http://localhost:9000/jonasAdmin (the application server start the webcontainer + the webapp)
7. Try to login (jonas/jonas)
8. You should see a stack trace (in both the webapp and the console)

Hope this helps
--Guillaume

Le 06/12/2010 17:09, Richard S. Hall a écrit :
The exception isn't being thrown by the Felix framework, so I'd have to assume if it is involved, it must be the parent of the WebappClassLoader?

The information is not enough for me to reproduce the issue. If you want to give me detailed steps to reproduce, I can take a look.

-> richard

On 12/6/10 10:36, Guillaume Sauthier wrote:
Hi all

One of the JOnAS users has an issue with bootdelegation and an AspectJ Java agent.
All the details are here: http://jira.ow2.org/browse/JONAS-293

In short, we start JOnAS with -javaagent:<path-to>/weaver-and-aspects.jar We also changed the bootdelegation package list to include "org.aspectj.*" and the aspect class packages ("jlp.*"). So I expect the classes from the agent to be available from any bundle on the system.

And when the aspectized class is instanciated, we have this error:
http://jonas.pastebin.com/ni8rcpvx (ClassNotFoundException: org.aspectj.runtime.reflect.Factory)

I tried the 3 different policies for bootdelegation (org.osgi.frameword.bundle.parent=app/boot/ext) and there is no changes with any of them.

Any ideas ?
--G

PS: It works with JOnAS 5.1.5, that means with a Felix 1.8.1.
JOnAS 5.2 M4-SNAPSHOT using Felix 3.0.4




Reply via email to