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]