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]>
> > >
> >
> 

Reply via email to