Just when someone asked you if Java really delivers what it promises, especially about compile once run anywhere. I just deployed a webapp developed using Struts 2, Spring, Hibernate in Websphere 6.1. And as expected, the deployment failed. After a few googling around and friend's advice, it turns out that I have to configure some properties for the server.
Here are the properties:
The new properties added are the last two, and here is a bit explanation on the property:
- com.ibm.ws.webcontainer.invokefilterscompatibility = true
Quoted from ibm docs (see here)
With
this custom property, the Web container calls custom servlet filters
before looking for welcome files. Also, if the Web container cannot
find a resource, it calls the custom servlet filters before creating
a FileNotFoundException exception. This change enables the Web container
to verify whether the custom servlet filters modify the path to a
resource.
In short, this property enables custom servlet filter to process http request and Struts 2 utilizes Servlet Filter.
- com.ibm.ws.webcontainer.assumefiltersuccessonsecurityerror = true
Quoted from ibm docs (see here)
When a request is received for a static file which does not exist, the
web container calls defined servlet filters. If the filters do no
successfully complete, a 404 error code is set. In a situation where
application security is enabled, a security check is performed as part
of filter invocation. Typically if the security check fails the web
container considers the filters to have failed and still sets a 404
error code instead of the 401 error code that indicates the failure of a
security check. The 404 error code enables the requester to access the
static file without logging on.
In short, just to be more secure this property is set to true. Anyway, this property doesn't have any thing to do with Struts 2.
To make sure everything works, don't forget to restart the server.
Tuesday, August 14, 2012
Subscribe to:
Posts (Atom)