Igal,
You can try simply putting:
webapp.setDefaultsDescriptor("resource/web.xml"). At runtime jetty will
ask the classloader to load the resource with that name, and as this
resource is presumably on the container classpath it should be found. For
example, jetty's default value for the default descriptor is
"org/eclipse/jetty/webapp/webdefault.xml", which exists in the
jetty-webapp.jar on the container classpath.
Jan
On 14 July 2017 at 07:24, Igal @ Lucee.org <[email protected]> wrote:
> Hi Edmond,
>
> What happens when you run it on a Linux system? I see the windows path in
> the exception, any chance it has something to do with that?
>
>
> I haven't tried to run it on Linux. This is my development machine and
> I'm running the embedded Jetty inside IntelliJ IDEA IDE. It will take me
> some time to set up the whole thing on a Linux machine, but if I can help
> troubleshoot the elusive Windows bug in any way then I'd love to help.
>
> Please note that the first context loads fine, but the second one fails.
> I will try to add a 3rd context tomorrow and see if it also fails.
>
> Best,
>
> Igal Sapir
> Lucee Core Developer
> Lucee.org <http://lucee.org/>
> On 7/13/2017 8:40 PM, Edmond Kemokai wrote:
>
>
> Igal,
>
> What happens when you run it on a Linux system? I see the windows path in
> the exception, any chance it has something to do with that?
>
>
> There is a bug with dynamic context loading on windows that has been
> around forever, despite multiple claims of fixes it has never been fixed.
> This is not a jetty specific issue, seems to do with the common
> implementation of dynamic context loading on windows.
>
> On Jul 13, 2017 9:11 PM, "Igal @ Lucee.org" <[email protected]> wrote:
>
>> Joakim,
>>
>> Thank you for replying.
>>
>> I tried that and it works for the first context, but for some reason for
>> the second one I get the following error:
>>
>> 2017-07-13 18:05:34.217:WARN:oejw.WebAppContext:main: Failed startup of
>> context o.e.j.w.WebAppContext@62d363ab{/,file:///E:/Workspace/git/Lu
>> ceeDebug/webapps/LDEV-1369/context2/,UNAVAILABLE,localhost2.com
>> }{E:\Workspace\git\LuceeDebug\webapps\LDEV-1369\context2}
>> java.lang.IllegalArgumentException: name
>> at sun.misc.URLClassPath$Loader.findResource(URLClassPath.java:693)
>> at sun.misc.URLClassPath.findResource(URLClassPath.java:215)
>> at java.net.URLClassLoader$2.run(URLClassLoader.java:569)
>> at java.net.URLClassLoader$2.run(URLClassLoader.java:567)
>> at java.security.AccessController.doPrivileged(Native Method)
>> at java.net.URLClassLoader.findResource(URLClassLoader.java:566)
>> at java.lang.ClassLoader.getResource(ClassLoader.java:1096)
>> at org.eclipse.jetty.util.resource.Resource.newSystemResource(R
>> esource.java:242)
>> at org.eclipse.jetty.webapp.WebXmlConfiguration.preConfigure(We
>> bXmlConfiguration.java:50)
>> at org.eclipse.jetty.webapp.WebAppContext.preConfigure(WebAppCo
>> ntext.java:506)
>> at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext
>> .java:544)
>> at org.eclipse.jetty.util.component.AbstractLifeCycle.start(Abs
>> tractLifeCycle.java:68)
>> at org.eclipse.jetty.util.component.ContainerLifeCycle.start(Co
>> ntainerLifeCycle.java:131)
>> at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(
>> ContainerLifeCycle.java:113)
>> at org.eclipse.jetty.server.handler.AbstractHandler.doStart(Abs
>> tractHandler.java:113)
>> at org.eclipse.jetty.util.component.AbstractLifeCycle.start(Abs
>> tractLifeCycle.java:68)
>> at org.eclipse.jetty.util.component.ContainerLifeCycle.start(Co
>> ntainerLifeCycle.java:131)
>> at org.eclipse.jetty.server.Server.start(Server.java:452)
>> at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(
>> ContainerLifeCycle.java:105)
>> at org.eclipse.jetty.server.handler.AbstractHandler.doStart(Abs
>> tractHandler.java:113)
>> at org.eclipse.jetty.server.Server.doStart(Server.java:419)
>> at org.eclipse.jetty.util.component.AbstractLifeCycle.start(Abs
>> tractLifeCycle.java:68)
>>
>> Any thoughts?
>>
>> Thanks again,
>>
>> Igal Sapir
>> Lucee Core Developer
>> Lucee.org <http://lucee.org/>
>> On 7/13/2017 3:50 PM, Joakim Erdfelt wrote:
>>
>> Drop the following ...
>>
>> webapp.setResourceBase(resourceBase);
>> webapp.setDescriptor(resourceBase + "/WEB-INF/web.xml");
>>
>> And replace it with ...
>>
>> webapp.setWar(resourceBase);
>>
>> That will address all 3 issues.
>>
>>
>> Joakim Erdfelt / [email protected]
>>
>> On Thu, Jul 13, 2017 at 12:01 PM, Igal @ Lucee.org <[email protected]>
>> wrote:
>>
>>> I'm trying to set up a default descriptor in a shared place, and a
>>> specific descriptor in WEB-INF/web.xml
>>>
>>> I have two contexts, and I use the method below to define them. I get
>>> the following error for the 2nd context (seems like the first one doesn't
>>> error):
>>>
>>> 2017-07-13 11:59:02.116:WARN:oejw.WebAppContext:main: Failed startup of
>>> context o.e.j.w.WebAppContext@37cd92d6{/,file:///E:/Workspace/git/De
>>> bug/webapps/context2/,UNAVAILABLE,localhost2.com}
>>> java.lang.IllegalArgumentException: name
>>> at sun.misc.URLClassPath$Loader.findResource(URLClassPath.java:693)
>>> at sun.misc.URLClassPath.findResource(URLClassPath.java:215)
>>> at java.net.URLClassLoader$2.run(URLClassLoader.java:569)
>>> at java.net.URLClassLoader$2.run(URLClassLoader.java:567)
>>> at java.security.AccessController.doPrivileged(Native Method)
>>> at java.net.URLClassLoader.findResource(URLClassLoader.java:566)
>>> at java.lang.ClassLoader.getResource(ClassLoader.java:1096)
>>> at org.eclipse.jetty.util.resource.Resource.newSystemResource(R
>>> esource.java:242)
>>> at org.eclipse.jetty.webapp.WebXmlConfiguration.preConfigure(We
>>> bXmlConfiguration.java:50)
>>> at org.eclipse.jetty.webapp.WebAppContext.preConfigure(WebAppCo
>>> ntext.java:506)
>>> at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext
>>> .java:544)
>>> at org.eclipse.jetty.util.component.AbstractLifeCycle.start(Abs
>>> tractLifeCycle.java:68)
>>> at org.eclipse.jetty.util.component.ContainerLifeCycle.start(Co
>>> ntainerLifeCycle.java:131)
>>> at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(
>>> ContainerLifeCycle.java:113)
>>> at org.eclipse.jetty.server.handler.AbstractHandler.doStart(Abs
>>> tractHandler.java:113)
>>> at org.eclipse.jetty.util.component.AbstractLifeCycle.start(Abs
>>> tractLifeCycle.java:68)
>>> at org.eclipse.jetty.util.component.ContainerLifeCycle.start(Co
>>> ntainerLifeCycle.java:131)
>>> at org.eclipse.jetty.server.Server.start(Server.java:452)
>>> at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(
>>> ContainerLifeCycle.java:105)
>>> at org.eclipse.jetty.server.handler.AbstractHandler.doStart(Abs
>>> tractHandler.java:113)
>>> at org.eclipse.jetty.server.Server.doStart(Server.java:419)
>>> at org.eclipse.jetty.util.component.AbstractLifeCycle.start(Abs
>>> tractLifeCycle.java:68)
>>>
>>> /** * * @param resourceBase the path to the web root * @param
>>> contextPath the virtual path for the context, e.g. "/" * @return *
>>> @throws Exception */ public static WebAppContext
>>> createWebAppContext(String resourceBase, String contextPath) throws
>>> Exception {
>>>
>>> File file = new File(resourceBase);
>>>
>>> resourceBase = file.getCanonicalPath();
>>>
>>> if (contextPath == null || contextPath.isEmpty())
>>> contextPath = "/";
>>>
>>> WebAppContext webapp = new WebAppContext();
>>> webapp.setContextPath(contextPath);
>>> webapp.setResourceBase(resourceBase);
>>>
>>> webapp.setConfigurationClasses(webappDefaultConfigurationClasses);
>>>
>>> // Set default descriptor for all contexts
>>> *webapp.setDefaultsDescriptor(DebugLucee.class.getResource("/resource/web.xml").getPath());*
>>> // Set app-specific descriptor at {webroot}/WEB-INF/web.xml
>>> webapp.setDescriptor(resourceBase + "/WEB-INF/web.xml");
>>>
>>> return webapp;
>>> }
>>>
>>> public static final String[] webappDefaultConfigurationClasses = new
>>> String[]{
>>> "org.eclipse.jetty.webapp.WebInfConfiguration"
>>> ,"org.eclipse.jetty.webapp.WebXmlConfiguration"
>>> ,"org.eclipse.jetty.webapp.MetaInfConfiguration"
>>> ,"org.eclipse.jetty.webapp.FragmentConfiguration"
>>> ,"org.eclipse.jetty.annotations.AnnotationConfiguration"
>>> ,"org.eclipse.jetty.webapp.JettyWebXmlConfiguration" };
>>>
>>> Is it possible to achieve that? If so, how? Thanks!
>>>
>>> Igal Sapir
>>> Lucee Core Developer
>>> Lucee.org <http://lucee.org/>
>>>
>>> _______________________________________________
>>> jetty-users mailing list
>>> [email protected]
>>> To change your delivery options, retrieve your password, or unsubscribe
>>> from this list, visit
>>> https://dev.eclipse.org/mailman/listinfo/jetty-users
>>>
>>
>>
>>
>> _______________________________________________
>> jetty-users mailing [email protected]
>> To change your delivery options, retrieve your password, or unsubscribe from
>> this list, visithttps://dev.eclipse.org/mailman/listinfo/jetty-users
>>
>>
>>
>> _______________________________________________
>> jetty-users mailing list
>> [email protected]
>> To change your delivery options, retrieve your password, or unsubscribe
>> from this list, visit
>> https://dev.eclipse.org/mailman/listinfo/jetty-users
>>
>
>
>
> _______________________________________________
> jetty-users mailing [email protected]
> To change your delivery options, retrieve your password, or unsubscribe from
> this list, visithttps://dev.eclipse.org/mailman/listinfo/jetty-users
>
>
>
> _______________________________________________
> jetty-users mailing list
> [email protected]
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://dev.eclipse.org/mailman/listinfo/jetty-users
>
--
Jan Bartel <[email protected]>
www.webtide.com
*Expert assistance from the creators of Jetty and CometD*
_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from
this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users