Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to deploy the same WAR in both Jetty 10 and Jetty 12? #11266

Closed
vmassol opened this issue Jan 12, 2024 · 22 comments
Closed

How to deploy the same WAR in both Jetty 10 and Jetty 12? #11266

vmassol opened this issue Jan 12, 2024 · 22 comments
Assignees
Labels

Comments

@vmassol
Copy link

vmassol commented Jan 12, 2024

Hello,

At XWiki, we have a WAR with a jetty-web.xml. We're trying to add support for Jetty 12 (now that it supports EE8 too) but we're facing the issue that <Configure class="org.eclipse.jetty.webapp.WebAppContext"> doesn't work in Jetty 12.

To make it work we have to change it to <Configure class="org.eclipse.jetty.ee8.webapp.WebAppContext">.

However if we do this then our users won't be able to deploy XWiki in Jetty 10 anymore (for example).

Would you have a solution for this that doesn't involve making 2 WARs?

Thank you
-Vincent, XWiki dev

@joakime
Copy link
Contributor

joakime commented Jan 12, 2024

Interesting problem.
The quick solution would be to have an alternate named jetty-web.xml, something like jetty-ee8-web.xml, which has a priority in lookup in Jetty 12.

But considering that Jetty 10 is now at End of Community Support, why do you need Jetty 10 support still?

@vmassol
Copy link
Author

vmassol commented Jan 14, 2024

The quick solution would be to have an alternate named jetty-web.xml, something like jetty-ee8-web.xml, which has a priority in lookup in Jetty 12.

This doesn't exist yet, right? I was indeed looking for something like this :)

But considering that Jetty 10 is now at End of Community Support, why do you need Jetty 10 support still?

First, thanks for the info, I wasn't aware of that!

Till today, the version of Jetty that XWiki supports is Jetty 10 (see https://dev.xwiki.org/xwiki/bin/view/Community/SupportStrategy/ServletContainerSupportStrategy/). The reason is that XWiki was not able to upgrade to 11 since that would have meant removing the javax.servlet.* namespace and moving to the jakarta.servlet.* namespace and we're far from being able to do this. This is actually why, when I learnt that Jetty 12 was able to support EE8, that I wanted to see if we could make XWiki run on it and thus be able to support Jetty 12.

What we could do indeed, is only support Jetty 12 on our master branch (ie on our latest releases), and not on our LTS branch (which would still be on Jetty 10). Note: it would be too harsh to our users to ask them to move to Jetty 12 in a heartbeat. However, if we could support both Jetty 10.x and 12.x on all our branches, it would be even nicer.

We could provide several distributions of XWiki for the different Jetty versions, but that's a lot of work and support for us (we are already supporting other servlet engines, DBs, etc and the combination matrix is already bursting ;)).

So, my understanding, is that at this point in time, there's no solution to have a WAR with a jetty-web.xml be deployable both in Jetty 10.x and 12.x, correct?

Thx @joakime !

PS: When I say "supported version" above it means:

  • We have automated tests that execute on that Jetty version, to prove that XWiki works on that Jetty version.
  • If there are questions or issues reported for that version, we work on fixing them
  • We provide distributions of XWiki on Jetty for that version

@janbartel
Copy link
Contributor

@vmassol is this the jetty-web.xml file that your project uses here: https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-war/src/main/webapp/WEB-INF/jetty-web.xml

Is it only these 2 properties that you need to configure, or is there more?

@vmassol
Copy link
Author

vmassol commented Jan 15, 2024

Is it only these 2 properties that you need to configure, or is there more?

@janbartel indeed, there are only 2 properties we need to configure. Is there another way to configure them?

Thanks

joakime added a commit that referenced this issue Jan 15, 2024
…orm (content size / keys)

+ Allows these common configurations to be set via `WEB-INF/web.xml` without the need for a `WEB-INF/jetty-web.xml`

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
@joakime
Copy link
Contributor

joakime commented Jan 15, 2024

I submitted PR #11274 as a proof of concept for a possible way to address this.
Would like feedback (@janbartel @vmassol )

@vmassol
Copy link
Author

vmassol commented Jan 15, 2024

Thanks @joakime ! Do you think it's better to do it this way rather than add support for a jetty-web-ee8.xml file for example? I feel that it's a lot less powerful. For example back in Jetty 9.4.x we had to ask users to do the following: https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Installation/InstallationWAR/InstallationJetty/ (and that wouldn't be possible through web.xml).

Also, imagine we needed to have different values for Jetty 10.x and Jetty 12.x. How would be able to write it? I don't know if it would be possible with jetty.xml but it seems it could, based on https://www.eclipse.org/lists/jetty-dev/msg02544.html

Last point, it's quite nice to have everything related to jetty located in a single specific file like jetty-web.xml rather than mix jetty stuff with other stuff in web.xml(it would also need additional comment to explain it).

WDYT?

Thanks a lot for working on this, really appreciated, and whatever solution you propose will be fine :)

@joakime
Copy link
Contributor

joakime commented Jan 15, 2024

@vmassol all good points, and as a result I no longer like that PoC with context attributes.

@gregw
Copy link
Contributor

gregw commented Jan 15, 2024

Generally I think that jetty-web.xml is not a great way to configure anything.... but there are certainly use-cases like this one where it is the best option.
Thus no matter what, I think we should put in a version mechanism for jetty-web[[[-X].Y].Z].xml that will discover multiple files and then use some logic to work out which ones will be run and in which order.

Meanwhile, we should also think of other better ways to do this.

@janbartel
Copy link
Contributor

Generally I think that jetty-web.xml is not a great way to configure anything.... but there are certainly use-cases like this one where it is the best option. Thus no matter what, I think we should put in a version mechanism for jetty-web[[[-X].Y].Z].xml that will discover multiple files and then use some logic to work out which ones will be run and in which order.

Meanwhile, we should also think of other better ways to do this.

@gregw I would suggest an algorithm that closely matches what we are already doing with jetty-web.xml, which is to find a single file to apply based on this logic:

  • we look for a jetty8-web.xml
  • if not found we look for a jetty-web.xml
  • if not found we look for a web-jetty.xml

So I would suggest we do the following for ee8/9/10 and beyond:

  • look for a jetty-web-x.y.z.xml where x.y.z matches the executing version (eg 12.0.1)
  • if not found, look for a jetty-web-x.y.xml where x.y matches the most significant digits of the executing version (eg 12.0)
  • if not found, look for a jetty-web-x.xml where x matches the most significant digit of the executing version (eg 12)
  • if not found, look for jetty-web.xml

@joakime
Copy link
Contributor

joakime commented Jan 15, 2024

So I would suggest we do the following for ee8/9/10 and beyond:

  • look for a jetty-web-x.y.z.xml where x.y.z matches the executing version (eg 12.0.1)
  • if not found, look for a jetty-web-x.y.xml where x.y matches the most significant digits of the executing version (eg 12.0)
  • if not found, look for a jetty-web-x.xml where x matches the most significant digit of the executing version (eg 12)
  • if not found, look for jetty-web.xml

The environment needs to be there in the name too as key classes have different names.

@janbartel
Copy link
Contributor

So I would suggest we do the following for ee8/9/10 and beyond:

  • look for a jetty-web-x.y.z.xml where x.y.z matches the executing version (eg 12.0.1)
  • if not found, look for a jetty-web-x.y.xml where x.y matches the most significant digits of the executing version (eg 12.0)
  • if not found, look for a jetty-web-x.xml where x matches the most significant digit of the executing version (eg 12)
  • if not found, look for jetty-web.xml

The environment needs to be there in the name too as key classes have different names.

So the preferential search order would then be:

1 jetty-web-eeN-x.y.z.xml
2 jetty-web-eeN-x.y.xml
3 jetty-web-eeN-x.xml
4 jetty-web-eeN.xml
5 jetty-web-x.y.z.xml
6 jetty-web-x.y.xml
7 jetty-web-x.y.xml
8 jetty-web-x.xml
9 jetty-web.xml

@vmassol
Copy link
Author

vmassol commented Jan 16, 2024

That would be awesome, thanks everyone!

@vmassol
Copy link
Author

vmassol commented Jan 16, 2024

Note that items 6 and 7 are dups.

joakime added a commit that referenced this issue Jun 10, 2024
…orm (content size / keys)

* Allows these common configurations to be set via WEB-INF/web.xml without the need for a WEB-INF/jetty-web.xml
@joakime joakime self-assigned this Jun 10, 2024
@joakime joakime assigned janbartel and unassigned joakime Jul 24, 2024
@janbartel
Copy link
Contributor

@vmassol I'm closing this issue, as I believe we fixed this in jetty-12.1.x with #11752 and #11746 and then backported that to jetty-12.0.x with #11966. So AFAIK this is resolved, if not, please either reopen or open a fresh issue.

@vmassol
Copy link
Author

vmassol commented Jul 25, 2024

Thanks @janbartel ! I'll test it ASAP.

@vmassol
Copy link
Author

vmassol commented Aug 6, 2024

@janbartel I'm having some problem testing, it seems that using <Configure class="org.eclipse.jetty.ee8.webapp.WebAppContext"> in jetty-web.xmldoesn't work anymore in Jetty 12.0.12 (this is what I used when posting above at https://github.com/jetty/jetty.project/issues/11266#issue-2078327096). And indeed, I cannot find anyWebAppContext` class in https://github.com/jetty/jetty.project/tree/jetty-12.0.x/jetty-ee8/jetty-ee8-webapp/src/main (there's one for EE9 and EE10 but not EE8).

The code at #7638 (comment) seems to show a usage of it in ee8Loader.loadClass("org.eclipse.jetty.ee8.webapp.WebAppContext"). Maybe it was removed, what am I supposed to use nowadays in 12.0.12?

Note that the error I get is:

2024-08-06 15:05:15.240:WARN :oejx.XmlConfiguration:main: Unable to execute XmlConfiguration
java.lang.NoClassDefFoundError: org/eclipse/jetty/ee/WebAppClassLoading
        at org.eclipse.jetty.ee8.webapp.WebAppContext.<clinit>(WebAppContext.java:108)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.invokeMethod(XmlConfiguration.java:798)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.call(XmlConfiguration.java:1006)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.call(XmlConfiguration.java:971)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:529)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:482)
        at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:384)
        at org.eclipse.jetty.xml.XmlConfiguration.lambda$main$3(XmlConfiguration.java:1993)
        at org.eclipse.jetty.util.component.Environment.run(Environment.java:75)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:2007)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:312)
        at org.eclipse.jetty.start.Main.start(Main.java:610)
        at org.eclipse.jetty.start.Main.main(Main.java:82)
Caused by: 
java.lang.ClassNotFoundException: org.eclipse.jetty.ee.WebAppClassLoading
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:440)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        at org.eclipse.jetty.ee8.webapp.WebAppContext.<clinit>(WebAppContext.java:108)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.invokeMethod(XmlConfiguration.java:798)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.call(XmlConfiguration.java:1006)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.call(XmlConfiguration.java:971)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:529)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:482)
        at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:384)
        at org.eclipse.jetty.xml.XmlConfiguration.lambda$main$3(XmlConfiguration.java:1993)
        at org.eclipse.jetty.util.component.Environment.run(Environment.java:75)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:2007)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:312)
        at org.eclipse.jetty.start.Main.start(Main.java:610)
        at org.eclipse.jetty.start.Main.main(Main.java:82)
java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:312)
        at org.eclipse.jetty.start.Main.start(Main.java:610)
        at org.eclipse.jetty.start.Main.main(Main.java:82)
Caused by: java.lang.NoClassDefFoundError: org/eclipse/jetty/ee/WebAppClassLoading
        at org.eclipse.jetty.ee8.webapp.WebAppContext.<clinit>(WebAppContext.java:108)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.invokeMethod(XmlConfiguration.java:798)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.call(XmlConfiguration.java:1006)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.call(XmlConfiguration.java:971)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:529)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:482)
        at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:384)
        at org.eclipse.jetty.xml.XmlConfiguration.lambda$main$3(XmlConfiguration.java:1993)
        at org.eclipse.jetty.util.component.Environment.run(Environment.java:75)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:2007)
        ... 7 more
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.ee.WebAppClassLoading
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:440)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        ... 21 more
java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:312)
        at org.eclipse.jetty.start.Main.start(Main.java:610)
        at org.eclipse.jetty.start.Main.main(Main.java:82)
Caused by: java.lang.NoClassDefFoundError: org/eclipse/jetty/ee/WebAppClassLoading
        at org.eclipse.jetty.ee8.webapp.WebAppContext.<clinit>(WebAppContext.java:108)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.invokeMethod(XmlConfiguration.java:798)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.call(XmlConfiguration.java:1006)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.call(XmlConfiguration.java:971)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:529)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:482)
        at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:384)
        at org.eclipse.jetty.xml.XmlConfiguration.lambda$main$3(XmlConfiguration.java:1993)
        at org.eclipse.jetty.util.component.Environment.run(Environment.java:75)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:2007)
        ... 7 more
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.ee.WebAppClassLoading
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:440)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        ... 21 more

Usage: java -jar $JETTY_HOME/start.jar [options] [properties] [configs]
       java -jar $JETTY_HOME/start.jar --help  # for more information

Any idea? Thx a lot

@vmassol
Copy link
Author

vmassol commented Aug 6, 2024

Seems I'm missing a ee-webapp.mod. Fixing.

@vmassol
Copy link
Author

vmassol commented Aug 6, 2024

ok I think that org.eclipse.jetty.ee8.webapp.WebAppContext has been replaced by org.eclipse.jetty.ee.WebAppClassLoading between Jetty 12.0.5 and 12.0.12

@vmassol
Copy link
Author

vmassol commented Aug 6, 2024

@janbartel it seems my jetty-web-ee8.xml is not used for some reason in Jetty 12.0.12 (and it tries to load jetty-web.xml instead). It contains:

<Configure class="org.eclipse.jetty.ee8.webapp.WebAppContext">
  <!-- In order to avoid getting a "java.lang.IllegalStateException: Form too large" error when editing large page in
       XWiki we need to tell Jetty to allow for large content since by default it only allows for 20K. We do this by
       passing the "org.eclipse.jetty.server.Request.maxFormContentSize" attribute.
       Note 1: Setting this value too high can leave your server vulnerable to denial of service attacks.
       Note 2: We're setting it here instead of in Jetty's XML configuration files so that the XWiki WAR can be used
       in any Jetty config and work out of the box.
  -->
  <Set name="maxFormContentSize">1000000</Set>
  <!-- Increasing the maxFormKeys in order to be able to import correctly a full wiki (more than 1000 pages in 11.10).
       The import should be fixed at a point to allow importing everything without creating a form with a field by 
       page. Once done this configuration can be removed. See https://jira.xwiki.org/browse/XWIKI-11597 for a follow 
       up. 
  -->
  <Set name="maxFormKeys">2000</Set>
</Configure>

I get:

2024-08-06 18:31:00.411:WARN :oejew.JettyWebXmlConfiguration:main: Error applying file:///Users/vmassol/dev/xwiki/xwiki-platform/xwiki-platform-distribution/xwiki-platform-distribution-flavor/xwiki-platform-distribution-flavor-jetty-hsqldb/target/xwiki-platform-distribution-flavor-jetty-hsqldb-16.7.0-SNAPSHOT/webapps/xwiki/WEB-INF/jetty-web.xml
...
java.lang.ClassNotFoundException: org.eclipse.jetty.webapp.WebAppContext
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:440)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        at org.eclipse.jetty.ee8.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:391)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        at org.eclipse.jetty.util.Loader.loadClass(Loader.java:58)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.nodeClass(XmlConfiguration.java:491)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:431)
        at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:368)
        at org.eclipse.jetty.ee8.webapp.JettyWebXmlConfiguration.lambda$configure$0(JettyWebXmlConfiguration.java:68)
        at org.eclipse.jetty.ee8.webapp.WebAppClassLoader.runWithServerClassAccess(WebAppClassLoader.java:136)
        at org.eclipse.jetty.ee8.webapp.JettyWebXmlConfiguration.configure(JettyWebXmlConfiguration.java:67)
        at org.eclipse.jetty.ee8.webapp.Configurations.configure(Configurations.java:422)
        at org.eclipse.jetty.ee8.webapp.WebAppContext.configure(WebAppContext.java:485)
        at org.eclipse.jetty.ee8.webapp.WebAppContext.startContext(WebAppContext.java:1162)
        at org.eclipse.jetty.ee8.nested.ContextHandler.doStartInContext(ContextHandler.java:622)
        at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.call(ContextHandler.java:1440)
        at org.eclipse.jetty.ee8.nested.ContextHandler.doStart(ContextHandler.java:611)
        at org.eclipse.jetty.ee8.servlet.ServletContextHandler.doStart(ServletContextHandler.java:243)
        at org.eclipse.jetty.ee8.webapp.WebAppContext.doStart(WebAppContext.java:502)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:113)
        at org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:491)
        at org.eclipse.jetty.server.handler.ContextHandler.lambda$doStart$0(ContextHandler.java:754)
        at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.call(ContextHandler.java:1446)
        at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:754)
        at org.eclipse.jetty.ee8.nested.ContextHandler$CoreContextHandler.doStart(ContextHandler.java:2259)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
        at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:40)
        at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:183)
        at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:522)
        at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:162)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.pathAdded(ScanningAppProvider.java:293)
        at org.eclipse.jetty.deploy.providers.ContextProvider.pathAdded(ContextProvider.java:576)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.pathAdded(ScanningAppProvider.java:69)
        at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:902)
        at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:868)
        at org.eclipse.jetty.util.Scanner.scan(Scanner.java:775)
        at org.eclipse.jetty.util.Scanner.startScanning(Scanner.java:664)
        at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:636)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:120)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:264)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
        at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:592)
        at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:263)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
        at org.eclipse.jetty.server.Server.start(Server.java:624)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:120)
        at org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:491)
        at org.eclipse.jetty.server.Server.doStart(Server.java:565)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:2033)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:312)
        at org.eclipse.jetty.start.Main.start(Main.java:610)
        at org.eclipse.jetty.start.Main.main(Main.java:82)

Any idea? Thx

@janbartel
Copy link
Contributor

@vmassol ahhh, I think you're going by the suggested names in this issue. When it came to implementation, we chose slightly different name pattern to match all our other naming conventions, which is jetty-eeX-web.xml. So you need to call yours jetty-ee8-web.xml. I did document it here: https://jetty.org/docs/jetty/12/operations-guide/deploy/index.html#web-infjetty-ee8910-web-xml. Sorry for the confusion.

@vmassol
Copy link
Author

vmassol commented Aug 7, 2024

Thx @janbartel It works! Moving on to the next problem :)

@vmassol
Copy link
Author

vmassol commented Aug 7, 2024

All working now, thx again!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
No open projects
Status: ✅ Done
Development

No branches or pull requests

4 participants