Peter den Haan wrote:

> 
> My apologies. The combination of a very Dutch-sounding name and the
> "dutchman" mail alias made for some unwarranted assumptions on my part :^)


My great-grandparents emigrated just before the turn of the century.  I 
am told I used to be able so speak some Dutch that my great-grandmother 
taught me when I was young but it did not stick.


> 
> I'm using Struts 1.0 on Orion 1.5.2 with the jar in WEB-INF/lib - no
> problems whatsoever.
> 
> Putting the jar in the CLASSPATH won't help - the orion.jar has its own
> classpath specified in the manifest file. For the same reason, putting it in
> the Orion directory won't help either. However, Orion will "see" any jar you
> put in orion/lib.
> 
> However, WEB-INF/lib is where it "really" should be. Have you confirmed that
> the offending class is actually in the jar? It's a long shot, but...
> 
> Regards,
> 
>  - Peter


I have the struts.jar file in the WEB-INF/lib directory.  I even 
downloaded the Struts source so I could trace the problem to the exact 
statement.

The following is from the ActionServlet.processActionCreate:

// Go ahead and create the new Action instance
// ASSERT:  This will never ever happen more than once
//  for a particular action class name
try {
   if (debug >= 1) {
     log("  Creating new Action instance");
   }

   ClassLoader loader = Thread.currentThread().getContextClassLoader();
   System.out.println("ActionServlet.processActionCreate, our loader 
looks like this: [" + loader + "]");
   Class clazz = Class.forName(actionClass, true, loader);
   actionInstance = (Action) clazz.newInstance();
   actionInstance.setServlet(this);
   actions.put(actionClass, actionInstance);
} catch (Throwable t) {
   System.out.println("ActionServlet.processActionCreate, Throwable 
caught: [" + t.toString() + "]");
   log("Error creating Action instance for path '" +
     mapping.getPath() + "', class name '" +
     actionClass + "'", t);
   return (null);
}

The output from this section looks like this:

ActionServlet.processActionCreate, our loader looks like this: 
[[ThreadContextLoader, current context: [ClassLoader: 
[[/opt/prod/application-deployments/subrotrack/subrotrack/subrotrack-web/WEB-INF/lib/httpunit.jar],
 
[/opt/prod/application-deployments/subrotrack/subrotrack/subrotrack-web/WEB-INF/lib/httpclient.jar],
 
[/opt/prod/application-deployments/subrotrack/subrotrack/subrotrack-web/WEB-INF/lib/cactus.jar],
 
[/opt/prod/application-deployments/subrotrack/subrotrack/subrotrack-web/WEB-INF/lib/log.jar],
 
[/opt/prod/application-deployments/subrotrack/subrotrack/subrotrack-web/WEB-INF/lib/commons-collections.jar],
 
[/opt/prod/application-deployments/subrotrack/subrotrack/subrotrack-web/WEB-INF/lib/struts.jar],
 
[/opt/prod/application-deployments/subrotrack/subrotrack/subrotrack-web/WEB-INF/lib/application.jar],
 
[/opt/prod/application-deployments/subrotrack/subrotrack/subrotrack-web/WEB-INF/lib/commons-digester.jar],
 
[/opt/prod/application-deployments/subrotrack/subrotrack/subrotrack-web/WEB-INF/lib/commons-beanutils.jar],
 
[/opt/prod/application-deployments/subrotrack/subrotrack/subrotrack-web/WEB-INF/lib/junit.jar],
 
[/opt/prod/application-deployments/subrotrack/subrotrack/subrotrack-web/WEB-INF/classes]]]]]
ActionServlet.processActionCreate, Throwable caught: 
[java.lang.NoClassDefFoundError: org/apache/struts/action/Action]

What is really weird is that it displays an ActionForm before this process is 
executed.  So it can find org/apache/struts/action/ActionForm

but not Action.


Thoughts?


-- 
Perry Hoekstra
E-Commerce Architect
Talent Software Services
[EMAIL PROTECTED]


Reply via email to