[
https://issues.apache.org/jira/browse/FELIX-6599?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17699558#comment-17699558
]
Antoine DESSAIGNE commented on FELIX-6599:
------------------------------------------
Hello [~cziegeler],
It looks like it still doesn't work. The {{org.apache.felix.http.jetty}} jar
inlines the {{org.apache.felix.http.base}} jar, so it fails loading
{{org.apache.felix.http.base.internal.dispatch.HttpServletMappingImpl}} because
there are 2 imports from {{javax.servlet}} 4.0.
Here's the stack trace we have
{noformat}
2023-03-13 11:33:38,903 [qtp712325821-1883] WARN
org.eclipse.jetty.server.HttpChannel - /favicon.ico
java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletMapping
at
org.apache.felix.http.base.internal.dispatch.Dispatcher$1.doFilter(Dispatcher.java:139)
~[?:?]
at
org.apache.felix.http.base.internal.whiteboard.WhiteboardManager.invokePreprocessors(WhiteboardManager.java:986)
~[?:?]
at
org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:94)
~[?:?]
at
org.apache.felix.http.base.internal.dispatch.DispatcherServlet.service(DispatcherServlet.java:49)
~[?:?]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
~[javax.servlet-api-3.1.0.jar:3.1.0]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
~[?:?]
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:554)
~[?:?]
...
{noformat}
What do you think? Thank you for your help.
> javax.servlet incompatibility between Felix HTTP Jetty Light 4.2.8 and Jetty
> 9.4.x
> ----------------------------------------------------------------------------------
>
> Key: FELIX-6599
> URL: https://issues.apache.org/jira/browse/FELIX-6599
> Project: Felix
> Issue Type: Bug
> Components: HTTP Service
> Affects Versions: http.jetty-4.2.8
> Reporter: Antoine DESSAIGNE
> Assignee: Carsten Ziegeler
> Priority: Major
> Fix For: http.jetty-4.2.10, http.base-4.2.6, http.bridge-4.2.8
>
>
> Hello everyone,
> We detected what looks like an inconsistency in Felix HTTP Jetty Light 4.2.8
> (where Jetty is an external jar and not inlined).
> In the {{MANIFEST.MF}} file we can see
> {noformat}
> Import-Package:
> javax.servlet.descriptor;version="[3.1,4)"
> javax.servlet.http;version="[3.1,4)"
> javax.servlet;version="[3.1,4)"
> ...
> Require-Capability:
> osgi.contract;filter:="(&(osgi.contract=JavaServlet)(version=4.0))",osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
> {noformat}
> So it asks for {{javax.servlet}} in version range [3.1,4) but ask for a 4.0
> Java Servlet capability. Unfortunately
> {{org.apache.felix.http.base.internal.registry.PathResolverFactory}} uses
> {{javax.servlet.http.MappingMatch}} which is only available starting in 4.0.
> Felix HTTP Jetty Light uses Jetty 9.4.50.v20221201 which requires
> {{javax.servlet}} in version range [3.1,4).
> So it looks like in the 4.2.x branch, {{javax.servlet}} should be in 3.1.0
> and {{javax.servlet.http.MappingMatch}} should not be used. Am I right or is
> there something I did wrong?
> Thank you for your help
--
This message was sent by Atlassian Jira
(v8.20.10#820010)