myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From titou10 titou10 <>
Subject [CODI] CODI jar in ear/lib with a WAR = fail in WebSphere v8.5
Date Thu, 17 Jan 2013 20:38:17 GMT
I'm still experimenting with CODI and WebSphere v8.5.0.1 without success
Our "standard" ear deployements scheme  is:
  - 1 ejb.jar module
  - 1 war module
  - lib
    - 1 jpa.jar module
    - dependent jar (like codi..)

WAS normally uses 2 levels of application class loaders : 1 per WAR
and 1 per application as the parent of the previosu one. It can be
configure to use only one per application (all modules + war in the
same classloder) but it is not supported by CDI (OWB under the hood)
in WAS as explained here:

A simple ear file as this one fails to start in WAS v8.5.0.1 :
- war (even with no java at all in it)
- lib

It fails with a NPE in
line 58.
JsfRequestLifecycleBroadcaster :
43  @Inject
44  private Event<PhaseEvent> phaseEvent;
54 void broadcastBeforeEvent(PhaseEvent phaseEvent)
55 {
56  this.facesPhaseId = phaseEvent.getPhaseId();
On line 58 at application startup, "this.phaseEvent" is null.

This seems to be due to a classloader problem:
- If I configure the app to use only 1 classloader for the whole app,
it works (but not supported by WAS/CDI/OWB implementation as stated
- If I package the CODI jar in WEB-INF/lib. It works... but the
classes in our EJB module later will not "see" CODI artefacts. Not
feasible for us
- I can package the CODI jar + the EJB module in WEB-INF/lib: Not
feasable has will we EJB timers and other ejb related things that are
restricted by this kind of packaging
- I also trie to use the specific package, ie putting the jsf CODI
module in WEB-INF/lib but classes in EJB will use some CODI
annotations.. So not a solution for us

So up to now, CODI is still a no-go and we hope DeltaSpike wil lnot
suffer the same problem in the future

Q: Is this kind of packaging supported? Do anyone use this kind of
packaging with success? maybe with another application server?

I can provide a very simple EAR file to demonstrate this with the
resulting startup stacktrace and/or create a JIRA with the details
Thx in advance

View raw message