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

Thanks Jan,that was a good lead. But it looks like I am hosed.

Launch4J has changed the structure of the file such that while jar and WinZip will happily list the entries and Winzip will extract the contents, jar extracts nothing and JarInputStream reports zero entries. The actual byte structure is not equivalent.

William

On Fri, Oct 3, 2014 at 11:11 AM, Jan Bartel <janb@xxxxxxxxxxx> wrote:
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'
_______________________________________________
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


Back to the top