myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jesse Collins (JIRA)" <...@myfaces.apache.org>
Subject [jira] [Commented] (MYFACES-3104) MyFaces 2 with EL 2.2 in Websphere 7
Date Thu, 01 Nov 2012 19:57:12 GMT

    [ https://issues.apache.org/jira/browse/MYFACES-3104?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13488975#comment-13488975
] 

Jesse Collins commented on MYFACES-3104:
----------------------------------------

Thanks Mark!

I'm sorry for the confusion.  I didn't mean to ask if resources should go through the whole
JSF lifecycle (validation, etc.) - I agree that doesn't make sense.  Rather I was trying to
ask why facelets.BUFFER_SIZE wasn't being used for the resources.

IBM was under the impression that the resources were not being handled by the MyFaces ResourceHandler
because of what they saw in the trace we sent.  So, to make sure the MyFaces ResourceHandler
is being used I added "<resource-handler>org.apache.myfaces.application.ResourceHandlerImpl</resource-handler>"
to my faces-config.xml:

	<application>
		<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
		<resource-handler>org.apache.myfaces.application.ResourceHandlerImpl</resource-handler>
	</application>

But, I still have the same "WARNING: Cannot set header. Response already committed." message.

After looking at the code for org.apache.myfaces.application.ResourceHandlerImpl.handleResourceRequest(FacesContext
facesContext) I see that a static buffer size (_BUFFER_SIZE) of 2048 is used.

I then compared this to Mojarra's Resource Handler com.sun.faces.application.resource.ResourceHandlerImpl.handleResourceRequest(FacesContext
context) which sets the the buffer size to the value of the Web Context Parameter "com.sun.faces.resourceBufferSize"
which defaults to 2048.

A while back we were using Mojarra and we could prevent the "WARNING: Cannot set header. Response
already committed." message in our logs by setting the following:

	<context-param>
		<param-name>com.sun.faces.resourceBufferSize</param-name>
		<param-value>32768</param-value>
	</context-param>

So, I think that MyFaces should have something similar and allow the buffer size used for
resources to be overwritten from the default 2048.

If this sounds good, I can create another Jira Issue for this request (since this issue in
particular is outside of the original EL 2.2 issue on WebSphere 7) and the specifics can be
discussed (i.e. should the Web Context Parameter "facelets.BUFFER_SIZE" be used or should
another Web Context Parameter be added, etc.).

Please let me know.
                
> MyFaces 2 with EL 2.2 in Websphere 7
> ------------------------------------
>
>                 Key: MYFACES-3104
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3104
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: General
>    Affects Versions: 2.0.4
>         Environment: WebSphere Platform 7.0.0.13
> Host Operating System is Windows XP, version 5.1 build 2600 Service Pack 3
> Java version = 1.6.0, Java Compiler = j9jit24, Java VM name = IBM J9 VM
> Servlet API : 2.5
> JSP API : 2.1
>            Reporter: mansour
>         Attachments: MyFacesEL2Sample_was7.zip
>
>
> We have followed your documentation on the wiki in order to enable EL 2.2 (http://wiki.apache.org/myfaces/HowToEnableEl22),
it doesn't work on Websphere 7. 
> - we have added the 2 jars (el-api-2.2.jar and el-impl-2.2.jar from Glassfish implementation)
in th classpath of the web application
> - we have configured the web.xml like this :
>           <context-param>
>               <param-name>org.apache.myfaces.EXPRESSION_FACTORY</param-name>
>               <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
>           </context-param>
>           [...]
>           <listener>
>               <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
>           </listener>
> The web application starts without errors,
> Problem :
> 1) When the web application starts we have this first exception :
> [04/04/11 11:24:39:136 CEST] 0000000a DefaultFacesC I   Reading standard config META-INF/standard-faces-config.xml
> [04/04/11 11:24:39:277 CEST] 0000000a DefaultFacesC I   Reading config /WEB-INF/faces-config.xml
> [04/04/11 11:24:39:823 CEST] 0000000a ExternalSpeci I   MyFaces Bean Validation support
disabled
> [04/04/11 11:24:39:855 CEST] 0000000a ApplicationIm I   Couldn't discover the current
project stage, using Production
> [04/04/11 11:24:39:855 CEST] 0000000a FacesConfigur I   Serialization provider : class
org.apache.myfaces.shared_impl.util.serial.DefaultSerialFactory
> [04/04/11 11:24:39:855 CEST] 0000000a DefaultLifecy I   Using LifecycleProvider org.apache.myfaces.config.annotation.AllAnnotationLifecycleProvider
> [04/04/11 11:24:39:933 CEST] 0000000a FfdcProvider  W com.ibm.ws.ffdc.impl.FfdcProvider
logIncident FFDC1003I: Incident FFDC émis sur C:\IBM\SDP75\runtimes\base_v7\profiles\was70profile2\logs\ffdc\server1_48704870_11.04.04_11.24.39.8706071861720806063404.txt
com.ibm.ws.webcontainer.webapp.WebApp.notifyServletContextCreated 1341
> [04/04/11 11:24:39:933 CEST] 0000000a webapp        E com.ibm.ws.webcontainer.webapp.WebApp
notifyServletContextCreated SRVE0283E: Exception interceptée lors de l''initialisation du
contexte : {0}
>                                  java.lang.VerifyError: javax/servlet/jsp/JspApplicationContext.addELResolver(Ljavax/el/ELResolver;)V
> 	at org.apache.myfaces.webapp.Jsp21FacesInitializer.configureResolverForJSP(Jsp21FacesInitializer.java:123)
> 	at org.apache.myfaces.webapp.Jsp21FacesInitializer.initContainerIntegration(Jsp21FacesInitializer.java:77)
> 	at org.apache.myfaces.webapp.AbstractFacesInitializer.initFaces(AbstractFacesInitializer.java:126)
> 	at org.apache.myfaces.webapp.StartupServletContextListener.contextInitialized(StartupServletContextListener.java:111)
> 	at com.ibm.ws.webcontainer.webapp.WebApp.notifyServletContextCreated(WebApp.java:1681)
> 	at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinish(WebApp.java:374)
> 	at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:299)
> 	at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:100)
> 	at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:166)
> 	at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:731)
> 	at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:616)
> 	at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:376)
> 	at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:668)
> 	at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1122)
> 	at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1319)
> 	at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:609)
> 	at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:944)
> 	at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:725)
> 	at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2046)
> 	at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:439)
> 	at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123)
> 	at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:382)
> 	at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$300(CompositionUnitMgrImpl.java:110)
> 	at com.ibm.ws.runtime.component.CompositionUnitMgrImpl$CUInitializer.run(CompositionUnitMgrImpl.java:949)
> 	at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:349)
> 	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1563)
> 2) This second exception appears in the log :
> [04/04/11 11:24:53:436 CEST] 00000018 webapp        E com.ibm.ws.webcontainer.webapp.WebApp
notifyServletContextDestroyed SRVE0285E: Exception interceptée lors de la destruction du
contexte : {0}
>                                  java.lang.IllegalStateException: No Factories configured
for this Application. This happens if the faces-initialization does not work at all - make
sure that you properly include all configuration settings necessary for a basic faces application
and that all the necessary libs are included. Also check the logging output of your web application
and your container for any exceptions!
> If you did that and find nothing, the mistake might be due to the fact that you use some
special web-containers which do not support registering context-listeners via TLD files and
a context listener is not setup in your web.xml.
> A typical config looks like this;
> <listener>
>   <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
> </listener>
> 	at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:196)
>         [...]
> So can you tell us please how to configure EL 2.2 on Websphere 7 ?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message