Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] WebAppContent not being extract to temp directory

William,

I suggest you turn on DEBUG logging for the
o.e.j.webapp.WebInfConfiguration class - it is the one responsible for
unpacking a war. The debug should help you work out the url and
location of the war that is to be extracted. Note that if the .war is
packed again inside a .exe I wouldn't expect Jetty to be able to
extract it - we don't deal with that many layers of onion skin: the
webapp must be either a directory or a packed war.

regards
Jan

On 3 October 2014 10:15, William Ferguson
<william.ferguson@xxxxxxxxxxxxx> wrote:
> Even though I am starting an embedded Jetty instance with:
>
> final Server server = new Server(port);
> server.setHandler(webApp);
> final WebAppContext webApp = new WebAppContext();
> webApp.setContextPath("/");
> webApp.setWelcomeFiles(new String[]{"index.html"});
> webApp.setWar(exeFile.getAbsolutePath());
>
> Is it possible that the WebAppProvider
> (http://download.eclipse.org/jetty/stable-9/apidocs/org/eclipse/jetty/deploy/providers/WebAppProvider.html)
> is being invoked and is excluding the WebApp content because the launching
> file doesn't end in .war?
>
> William
>
>
> On Fri, Oct 3, 2014 at 9:38 AM, William Ferguson
> <william.ferguson@xxxxxxxxxxxxx> wrote:
>>
>> @Michael Launch4J doesn't have anything to do with Jetty's webapp content
>> extraction process. So asking these questions of Launch4J would be
>> inappropriate.
>> Clearly some context that is being expected within Jetty is not being met
>> when bundled as an EXE. You can only answer these questions from within a
>> Jetty perspective.
>> ------
>> So my question is, what is responsible within Jetty for extracting the
>> webapp content?
>> What might be causing it to not extract from an application.exe archive vs
>> an application.war archive?
>> What can be done to make it extract the content when repackaged as EXE?
>> ------
>>
>> I'm happy to dive into the Jetty code, but I need a jumping off point.
>>
>> William
>>
>> On Fri, Oct 3, 2014 at 9:32 AM, Michael Dykman <mdykman@xxxxxxxxx> wrote:
>>>
>>> The problem appears to be with launch4j, not Java or Jetty. This is the
>>> wrong forum to ask.
>>>
>>> On 2 Oct 2014 19:23, "William Ferguson" <william.ferguson@xxxxxxxxxxxxx>
>>> wrote:
>>>>
>>>> The EXE has full permissions.
>>>>
>>>> There is no extra SecutiryManager being applied by the launcher.
>>>>
>>>> I wasn't specifying an explicit WebAppContext#tempDirectory so it was
>>>> already using java.io.tmpdir
>>>>
>>>> Now this seems strange ..
>>>> When I specify an explicit WebAppContext#tempDirectory (for both the EXE
>>>> and WAR versions), the explicit folder is never created. And if it existed
>>>> beforehand it is deleted on server start. And there is no folder being
>>>> created in java.io.tmpdir. In any case for the WAR Jetty serves normally,
>>>> for the EXE it now throws a 503.
>>>>
>>>> William
>>>>
>>>> On Fri, Oct 3, 2014 at 9:01 AM, Joakim Erdfelt <joakim@xxxxxxxxxxx>
>>>> wrote:
>>>>>
>>>>> Most EXE processes are merely launchers for java and your app.
>>>>> Nothing really changes as far as the jars / classes etc.
>>>>> They are usually left, in-tact.
>>>>>
>>>>> Since this is being launched on windows, via an EXE, I would start to
>>>>> look at permissions that your EXE has.
>>>>> It might not have the rights to do what you think it should be able to
>>>>> do. (look at the rights of the application/exe on windows for this)
>>>>>
>>>>> Also look into any sort of java SecurityManager that is applied to your
>>>>> running application. (some launchers apply custom SecurityManager
>>>>> configurations)
>>>>>
>>>>> Out of curiosity, are there files in your java.io.tmpdir instead?
>>>>>
>>>>>
>>>>> --
>>>>> Joakim Erdfelt <joakim@xxxxxxxxxxx>
>>>>> webtide.com - intalio.com/jetty
>>>>> Expert advice, services and support from from the Jetty & CometD
>>>>> experts
>>>>> eclipse.org/jetty - cometd.org
>>>>>
>>>>> On Thu, Oct 2, 2014 at 3:37 PM, William Ferguson
>>>>> <william.ferguson@xxxxxxxxxxxxx> wrote:
>>>>>>
>>>>>> I have a webapp that is packaged as a WAR but for which I have a main
>>>>>> application class that creates an embedded Jetty instance to serve the WAR.
>>>>>> All works well.
>>>>>> When the app starts Jetty extracts the WebApp content into the
>>>>>> WebAppContext#tempDirectory and Jetty serves all resources.
>>>>>>
>>>>>> But I am trying to package the WAR as an EXE using launch4J and am
>>>>>> running into a problem. Launch4J creates the EXE, the EXE starts and my main
>>>>>> class starts the Jetty server. But while the WebAppContext#tempDirectory is
>>>>>> being correctly set, the contents of the WebApp are not being extracted into
>>>>>> it.
>>>>>>
>>>>>> Jetty does create the tempDirectory with a webapp child folder, but
>>>>>> that child folder is empty. This means that Jetty returns 404 for
>>>>>> everything.
>>>>>>
>>>>>> NB the EXE that is generated by Launch4J is a valid archive and can be
>>>>>> opened as such by WinZip etc.
>>>>>>
>>>>>> So my question is, what is responsible within Jetty for extracting the
>>>>>> webapp content?
>>>>>> What might be causing it to not extract from an application.exe
>>>>>> archive vs an application.war archive?
>>>>>> What can be done to make it extract the content when repackaged as
>>>>>> EXE?
>>>>>>
>>>>>> This is on Jetty 9.1.1.v20140108
>>>>>>
>>>>>> William
>>>>>>
>>>>>> _______________________________________________
>>>>>> jetty-users mailing list
>>>>>> jetty-users@xxxxxxxxxxx
>>>>>> 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 list
>>>>> jetty-users@xxxxxxxxxxx
>>>>> 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 list
>>>> jetty-users@xxxxxxxxxxx
>>>> 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 list
>>> jetty-users@xxxxxxxxxxx
>>> 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 list
> jetty-users@xxxxxxxxxxx
> To change your delivery options, retrieve your password, or unsubscribe from
> this list, visit
> https://dev.eclipse.org/mailman/listinfo/jetty-users



-- 
Jan Bartel <janb@xxxxxxxxxxx>
www.webtide.com
'Expert Jetty/CometD developer,production,operations advice'


Back to the top