You can configure name-value pairs of data, where the name is a property key and the value is a string value that you can use to set internal system configuration properties. Defining a new property enables you to configure a setting beyond that which is available in the administrative console. The following is a list of some of the available web container custom properties.
To specify web container custom properties:
The following is a list of custom properties provided with the Application Server. The topics, JavaServer Pages specific web container custom properties and HTTP transport custom properties, are listed in a separate topic.
The size of the body content buffer for a JavaServer Pages (JSP) file can affect the performance of some applications. By default, the body content buffer size is 512 bytes. However, you can use the BodyContentBuffSize custom property to set a different buffer value.
Name | Default value |
---|---|
BodyContentBuffSize | 512 |
Disables MyFaces searching for META-INF/*.faces-config.xml for all web applications on a server.
Name | Default value |
---|---|
com.ibm.ws.jsf.disablealternatefacesconfigsearch | false |
Typically Expression Language (EL) expressions in tag files get evaluated before the tag files a JavaServer Page (JSP) is compiled. However, under certain conditions these EL expressions in a tag file do not get evaluated if the <el-ignored> attribute is set to true.
To ensure that EL expressions are always evaluated, set the com.ibm.ws.jsp.enableDefaultIsELIgnoredInTag custom property to true. The default value for this property is false.
Name | Default value |
---|---|
com.ibm.ws.jsp.enableDefaultIsELIgnoredInTag | false |
The dynamic cache service uses flushes to determine when one cacheable web fragment, such as a JSP include or a c:import, ends and the next web fragment begins. If you set the com.ibm.wsspi.jsp.usecdatatrim custom property to true for your JSP engine, all of the white space and extra lines in the generated Java code are stripped out. In this situation, there might not be any content to write before the first flush. If the generated Java code contains text or other code before the first flush then normal dynamic cache service processing occurs.
If you set the com.ibm.wsspi.jsp.usecdatatrim custom property to true, and are using the dynamic cache service, you must also set the com.ibm.ws.jsp.getWriterOnEmptyBuffer custom property to true. This custom property requires the JSP Engine to call the flush function when it reaches the end of the first cachable web fragments even if there is not any data to flush. The default value for this property is false.
Name | Default value |
---|---|
com.ibm.ws.jsp.getWriterOnEmptyBuffer | false |
The body content buffer size of the tag bodies for a JavaServer Pages (JSP) file are reused to optimize performance. If the size of a tag body increases beyond the default body content buffer size, the buffer is resized to accommodate the tag body. However, the buffer is not reset to the default size after serving a request. As a result, the heap memory that is used by org.apache.jasper.runtime.BodyContentImpl implementation might increase over time. You can configure the body content buffer size by setting an integer value for the BodyContentBuffSize custom property. For more information, see BodyContentBuffSize.
Use the com.ibm.ws.jsp.limitBuffer custom property to deallocate large body content buffer sizes and create a buffer with the default buffer size.
Name | Default value |
---|---|
com.ibm.ws.jsp.limitBuffer | false |
Set the com.ibm.ws.jsp.throwExceptionForAddELResolver property to true if you do not want to allow an ELResolver to be registered from a servlet or a filter after the application has received a request from the client. When this property is set to true, an IllegalStateException is thrown as specified by the JSP (Java Server Pages) specification for addELResolver() method of the JspApplicationContext interface.
The default value for this property is false.
Name | Default value |
---|---|
com.ibm.ws.jsp.throwExceptionForAddELResolver | false |
If the query parameter in a URL only contains the string "name" instead of the expected "name=value" format, the server returns the value of request.getParameter("name") query as null.
When this property is set to true, if the query parameter in a URL only contains the string "name", the server returns an empty string as the value for the request.getParameter("name") query
Name | Default value |
---|---|
com.ibm.ws.webcontainer.AllowQueryParamWithNoEqual | false |
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.
You can set the com.ibm.ws.webcontainer.assumefiltersuccessonsecurityerror custom property to true, to prevent the 401 error code from being replaced with a 404 error code, and ensure that a user must enter a valid user ID and password before they can access a static file.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.assumefiltersuccessonsecurityerror | false |
By default, the web container uses asynchronous writes to write response data in chunks up to the response buffer size. For larger responses that are greater than the response buffer size, the web container continues to buffer response data into memory while waiting for an asynchronous write of a response data chunk to complete. This process can result in part of a large response held in memory, which can lead to high memory usage and potentially an out of memory error. An application server hang might also occur when a server is simultaneously processing more requests than web container-defined threads.
If the com.ibm.ws.webcontainer.channelwritetype property is set to sync, synchronous writing is used, otherwise asynchronous writing is used by default. With synchronous writing, response data are written synchronously in chunks of up to the value of responsebuffersize and no response data are buffered into memory while waiting for a synchronous write of a response data chunk to complete. As a result, the approximate maximum amount of response data that is held in memory is equal to the responsebuffersize multiplied by the number of web container threads. The maximum number of requests that can be processed simultaneously by the web container is limited by the number of web container threads. Additional requests are queued, waiting for a request that is in process to complete.
The responsebuffersize web container custom property defines the maximum amount of response data written by the web container in a single chunk, and is 32k by default. As a result, it is used to change the number of writes needed by the web container to send complete response data. However, if an application flushes response data, any response data held by the web container is immediately written irrespective of the responsebuffersize.
Use the following name-value pair to write chunks of data using synchronous writes.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.channelwritetype | none |
The ServletContext.getRealPath() Java Servlet API does not return the correct path for a requested resource when the resource exists in an extendedDocumentRoot path and does not exist in the installed application path. If you want the ServletContext.getRealPath() Java Servlet API to look for the requested resource in the extendedDocumentRoot path if the resource is not found in the installed application path, set the com.ibm.ws.webcontainer.checkEDRinGetRealPath custom property to true.
When this property is set to true, and the requested resource is also not found in the extendedDocumentRoot path, a null value is returned.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.checkEDRinGetRealPath | false |
This custom property addresses a situation where the request.getAttributeNames method returns a list of values. If a servlet modifies the list using the request.removeAttribute method, subsequent calls to the nextElement method causes a java.util.ConcurrentModificationException exception. To enable a servlet to modify the list, set the com.ibm.ws.webcontainer.copyattributeskeyset custom property to true. When you set this custom property to true, a copy of the list of attributes is returned, which enables the servlet to modify the list without resulting in a java.util.ConcurrentModificationException exception when the nextElement method is called.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.copyattributeskeyset | false |
The web container processes a setCharacterEncoding(String) method of the ServletRequest API even if it is called after the post data is parsed. According to the Java Servlet Specification, the web container should ignore a setCharacterEncoding(String) method if the method is called after the data is parsed.
If you want the web container to ignore a setCharacterEncoding(String) method if the method is called after the data is parsed, add the com.ibm.ws.webcontainer.disableSetCharacterEncodingAfterParametersRead custom property to your web container configuration settings and set this property to true.
The default value for this property is false.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.disableSetCharacterEncodingAfterParametersRead | false |
If a system application is the first to start, and the application attempts to load a global listener in a shared library that is associated with the server classloader, the application does not load that listener and prevents the listener from being loaded or invoked by a later non-system application. Set the com.ibm.ws.webcontainer.disableSystemAppGlobalListenerLoading custom property to true to prevent system applications from loading global listeners. When this property is set to true, the system application does not attempt to load the global listeners and later non-system applications can load them from a shared library associated with a server class loader.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.disableSystemAppGlobalListenerLoading | false |
Name | Default value |
---|---|
com.ibm.ws.webcontainer.disablexPoweredBy | false |
Use the com.ibm.ws.webcontainer.disallowAllFileServing custom property to disable file serving on all applications on a specific application server.
You can enable file serving on a global level across a given application server by using the fileServingEnabled custom property. However, the fileServingEnabled property is overridden by the specific deployment information of each application. Therefore, the current fileServingEnabled custom property only applies as a backup in case an application does not define the fileServingEnabled setting itself.
To globally override this setting on a specific application server to prevent the application server from serving static files regardless of their individual deployment settings, set the com.ibm.ws.webcontainer.disallowAllFileServing web container custom property to true using the following name-value pair.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.disallowAllFileServing | false |
When the serveServletsByClassnameEnabled property is enabled, it is possible to access servlets directly, resulting in a possible security exposure. Define the following custom property to disallow the use of the serveServletsByClassnameEnabled property across the entire application server level.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.disallowserveservletsbyclassname | false |
Typically, when the web container receives an UnavailableException, it cannot determine whether the exception was issued from a servlet or a dispatched resource. Therefore, the web container automatically marks the servlet unavailable even if it is the dispatched resource that is unavailable.
If you are running on Version 7.0.0.5 or later, and have set the com.ibm.ws.webcontainer.discernUnavailableServlet custom property to true, any UnavailableException that is issued from a dispatched resource is placed in a wrapper. This wrapper enables the web container to determine whether the exception was issued from the servlet or a dispatched resource. If the exception is not issued by the servlet, the web container does not mark the servlet unavailable.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.discernUnavailableServlet | false |
Typically, the RequestDispatcher does not propagate exceptions thrown from dispatched servlets, including JavaServer Pages, back to the servlet doing the dispatching. If you want the RequestDispatcher to throw exceptions back to the servlet doing the dispatching, add the com.ibm.ws.webcontainer.dispatcherRethrowSER custom property to the settings for the web container, and set the property to true.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.dispatcherRethrowSER | false |
When a JavaServer Page (JSP) file contains a compilation error, the runtime error is caught and handled directly by the container. Exceptions are not propagated and addressed by the dispatched JSP resource. With the com.ibm.ws.webcontainer.dispatcherRethrowSError custom property, exceptions are propagated back to the dispatched JSP resource.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.dispatcherRethrowSError | false |
The com.ibm.ws.webcontainer.donotservebyclassname custom property specifies a list of classes that cannot be served by the class name.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.donotservebyclassname | none |
Value | Servlet Path value | PathInfo value |
---|---|---|
true | Set to the contents of the URI after the Context Path | Set to a null value |
false (Default) | Set to an empty string | Set based on the contents of the URI after the Context Path |
The matched error-code page is always returned even if there is also a matching exception type error page defined in the web.xml file. To have the Web container search and use the exception-type before the error-code, set this property to true.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.enableErrorExceptionTypeFirst | false |
Specify this property if you want to allow the keyword j_security_check to be used as part of the name of a resource. Typically, if a URI contains the keyword j_security_check the login process is initiated.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.enableExactMatchJSecurityCheck | false |
When a url-pattern is defined in the jsp-property-group of the web.xml, file, it is typically mapped to, and handled by the JavaServer Page (JSP) engine. If you have applications that must override this mapping so that they can handle and serve the JSP content themselves, set the com.ibm.ws.webcontainer.enableJspMappingOverride property to true.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.enableJspMappingOverride | false |
Set the com.ibm.ws.webcontainer.enableMultiReadOfPostData custom property to true if you want to enable multiple reads of post data. When this property is set to true, the post data can be read multiple times as either an InputStream or Reader, and as parameters.
If either the first or third action does not occur, the next read of the post data is not reset to the beginning of that data.
The web container automatically completes this sequence if an application re-reads the post data as parameters.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.enableMultiReadOfPostData | false |
trusthostheaderport = true com.ibm.ws.webcontainer.extractHostHeaderPort = true
Or you can set these properties as web container custom properties in the administrative console using the following two sets of name-value pairs:
Name | Default value |
---|---|
com.ibm.ws.webcontainer.extractHostHeaderPort | false |
trusthostheaderport | false |
Use the com.ibm.ws.webcontainer.finishresponseonclose custom property to indicate that you want the web container to close a connection when a servlet calls close() on a writer or output stream.
Typically, when a servlet calls close() on a writer or output stream, the web container sends the data that has been written to the writer or output stream to the client, and then waits for the servlet service() method to finish before it closes the connection. This delay might be interpreted as a response completion delay, especially if a servlet service() method does not complete until sometime after the writer or output stream is closed.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.finishresponseonclose | false |
Name | Default value |
---|---|
com.ibm.ws.webcontainer.ForceDifferentCookiePaths | false |
com.ibm.ws.webcontainer.HTTPOnlyCookies=* com.ibm.ws.webcontainer.HTTPOnlyCookies=cookieName1,Account3Cookie,JsessionID
Name | Default value |
---|---|
com.ibm.ws.webcontainer.HTTPOnlyCookies | none |
If a resource or Enterprise JavaBeans (EJB) injection fails during the servlet initialization process, an error message is written to the server log files. However, the error message is not propagated to the client. In addition, the servlet is put into service and it is not reinitialized until its application is restarted. During this time, if a request is received that references the resource, which previously failed to inject, a NullPointerException exception results. Similarly, this problem can occur during the filter and listener initialization processes.
The com.ibm.ws.webcontainer.ignoreinjectionfailure custom property enables you to specify whether to propagate these error messages and whether to put a servlet into service. By default, the custom property is set to false, which retains the previously described behavior. To enable the propagation of these injection exceptions to the client and to not put the servlet into service, you must leave this custom property set to false.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.ignoreinjectionfailure | false |
When the web container encounters an encoding character in a query string pair that is not valid, it throws an IllegalArgumentException exception and, by default, ignores the entire query string. In applications where every field in the query string is an essential resource, it might not be desirable to ignore the entire query string. If you set the com.ibm.ws.webcontainer.ignoreInvalidQueryString custom property to true, the web container ignores query string pairs that are not valid and continues to process valid query string pairs.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.ignoreInvalidQueryString | false |
The web container accesses a session for the static file requests involving filters. This action can result in a performance degradation, for example, when running with database session persistence. If you set the com.ibm.ws.webcontainer.IgnoreSessiononStaticFileRequest custom property to true, the web container cannot access a session for the static files requests involving filters.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.IgnoreSessiononStaticFileRequest | false |
The com.ibm.ws.webcontainer.invokeFilterInitAtStartup custom property enables the web container to invoke the init method and initialize a filter during the startup process for an application.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.invokeFilterInitAtStartup | false |
You might need to use a custom servlet filter with web applications to map files from a one URI to another URI that points to a particular resource. For example, you might map URIs that start with my_company to the my_company/external directory. Without enabling the com.ibm.ws.webcontainer.invokeFiltersCompatibility custom property, the web container does not call any custom servlet filters.
When this custom property is set to true, 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.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.invokeFiltersCompatibility | false |
If a web application has defined the listener in the web deployment descriptor xml file, then you must set the com.ibm.ws.webcontainer.invokerequestlistenerforfilter custom property to true to have ServletRequestListener invoked when a request is about to enter the filter for that web application.
According to the Java Servlet Specification, a ServletRequestListener should be invoked if a request is about to enter the filter for a web application that has defined the listener in the web deployment descriptor xml file.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.invokerequestlistenerforfilter | false |
This property indicates whether post data is available to read after the client response is completed, following either the completion of a forward request completes, or a return from a sendRedirect. If this property is set to true, post data is available to read after the client response is completed either after a forward request completes, which is the default behavior, or on a return from a sendRedirect,, which occurs when the com.ibm.ws.webcontainer.SendResponseToClientAsPartOfSendRedirect custom property is set to true. However, setting this property to true requires unread post data to be held in memory until the target resource completes, and increases memory usage.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.KeepUnreadPostDataAfterResponseSentToClient | false |
Setting this property to true turns on logging.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.logServletContainerInitializerClassloadingErrors | false |
When processing a request, the web container recognizes servlet mappings to "*" as the same as servlet mappings to "/*". To provide the same behavior with filter mapping, set the com.ibm.ws.webcontainer.mapFiltersToAsterisk custom property to true. Setting the com.ibm.ws.webcontainer.mapFiltersToAsterisk custom property to true causes the web container to recognize filter mappings to "*" as a filter mapping to "/*". This custom property is not case-sensitive.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.mapFiltersToAsterisk | false |
When this property is set to true, the web container returns a 304 response if the If-Modified-Since timestamp of the requested variant is newer than the timestamp of the target variant.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.ModifiedSinceLaterThanFileTimeStamp | false |
Typically, request URI 404 errors do not occur if a request URI is submitted from a browser, because most modern browsers automatically normalizes a request URI before calling WebSphere® Application Server. Therefore, by default, the web container does not normalize a request URI before trying to resolve that URI to an application and servlet mapping.
A request URI, that includes /./ or /../ as part of an application context, that has not been normalized, might fail with a 404 error. Similarly, a request URI, that includes /./" or /../ as part of a servlet path, that has not been normalized, fails to match a servlet mapping, which also results in a 404 error, even though the URI is normalized before resolving the URI to a JavaServer Pages (JSP) or static file.
You can set the com.ibm.ws.webcontainer.normalizerequesturi custom property to true and the web container normalizes these types of request URIs.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.normalizerequesturi | false |
If the web container attempts to process a request that includes UTF-8 post data that is not URL encoded, the target resource accesses the post data as parameters. However, the UTF-8 data is not decoded correctly and the result data might be lost.
To resolve this issue, set the com.ibm.ws.webcontainer.parseUTF8PostData custom property to true. When the web container processes parameters, it detects UTF-8 post data that is not URL encoded and includes the data in the parameter values.
To use this function, you must set the value to true.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.parseUTF8PostData | false |
Typically, when a request is initially sent to the context root of the application, the request is forwarded to a welcome file. If a query string is included in an initial request, it is unavailable to the welcome file if you included the request.getQueryString() attribute in the welcome file. However, the query string is available to the welcome file if you included the javax.servlet.forward.query_string attribute in the welcome file.
If you must use the request.getQueryString() attribute, instead of the javax.servlet.forward.query_string attribute, to make the query string available to the welcome file, add the com.ibm.ws.webcontainer.provideQStringToWelcomeFile custom property to your web container configuration and set the property to true.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.provideQStringToWelcomeFile | false |
This property indicates whether a response is completed as part of a a sendRedirect request. If this property is set to true, a response is completed as part of a sendRedirect request, and any post data associated with the request is not available for a read on return from sendRedirect.
The default value is false.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.SendResponseToClientAsPartOfSendRedirect | false |
This property indicates whether a response is completed on return from a forward request.
If this property is set to false, a response is not completed on return from a forward request. Instead, it is delayed until the target resource completes. Post data is available for a read after the forward completes.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.SendResponseToClientAsPartOfSendRedirect | true |
When autoResponseEncoding is enabled or when the com.ibm.ws.webcontainer.contentTypeCompatibility property is set, the application server sets the content type of the response using an internal method. To enable setting the content-type using the ServletResponse.setContentType method instead, you need to set the com.ibm.ws.webcontainer.setcontenttypebysetheader custom property to false.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.setcontenttypebysetheader | true |
Typically, the first time the web container handles a request for a static welcome page that is not a JavaServer Pages (JSP) file, the web container does not search the ExtendedDocumentRoot for the welcome file unless the request for that welcome file is fully-qualified. If the request is fully-qualified, the web container serves the welcome file, and the context root of the application displays the welcome file. If the request for the static welcome file is not fully-qualified, the web container returns a 404 error, which indicates that the web container did not find the welcome file.
After the web container successfully serves a welcome file, the web container creates a mapping for that welcome file. The web container then uses this mapping to handle future requests for the welcome file, thereby eliminating the need for subsequent requests to be fully-qualified.
If you want the web container to always search an application defined ExtendedDocumentRoot for a welcome file, even if the request is not fully-qualified, you can add the com.ibm.ws.webcontainer.ServeWelcomeFileFromExtendedDocumentRoot custom property to your web container settings, and set this property to true.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.ServeWelcomeFileFromExtendedDocumentRoot | false |
By default, when an application is stopped the web container waits up to 60 seconds for each active request for a resource of that application to complete. You can now define the com.ibm.ws.webcontainer.ServletDestroyWaitTime web container custom property to control the amount of time that the web container waits for an active request to complete when the owning application is stopped.
Set the com.ibm.ws.webcontainer.ServletDestroyWaitTime custom property to an integer value, which specifies the number of seconds to wait for a request to complete. The default value is 60 seconds.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.ServletDestroyWaitTime | 60 |
Typically, the web container encodes the specified error messages before formatting them, to prevent Cross-Site Scripting (XSS) attacks on the client if the application does not sanitize these messages. However the Java Servlet Specification for the sendError(int, String) method, indicates that the server should create the response to look like an HTML-formatted server error page.
If you do not want the web container to encode the specified error messages before formatting them, add the com.ibm.ws.webcontainer.setUnencodedHTMLinsendError custom property to your web container configuration settings, and set the property to true.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.setUnencodedHTMLinsendError | false |
The com.ibm.ws.webcontainer.suppressheadersinrequest custom property can be used to suppress the inclusion of request headers that start with special characters, such as "$" or "_". Some applications do not handle request headers that start with special characters.
The value specified for this custom property is a delimited list of the header prefixes that you want to be suppressed.
Example:
com.ibm.ws.webcontainer.suppressheadersinrequest=$WS,_WS
Name | Default value |
---|---|
com.ibm.ws.webcontainer.suppressheadersinrequest | none |
During a recursive error that an application-specified error page cannot handle, the stack trace and error message are output as an HTML page. This information includes class names and program information that the application developer does not want expose to the user.
You can set the com.ibm.ws.webcontainer.suppressHtmlRecursiveErrorOutput web container custom property to suppress the HTML output of the error text, without changing the internal logging of the message. Set the custom property com.ibm.ws. webcontainer.suppressHtmlRecursiveErrorOutput to true to disable the HTML output of the error message to the user and present the user with blank page with a 500 error code.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.suppressHtmlRecursiveErrorOutput | false |
Typically, the last zero byte chunk is used to indicate, to a client, the end of the response data in a chunked encoded transmission. Some applications use this last zero to determine when the response data is completely received, and they can start processing it. If an error occurs in the application after the response headers are sent, the last chunk of data is still sent to the client. The client might not realize that an error has occurred, and attempt to process incomplete data.
If you set the com.ibm.ws.webcontainer.suppressLastZeroBytePackage custom property to true, if an error occurs in the application after the response headers are sent, the last chunk of data is not sent to the client.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.suppressLastZeroBytePackage | false |
If a servlet creates an exception, it is logged to the system console. If you do not want the web container to log servlet- created exceptions, add the com.ibm.ws.webcontainer.suppressServletExceptionLogging custom property to the web container configuration settings, and set the property to true.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.suppressServletExceptionLogging | false |
Set the com.ibm.ws.webcontainer.throwMissingJspException custom property to true to create a FileNotFoundException when a resource that is included by a JSP file is missing. If this property is not set to true, an error page displays.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.throwMissingJspException | false |
Error message SRVE0017W states "Web Group not found: {0}", and error message SRVE0255 states "A WebGroup/Virtual Host to handle {0} has not been defined". These messages might be returned when the application that is called to process the request serviced by IBM® WebSphere Application Server is not found. You can use the com.ibm.ws.webcontainer.webgroupvhostnotfound custom property to change the text of these messages to text that is more suitable for your environment.
Name | Default value |
---|---|
com.ibm.ws.webcontainer.webgroupvhostnotfound | none |
Name | Default value |
---|---|
com.ibm.ws.webcontainer.xPoweredBy | Servlet/3.0 |
Set the com.ibm.wsspi.jsp.convertAttrValueToString web container custom property to true to convert start and end attributes of the repeat tag to strings before they are used.
Name | Default value |
---|---|
com.ibm.wsspi.jsp.convertAttrValueToString | false |
Set the com.ibm.wsspi.jsp.disableElCache web container custom property to true to disable the commons-el expression cache if you are experiencing out of memory conditions because the hash maps are held by the expression evaluator.
Name | Default value |
---|---|
com.ibm.wsspi.jsp.disableElCache | false |
The resource injection feature accesses resources in applications differently than it did in earlier versions of the product, and causes the compiled method output to be larger than it was previously. If you have large JSP files that in earlier releases pushed the 65535 byte limit in the translated service method, they might now exceed this limit, causing the compile to fail.
If you encounter this situation, you can either break a large JSP file into smaller JSP files, and use <jsp:include> statements to combine them after they are compiled, or you can add the com.ibm.wsspi.jsp.disableResourceInjection custom property to your web container settings to disable the resource injection function during the JSP translation process. When the com.ibm.wsspi.jsp.disableResourceInjection custom property is set to true, the resource injection function is disabled for all applications.
If you only want to disable the resource injection function for specific applications, you can add the disableResourceInjection JSP attribute to the ibm-web-ext.xmi files for those specific applications.
Name | Default value |
---|---|
com.ibm.wsspi.jsp.disableResourceInjection | false |
The com.ibm.wsspi.jsp.disableTldSearch custom property can be used to improve application startup time. By default, when an application starts, the JSP engine searches the application installation directories for the taglib descriptor (TLD) files. This search process might increase the startup time for large applications with many files and directories. To disable this search process, set this property to true.
Name | Default value |
---|---|
com.ibm.wsspi.jsp.disableTldSearch | false |
Set the com.ibm.wsspi.jsp.enabledoublequotesdecoding web container custom property to decode an encoded double quote character if it is embedded in a script function within a JavaServer Pages (JSP) file.
The JSP Container does not decode an encoded double quote character during the translation of a JSP file. Instead, there is a dependency on the browser to decode it. However, when an encoded double quote character exists inside a script function of a tag, the browser cannot decode it. Thus, when this custom property is not set, the encoded double quote character causes the script function to malfunction.
When you set this custom property, the value affects all of your deployed applications. If you want to affect an individual application, set the enableDoubleQuotesDecoding JSP attribute to true within the ibm-web-ext.xmi file in your application.
Name | Default value |
---|---|
com.ibm.wsspi.jsp.enabledoublequotesdecoding | false |
The DebugSessionCrossover custom property enables code to perform additional checks to verify that only the session associated with the request is accessed or referenced. Messages are logged if any discrepancies are detected.
To enable session data crossover detection, set this property to true
Name | Default value |
---|---|
DebugSessionCrossover | false |
Refer to the HTTP session problems article for additional information.
The UTF-8 encoded URL feature, which provides UTF-8 encoded Uniform Resource Locators (URLs) to support the double-byte characters in URLs is enabled by default. You can prevent the web container from explicitly decoding URLs in UTF-8 and have them use the ISO-8859 standard as per the current HTTP specification by by setting this custom property to false.
Name | Default value |
---|---|
DecodeUrlAsUTF8 | true |
Use the enableInProcessConnections custom property to reduce response times and to reduce the number of threads that are used to service a request, which reduces the potential for a deadlock.
There is an optimized communication path between a web services client application and a web container that are located in the same application server process. Requests from the web services client that are normally sent to the web container using a network connection are delivered directly to the web container using an optimized local path. The local path is available because the web services client application and the web container are running in the same process. This optimized communication path is disabled by default. Before enabling this property, make sure that wild cards are not specified for the web container ports. Use specific ports for the web container when the optimized communication path is enabled.
To enable the optimized communication path, set this property to true.
Name | Default value |
---|---|
enableInProcessConnections | false |
Refer to the Web services client to web container optimized communication topic for additional information.
fileServingEnabled, directoryBrowsingEnabled, and similar properties are global settings for internal servlets. Web application archive (WAR) files that are packaged using third-party tools cannot specify behavior for the services that are exposed by the web container internal servlets.
Name | Default value |
---|---|
fileServingEnabled | true |
directoryBrowsingEnabled | false |
serveServletsByClassnameEnabled | false |
Settings that are defined in an assembly tool take precedence over the global settings that are set through the custom properties at the web container level.
Web application deployment extensions continue to hold configuration information for the services that are provided by the internal servlets, and take precedence over the global settings that are set through the custom properties at the web container level.
Newly-generated session IDs are, by default, 23 characters in length, unless you use the HttpSessionIdLength custom property to specify a different maximum length for your session IDs.
When an incoming request has a session ID that is longer than the expected session ID length, and whose prefix is identical to a pre-existing session ID, the longer ID is used to return a new session. If the length of the session ID on the incoming request is larger then the maximum length specified for your system, such that it exceeds the width of the ID column in the session table column that is used in database persistence, an SQL0302 error occurs.
To prevent the occurrence of these SQL0302 errors, you can add the ForceSessionIdLengthCheck custom property to your web container custom properties and set it to true. When this custom property is set to true, the length of a session ID cannot exceed 23 characters. If an incoming request has a session ID that is longer than 23 characters, the first 23 characters are used to return a new session.
Name | Default value |
---|---|
ForceSessionIdLengthCheck | false |
The ForceSessionInvalidationMultiple custom property indicates whether the session manager should wait indefinitely for a request to complete before attempting to invalidate the session, or attempt to invalidate a session after the specified time limit has elapsed.
If your requests normally are not bound by a response time limit, specify 0 for this property.
If you want to invalidate your sessions after a certain amount of time has elapsed, specify the appropriate positive integer for this property.
Name | Default value |
---|---|
ForceSessionInvalidationMultiple | 1 |
The custom property httpsIndicatorHeader manages HTTPS requests that are forwarded to an application server from an SSL offloader that is used in front of WebSphere Application Server. When an HTTPS request is received by an SSL offloader it is redirected over HTTP to an application server using WebSphere Application Server. The SSL offloader adds a header indicating the original request was over HTTP. The httpsIndicatorHeader property specifies the request header key name added by the SSL box. The application server checks this indicator to determine if SSL is required. If it determines the request is SSL over HTTP, an HTTPS scheme is chosen.
Name | Default value |
---|---|
httpsIndicatorHeader | none |
The custom property HttpSessionIdReuse determines whether the session manager can use the session ID sent from a browser to preserve session data across web applications that are running in an environment that is not configured for session persistence. In a multi-JVM environment, that is not configured for session persistence, setting this property to true enables the session manager to use the same session information for all of a user requests, even if the web applications that are handling these requests are governed by different JVM files. The default value for this property is false.
To enable the session manager to use the session ID sent from a browser to preserve session data across web applications that are running in an environment that is not configured for session persistence, set this property to true.
Name | Default value |
---|---|
HttpSessionIdReuse | false |
The servlet specification supports applications registering listeners for servlet-related events on an individual application basis through the web.xml descriptor. However, using the listeners custom property, you can enable a server to listen to servlet events across web applications.
listeners=listener_class
Name | Default value |
---|---|
listeners | none |
The value for this property is a string, specifying a comma-separated list of listener classes. The listener that is supplied must implement standard listener classes from the Java Servlet API or IBM listener extension classes.
WebSphere Application Server 5.x supports Uniform Resource Locators (URLs) without leading front slashes ( / ) . To preserve compatibility, you can set this custom property to true. When this property is set to true, the web container ignores the specification and consider URLs without the leading front slash, use the following name-value pair.
Name | Default value |
---|---|
prependSlashToResource | false |
The trusted custom property enables the application server to use inbound private headers from the web server plug-in. These inbound private headers notify the application server about the connection to the web server. When you set the custom property to true, the application server uses the asserted information on the client certificates. These client certificates are used by the end user to connect to the web server and establish the client information, which is treated as the certificate for the end user. Then, the application server uses the certificate information for authentication purposes when client certificate authentication is used or when the application code accesses the javax.net.ssl.peer_certificates certificates. Because this information is asserted, it is insecure and potentially vulnerable to an attacker that is able to connect directly to the application server and bypass the web server.
Name | Default value |
---|---|
trusted | true |