Hi Sudhi As Websphere is not JSP 1.1 and Servlet 2.2 compliant there are issues which make it difficult to use with Struts. I attached the install instructions Dion Gillard posted yesterday to the mailing list. Jean-Noël -- --__/ \__------------------------------------------ improve Jean-Noël Ribette --/-----\------------------------------------------ Tel : 01 41 97 83 20 http://www.improve.fr http://www.application-servers.com ----- Original Message ----- From: Sudheendra Hebbagilu <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Thursday, February 15, 2001 3:21 PM Subject: IBM Websphere and other app server > Hi All, > I don't know whether this is off topic or not. But here is the problem. > I really want to use struts for the next project. And now I am deciding > which app server. > My boss wants to use IBM WebSphere. I don't know how good it is. > The application we are going to develop is not that complex, and not mission > critical. > It will be hosted on Sun Solaris, developed on Windows NT , postgresql as > back end, and Apache web server. > > For sure we want to use STRUTS, no matter what app server. > > For a small to medium scale project, which is not mission critical, what is > the best app server to use along with Struts, considering ease-of-use, > portability/scalability/performance/stability and of course cost. > > We are not going to use EJB, just simple beans. > > Any info/input will be greatly appreciated. > Thanks in advance > Sudhi >
WEBSPHERE APPLICATION SERVER ---------------------------- * In the steps below, $WAS_HOME refers to the directory in which you have installed WebSphere Application Server, and $STRUTS_HOME is the directory in which you unpacked the Struts binary distribution. * WebSphere before 3.5.2 did not support JSP 1.1 and Servlet 2.2, which made it difficult to get Struts functioning without massive code changes. Please upgrade to 3.5.2 (3.5 with FixPack 2) before attempting to use Struts. See http://www.ibm.com/software/webservers/appserv/efix.html for download and install instructions on FixPack 2 for WebSphere 3.5 * Warning: Struts will not work with WebSphere 3.5.2 out of the box. Fixes expected to be in WebSphere 3.5.3 (not released at time of writing) should correct this. However, you can successfully get WebSphere 3.5.2 working with Struts. * Make sure the WebSphere Application Server is started. Under Windows NT/2000, it's the "IBM WS AdminServer" service. * Start the WebSphere Administrative Console. * Once it's started, select "Convert a War File" from the tasks toolbar option, or from the Console->Tasks menu. This will cause a "Convert War File" Wizard dialog to appear. * Select a Servlet Engine to host the web application that will result from converting the War file, e.g. "Default Servlet Engine", by expanding the tree control under Nodes. Press the Next button. * Select a Virtual Host to associate the resulting web application with, e.g. "default host" Press the Next button. * Press the Browse button and choose the $STRUTS_HOME/webapps/struts-example.war Press the Next button * Select a destination directory for the resulting web application, e.g. $WAS_HOME/hosts/default_host Press the Next button * Enter a "Web Application Web Path", e.g. /struts-example, and a "Web Application Name", e.g. struts-example Press the Finish button. * You should, after a lengthy pause, get a message box with the text Command "convert war file" completed successfully. Press Ok. * You now need to add jaxp.jar and a jaxp compatible parser, e.g. parser.jar from JAXP 1.0.1 to the struts-example web application's servlets directory, e.g. $WAS_HOME/AppServer/hosts/default_host/struts-example/servlets * At this point, if there WAS 3.5.2 correctly implemented Servlet 2.2, all would be fine. However, WAS 3.5.2 returns null for calls to ServletContext.getResource(String) or ServletContext.getResourceAsStream(String). This manifests itself as an exception in the application server stdout log, e.g. default_server_stdout.log. * Warning: Don't be fooled by the fact that the web application starts successfully from the Admin Console. It actually doesn't. The Admin Console is lying. If you try to access the webapp e.g. http://localhost/struts-example/ it will fail. * At this point, you need to patch the Struts source. There are three places getResourceAsStream is called: ResourceTag.doStartTag() ActionServlet.initMapping() PropertyMessageResources.loadLocale(String) of these ActionServlet is the most important. * Change the source from // Acquire an input stream to our configuration resource InputStream input = getServletContext().getResourceAsStream(config); to // Acquire an input stream to our configuration resource InputStream input = new java.io.FileInputStream(getServletContext().getRealPath(config)); Make similar changes to the other classes if necessary. * Recompile ActionServlet and copy the .class file to $WAS_HOME/AppServer/hosts/default_host/struts-example/servlets/org/apache/struts/action/ActionServlet.class * Another bug with WAS 3.5.2's classloaders is that Class.getResource() wont load a resource from a jar, so you must copy $STRUTS_HOME/lib/struts-config_1_0.dtd to to $WAS_HOME/AppServer/hosts/default_host/struts-example/servlets/org/apache/struts/resources/struts-config_1_0.dtd or be connected to the internet to fetch the dtd from the jakarta web site. * Start your webapp in the Admin Console * Test the example application by loading the following URL in your browser of choice: http://localhost/struts-example/ ------------------------------->8------------------------------------------------------------------------------ -- dIon Gillard, Multitask Consulting Work: http://www.multitask.com.au NetRexx: http://www.multitask.com.au/NetRexx.nsf