ops4j / org.ops4j.pax.web

OSGi R7 Http Service, Whiteboard and Web Applications (OSGi CMPN Release chapters 102, 140 and 128) implementation using Jetty 9, Tomcat 9 or Undertow 2.
https://ops4j1.jira.com/wiki/display/paxweb/Pax+Web
Other
144 stars 183 forks source link

Separate javax.el from Pax-Web-JSP bundle [PAXWEB-929] #1209

Closed ops4j-issues closed 8 years ago

ops4j-issues commented 8 years ago

Achim Nierbeck created PAXWEB-929


Affects: 6.0.0 Fixed in: 6.0.0 Votes: 0, Watches: 2


Referenced issues

blocks:

is duplicated by:

ops4j-issues commented 8 years ago

Achim Nierbeck commented

The extraction of javax.el from the jsp bundle leads to a

javax.el.ELException: Provider com.sun.el.ExpressionFactoryImpl not found
    at javax.el.FactoryFinder.newInstance(FactoryFinder.java:101)
    at javax.el.FactoryFinder.find(FactoryFinder.java:197)
    at javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:189)
ops4j-issues commented 8 years ago

Achim Nierbeck commented

to worsen this, the Tomcat Jasper needs specific classes which are only available to the Tomcat own EL javax.el:

2015-12-22 11:40:30.189:WARN:oejs.ServletHandler:qtp199266917-56: 
javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/el/StaticFieldELResolver
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:349)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.ops4j.pax.web.jsp.JspServletWrapper$2.call(JspServletWrapper.java:159)
ops4j-issues commented 8 years ago

Achim Nierbeck commented

First tests in a special branch:
https://github.com/ops4j/org.ops4j.pax.web/commit/dbf133b85e14247de6c0752b19318c30196ea737

ops4j-issues commented 8 years ago

Achim Nierbeck commented

The missing class is part of javax.el-api 3.0.
Now the fun really starts, MyFaces requires javax.el in version < 3, so actually JSP/JSF and EL ist totally broken right now. It's merely not possible to get this stuff to work together ...

ops4j-issues commented 8 years ago

Achim Nierbeck commented

To finally fix this issue, it's essential to have MyFaces fixed with an increased version range:
https://issues.apache.org/jira/browse/MYFACES-4027

ops4j-issues commented 8 years ago

Achim Nierbeck commented

works in special PAXWEB-929 branch:
https://github.com/ops4j/org.ops4j.pax.web/commit/5b604b54435979e7894a472c132d9b9b4355285a

ops4j-issues commented 8 years ago

Achim Nierbeck commented

merged back into master:
https://github.com/ops4j/org.ops4j.pax.web/commit/dbf133b85e14247de6c0752b19318c30196ea737

ops4j-issues commented 7 years ago

Marc Schlegel commented

I am trying to enable the JSF-tests for Tomcat which were blocked by this issue (see PAXWEB-993 ).

First, I got javax.el.ELException: Provider com.sun.el.ExpressionFactoryImpl not found which can be fixed by importing org.apache.el in the actual WAB. Only then the Service-Locator specified in pax-web-jsp can load the class. This import is not necessary for jetty, nor undertow.

Once this got fixed, the application is still not accessible though log-messages are locking fine. I've commited a branch with the 2 tests enabled again.