Installing Struts with your servlet container
WebSphere Application Server 3.5 and the
Example Application
Server: Windows 2000 Server with WebSphere 3.5.3
Advanced
- Start up the adminserver.
- Start up Admin Console.
- Use the Convert War file task to convert the
struts-example.war from the
struts-b1 distrib as-is.
- Convert to the default_server, default servlet engine
and standard
install directory
(c:\websphere\appserver\hosts\default_host).
- 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).
- 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.
- 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).
- 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.
- Down where it says Default Error Page, enter
/ErrorReporter and then
click Apply.
- 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.
- Via a browser accessed the app using
http://localhost/struts-example/index.jsp.
- If it returns "Application not Available" then go back
to the Admin
Console, right-click on struts-example and select
Restart WebApp.
- 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:
- Stop Default Server
- Go to servlets\WEB-INF\ and edit web.xml and
struts_config.xml.
- 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.
- 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).
If changing the DTD's to SYSTEM, do so ONLY AFTER using the
Convert a War
util. Ant doesn't seem to like it the other way! :)
Back to
Installation