I think BEA has acknowledged a bug in that jars residing in the
Applicaiton ClassLoader (included in the EAR) won't be loaded.  They
have to be included in the EJB Jars that are placed in the EAR to be
loaded and used by both EJB's and web apps.  However as someone pointed
out, the Struts classes shouldn't be needed from the EJBs so you could
just include them in WEB-INF/lib.  It works that way in my environment,
but I certainly don't have them included anywhere besides the web app.

Greg

> -----Original Message-----
> From: Sobkowski, Andrej [mailto:[EMAIL PROTECTED]]
> Sent: Friday, December 14, 2001 12:46 PM
> To: 'Struts Users Mailing List'
> Subject: RE: Weblogic problem...
> 
> 
> Sean,
> 
> unfortunately, there are issues when packaging an application 
> as an EAR vs
> WAR. I agree that if you only have JSP and Servlets and WEB 
> components in
> general (ie only stuff that goes into a WAR), then you're OK with
> WEB-INF/lib.
> 
> BUT if you deploy your Struts app as part of a EAR, that may 
> not work (it
> didn't for me and I wasted a few hours trying to understand why that
> @^%@$#@% app server couldn't find my struts.jar).
> 
> Check out
> http://www.onjava.com/pub/a/onjava/2001/06/26/ejb.html
> 
> It's the type of thing that can ruin an evening... :)
> 
> Andrej
> 
> PS. I agree with your sentence "EJB should not care about Struts". The
> problem is that if the app uses a single Class Loader and 
> it's the EJB's,
> then the app must have a link to the "utility JARs".
> 
> > -----Original Message-----
> > From: Sean Owen [mailto:[EMAIL PROTECTED]]
> > Sent: Friday, December 14, 2001 12:49 PM
> > To: Struts Users Mailing List
> > Cc: [EMAIL PROTECTED]
> > Subject: Re: Weblogic problem...
> > 
> > 
> > Adding struts.jar to the WEB-INF/lib directory within your 
> > web application
> > is the right way to make it available to your servlets and 
> > JSPs, regardless
> > of whether you deploy in an exploded directory format, as a 
> > .war, or as an
> > .ear with a web app component.
> > 
> > It's not then visible to the EJBs, since the EJB classloader 
> > is a parent of
> > the web classloader, but that shouldn't matter - EJBs don't have any
> > business using Struts classes, right?
> > 
> > Sean
> > 
> > 
> > ----- Original Message -----
> > From: "Sobkowski, Andrej" <[EMAIL PROTECTED]>
> > To: "'Struts Users Mailing List'" <[EMAIL PROTECTED]>
> > Sent: Friday, December 14, 2001 4:40 PM
> > Subject: RE: Weblogic problem...
> > 
> > 
> > > Small addition to my previous message (sorry, I responded 
> > without reading
> > > with too much attention):
> > > - if yours is a *.war archive only, then adding struts.jar to your
> > > WEB-INF/lib directory should work. My previous suggestions 
> > are still valid
> > > but may not solve the problem.
> > > - if yours is a *.ear, then adding JARs to the WEB-INF/lib 
> > will not work
> > in
> > > Weblogic as the main ClassLoader is the one used for the 
> > EJBs (that have
> > no
> > > visibility on your WEB-INF/lib). You should then use the 
> MANIFEST.MF
> > > "Class-Path" thing.
> > >
> > > Andrej
> > >
> > > > -----Original Message-----
> > > > From: Anna Chen [mailto:[EMAIL PROTECTED]]
> > > > Sent: Friday, December 14, 2001 11:02 AM
> > > > To: [EMAIL PROTECTED]
> > > > Subject: Weblogic problem...
> > > >
> > > >
> > > > Hi, all
> > > >
> > > > Could you tell me why I get this kind of error? I am using
> > > > weblogic 6.1 on
> > > > UNIX and I do have struts.jar in my WEB-INF/lib
> > > >
> > > > <[WebAppServletContext(4667798,brd-admin,/brd-admin)] 
> > action: Error
> > > > creating Action instance for path '/login', class name
> > > > 'com.brandsdirect.common.login.LoginAction'
> > > > java.lang.NoClassDefFoundError: org/apache/struts/action/Action
> > > >          at java.lang.ClassLoader.defineClass0(Native Method)
> > > >          at 
> > java.lang.ClassLoader.defineClass(ClassLoader.java:486)
> > > >          at
> > > > java.security.SecureClassLoader.defineClass(SecureClassLoader.
> > > > java:111)
> > > >          at
> > > > java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
> > > >          at 
> > java.net.URLClassLoader.access$100(URLClassLoader.java:56)
> > > >          at 
> java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> > > >          at 
> > java.security.AccessController.doPrivileged(Native Method)
> > > >          at 
> > java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> > > >          at 
> java.lang.ClassLoader.loadClass(ClassLoader.java:297)
> > > >          at
> > > > sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
> > > >          at 
> java.lang.ClassLoader.loadClass(ClassLoader.java:290)
> > > >          at 
> java.lang.ClassLoader.loadClass(ClassLoader.java:290)
> > > >          at 
> java.lang.ClassLoader.loadClass(ClassLoader.java:253)
> > > >          at
> > > > java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
> > > >          at java.lang.Class.forName0(Native Method)
> > > >          at java.lang.Class.forName(Class.java:120)
> > > >          at
> > > > org.apache.struts.action.ActionServlet.processActionCreate(Act
> > > > ionServlet.java:1564)
> > > >          at
> > > > org.apache.struts.action.ActionServlet.process(ActionServlet.j
> > > > ava:1510)
> > > >          at
> > > > 
> > org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:487)
> > > >          at
> > > > javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> > > >          at
> > > > javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> > > >          at
> > > > weblogic.servlet.internal.ServletStubImpl.invokeServlet(Servle
> > > > tStubImpl.java:263)
> > > >          at
> > > > weblogic.servlet.internal.ServletStubImpl.invokeServlet(Servle
> > > > tStubImpl.java:200)
> > > >          at
> > > > weblogic.servlet.internal.WebAppServletContext.invokeServlet(W
> > > > ebAppServletContext.java:2390)
> > > >          at
> > > > weblogic.servlet.internal.ServletRequestImpl.execute(ServletRe
> > > > questImpl.java:1959)
> > > >          at
> > > > weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
> > > >          at 
> > weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
> > > >  >
> > > >
> > > > Thanks!!
> > > >
> > > > Anna
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > --
> > > > To unsubscribe, e-mail:
> > > > <mailto:[EMAIL PROTECTED]>
> > > > For additional commands, e-mail:
> > > > <mailto:[EMAIL PROTECTED]>
> > > >
> > >
> > 
> 

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to