I too use WebLogic 6.1 and I use to have my struts.jar (and everything else
struts and Jakarta) in my war file's WEB-INF/lib directory and things seem
to be ok, as long as all I was doing was JSP/Servlet stuff.  However, when I
tried to make my EJBs use the commons-logging.jar I had problems because as
I learned the WLS EJB class loader does not see the WAR file's WEB-INF/lib;
so I looked around and found that for 3rd party jars that are shared by JSPs
and EJBs can be made available to the class loader by way of the EAR's
manifest.  I listed all my 3rd party jars separated by spaces in the EAR's
meta-inf/Manifest.mf as follows:

Manifest-Version: 1.0
Class-Path: commons-logging.jar commons-beanutils.jar
commons-collections.jar commons-dbcp.jar commons-digester.jar
commons-fileupload.jar commons-lang.jar commons-logging.jar commons-pool.jar
commons-resources.jar commons-services.jar commons-validator.jar display.jar
jakarta-oro.jar jdbc2_0-stdext.jar log4j.jar struts.jar
commons-logging.properties

Then I placed all those jars right at the top of my EAR file structure
(right up there with the myAppWAR.war and myAppEJB.jar files).  I also put
the same Manifest.mf entries in my myAppEJB.jar file and my myAppWAR.war
file, but I don't know if that was really necessary or not.

After that things seem to work ok for me (for now).

Good luck,

- Jim



-----Original Message-----
From: Foong Tzer [mailto:[EMAIL PROTECTED]]
Sent: Friday, November 22, 2002 7:11 AM
To: [EMAIL PROTECTED]
Subject: Struts 1.1 beta2 on Weblogic 6.1 SP3 deployment problem


Hi people,

I'm a newbie in the mailing list.

My environment is Weblogic 6.1 SP3 (Win 2000) running Struts 1.1 Beta 2.

With Struts alone via war deployment itself...it works great with this
message: -

<Nov 22, 2002 3:54:09 PM SGT> <Notice> <Management> <Application Poller
started for development server.>
[ChangeAwareClassLoader] : Name is :
META-INF/services/org.apache.commons.logging.LogFactory
0 [Thread-2] INFO util.PropertyMessageResources  - Initializing,
config='org.apache.struts.util.LocalStrings', returnNu
ll=true
0 [Thread-2] INFO util.PropertyMessageResources  - Initializing,
config='org.apache.struts.action.ActionResources', ret
urnNull=true
341 [Thread-2] INFO util.PropertyMessageResources  - Initializing,
config='com.see.sample.webapp.ApplicationResources',
 returnNull=true
<Nov 22, 2002 3:54:11 PM SGT> <Notice> <WebLogicServer> <ListenThread
listening on port 7001>



BUT, via ear deployment, it throws an exception like this: -

<Nov 22, 2002 7:40:40 PM SGT> <Notice> <Management> <Application Poller
started for development server.>
[ChangeAwareClassLoader] : Name is :
META-INF/services/org.apache.commons.logging.LogFactory
0 [Thread-2] INFO util.PropertyMessageResources  - Initializing,
config='org.apache.struts.util.LocalStrings', returnNu
ll=true
0 [Thread-2] INFO util.PropertyMessageResources  - Initializing,
config='org.apache.struts.action.ActionResources', ret
urnNull=true
310 [Thread-2] ERROR digester.Digester  - Begin event threw exception
java.lang.reflect.InvocationTargetException:
java.lang.NoClassDefFoundError: org/apache/struts/action/ActionForm
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:488)
        at
 
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:106)
        at
 
weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLo
ader.java:394)
        at
 
weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.
java:157)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:294)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:287)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
        at
 
weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClas
sLoader.java:47)
        at
 
org.apache.struts.config.FormBeanConfig.formBeanClass(FormBeanConfig.java:29
0)
        at
 
org.apache.struts.config.FormBeanConfig.setType(FormBeanConfig.java:161)
        at java.lang.reflect.Method.invoke(Native Method)
        at
 
org.apache.commons.beanutils.PropertyUtils.setSimpleProperty(PropertyUtils.j
ava:1650)
        at
 
org.apache.commons.beanutils.PropertyUtils.setNestedProperty(PropertyUtils.j
ava:1545)
        at
 
org.apache.commons.beanutils.PropertyUtils.setProperty(PropertyUtils.java:15
74)
        at
 
org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:919)
        at
        org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:726)
        at
 
org.apache.commons.digester.SetPropertiesRule.begin(SetPropertiesRule.java:2
59)
        at
 
org.apache.commons.digester.Digester.startElement(Digester.java:1237)
        at
 
weblogic.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1384)
        at
 
weblogic.apache.xerces.validators.common.XMLValidator.callStartElement(XMLVa
lidator.java:1191)
        at
 
weblogic.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentS
canner.java:1891)
        at
 
weblogic.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispat
ch(XMLDocumentScanner.java:1267)

        at
 
weblogic.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentSca
nner.java:396)
        at
        weblogic.apache.xerces.framework.XMLParser.parse(XMLParser.java:975)
        at
 
weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:123)
        at
 
weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:125)
        at org.apache.commons.digester.Digester.parse(Digester.java:1495)
        at
 
org.apache.struts.action.ActionServlet.initApplicationConfig(ActionServlet.j
ava:860)
        at
        org.apache.struts.action.ActionServlet.init(ActionServlet.java:455)
        at javax.servlet.GenericServlet.init(GenericServlet.java:258)
        at
 
weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java
:713)
        at
 
weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.ja
va:656)
        at
 
weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.jav
a:601)
        at
 
weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletC
ontext.java:2272)
        at
 
weblogic.servlet.internal.WebAppServletContext.preloadServlets(WebAppServlet
Context.java:2216)
        at
 
weblogic.servlet.internal.HttpServer.preloadServlets(HttpServer.java:495)
        at
 
weblogic.servlet.internal.WebService.preloadServlets(WebService.java:450)
        at
        weblogic.t3.srvr.ServletInitRunner.run(ServletInitRunner.java:49)
        at java.lang.Thread.run(Thread.java:479)
320 [Thread-2] ERROR action.ActionServlet  - Parsing error processing
resource path /WEB-INF/struts-config.xml
java.lang.reflect.InvocationTargetException
        at
 
org.apache.commons.digester.Digester.createSAXException(Digester.java:2312)
        at
 
org.apache.commons.digester.Digester.createSAXException(Digester.java:2332)
        
I've scan through the forum, and it seems some say that weblogic has got
some special class loader problem. Others say it's fix by adding a
classpath to the manifest file like this: -

Manifest-Version: 1.0
Created-By: Apache Ant 1.5
Class-Path: commons-beanutils.jar commons-collections.jar
Class-Path: commons-dbcp.jar commons-digester.jar
Class-Path: commons-logging.jar commons-pool.jar
Class-Path: commons-services.jar commons-validator.jar
Class-Path: jakarta-oro.jar struts.jar


No, my Weblogic classpath hasn't got Struts.jar on it.

Anyone has got any other suggestion, please?
Regards,

  Tzer
  [EMAIL PROTECTED]

Why J2EE needs architecture?
http://www.see-consulting.com

-- 
http://fastmail.fm - Access your email from home and the web

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

Reply via email to