After quite a bit of effort, I have finally gotten the Struts example to work flawlessly in WebSphere 3.5.3. What's funny is that I was reading your post Richard and was thinking to myself: "Gee, I've done ALL of this EXACTLY -- in fact I'm even on the same OS, just different drive letters, WHAT could be wrong??" Then it hit me, looking through your steps below I found the one thing that was different that had completely slipped through - jaxp 1.0.1. I was using jaxp 1.1.1!! Crimson is a separate jar now, that includes the stuff from parser.jar, but it apparently does something different then 1.0.1 and it was just screwing everything up! I downloaded 1.0.1 and got significantly further then I ever have, but ran into another problem. WebSphere reported that the public identifiers for the DTD's were malformed URLs. Luckily, I saw on another mailing list an issue with WebSphere & Struts not liking PUBLIC DTD refs, so I changed them to SYSTEM and away it flew - flawlessly. For those people who run into these issues (and because I have to document it for work anyway - here is Richard's list again revised with more detail on some of the bugs I encountered. (BTW, adding web to the classpath did not help me, I had to move it to the servlets directory). Server: Windows 2000 Server with WebSphere 3.5.3 Advanced 1. Start up the adminserver. 2. Start up Admin Console. 3. Use the Convert War file task to convert the struts-example.war from the struts-b1 distrib as-is. 4. Convert to the default_server, default servlet engine and standard install directory (c:\websphere\appserver\hosts\default_host). 5. Create a WEB-INF directory in the servlets dir and copy struts-config.xml, database.xml AND web.xml into it (Keep WEB-INF with all the TLD's under web - both WEB-INF directories must be present). 6. Copy jaxp 1.0.1's (NOT 1.1.1's) jaxp.jar and parser.jar to the servlets directory of the strut-example webapp. 7. In the servlets directory, open struts.jar with WinZip. Extract the three DTD's (struts-config_1_0.dtd, web-app_2_2.dtd and web-app_2_3.dtd) into the servlets directory making sure you use folder names (so the files extract to servlets/org/apache/struts/resources). 8. Click on struts-example in the Admin Console under Default Server/Default Servlet Engine and click the advanced tab on the right hand side of the screen. 9. Down where it says Default Error Page, enter /ErrorReporter and then click Apply. 10. Start the Default Server via the Admin Console. You should see a whole bunch of ActionServlet messages in the default_host_stdout.log file with no exceptions. 11. Via a browser accessed the app using http://localhost/struts-example/index.jsp. 12. If it returns "Application not Available" then go back to the Admin Console, right-click on struts-example and select Restart WebApp. 13. Once it reports success, go back to the URL above and try again - it should work flawlessly. For whatever reason, some installations do not like XML files that reference PUBLIC DTD's - if in looking at the default_host_stdout.log file you see errors about invalid public URL references during DTD registrations, or if your pages say "cannot find //logon or //saveRegistration (ie. action mappings) then do the following: 1. Stop Default Server 2. Go to servlets\WEB-INF\ and edit web.xml and struts_config.xml. 3. In the DOCTYPE declaration, change the word PUBLIC to SYSTEM and completely remove the line that reads "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" from web.xml and remove "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN" from struts-config.xml. 4. Save these changes and go back to step 10 above. Just as a troubleshooting guide - If you are getting errors like "Cannot find ActionMappings, etc..." or "Cannot find key org.apache.struts.MESSAGE" then your application is most likely still bombing on the struts-config issue that Richard discovered. The above steps SHOULD correct that leaving nothing out. If you are getting 404 errors about //logon or something not found, then you are still having XML config troubles and it is not initializing the Action servlet properly. Follow the steps above in regards to DTD's and it should work. As a final thought, I obviously haven't gotten to test too much but I don't believe that there are ANY coding changes that need to be made to the actual struts source. Everything about getting it to work in WebSphere has been a WebSphere configuration issue thus far (and I don't think I'll be having any more). Thanks for your help Richard and I hope others benefit from this as well! :) Chris Assenza