Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] Unable to serve file system folder on Windows

Instead of trying to piece together a url, either let the jvm or jetty take care of that for you.

jvm:
  use Paths.get(webroot).toAbsolutePath().toURI().toURL() and you'll get the url

jetty:
 use the Resource class instead:  Resource.newResource(webroot). Then if you need a url, Resource.getURL().


Jan

On 3 January 2017 at 22:24, Carl-Erik Kopseng <carl-erik.kopseng@xxxxxxxxxxxxxxx> wrote:

I modified the embedded-jetty project to create a stand-alone jsp-viewer that should be able to serve any directory containing jsps, not just the ones embedded in a jar file. The resulting jar works fine on macOS and Linux.

What I discovered is that it does not work on Windows - for some reason that escapes me, although the logs indicate that it resolved the directory just fine. I have enabled the "dirAllowed"property to list directory contents, yet I consistently get this error no matter the directory or file:

HTTP ERROR 404

Problem accessing /. Reason:

    Not Found

I ripped out a lot of unneeded code, but I believe the main difference between my project on the demo project from Jetty is this diff that shows how my project references a webroot property as the directory to serve, instead of a hard coded path in the jar file in the original

>         String userDir = System.getProperty("webroot");
>         String webroot = (userDir != null && userDir.length() > 0)? userDir : ".";
>         webroot = Paths.get(webroot).toAbsolutePath().normalize().toString();

and this

<         URL indexUri = this.getClass().getResource(WEBROOT_INDEX);
>         URL indexUri = new URL("file://" + webroot);

I have tried serving various folders to see if it is some kind of permission issue, but I don’t get anywhere with this. I still get a 404 on Windows no matter what.

Output from console when running on macOS

./jsp-viewer/view-jsp /tmp
2017-01-02 15:53:50.456:INFO::main: Logging initialized @124ms to org.eclipse.jetty.util.log.StdErrLog
jan 02, 2017 3:53:50 PM com.github.fatso83.jspviewer.Main defaultServletHolder
INFO: Base URI: file:/tmp
2017-01-02 15:53:50.574:INFO:oejs.Server:main: jetty-9.4.z-SNAPSHOT
2017-01-02 15:53:50.737:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0
2017-01-02 15:53:50.737:INFO:oejs.session:main: No SessionScavenger set, using defaults
2017-01-02 15:53:50.740:INFO:oejs.session:main: Scavenging every 660000ms
2017-01-02 15:53:50.756:INFO:oejsh.ContextHandler:main: Started o.e.j.s.ServletContextHandler@6d8a00e3{/,file:///tmp/,AVAILABLE}
2017-01-02 15:53:50.779:INFO:oejs.AbstractConnector:main: Started ServerConnector@457e2f02{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
2017-01-02 15:53:50.779:INFO:oejs.Server:main: Started @451ms
jan 02, 2017 3:53:50 PM com.github.fatso83.jspviewer.Main getServerUri
INFO: Server URI: http://localhost:8080/

Output on Windows (Mingw)

$ ./jsp-viewer/view-jsp /tmp/
2017-01-02 16:12:15.541:INFO::main: Logging initialized @266ms to org.eclipse.jetty.util.log.StdErrLog
jan 02, 2017 4:12:18 PM com.github.fatso83.jspviewer.Main defaultServletHolder
INFO: Base URI: file://C:/Users/SA_CAR~1.KOP/AppData/Local/Temp/2
2017-01-02 16:12:18.106:INFO:oejs.Server:main: jetty-9.4.z-SNAPSHOT
2017-01-02 16:12:18.449:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0
2017-01-02 16:12:18.450:INFO:oejs.session:main: No SessionScavenger set, using defaults
2017-01-02 16:12:18.454:INFO:oejs.session:main: Scavenging every 600000ms
2017-01-02 16:12:18.475:INFO:oejsh.ContextHandler:main: Started o.e.j.s.ServletContextHandler@24a67{/,file://C/Users/SA_CAR~1.KOP/AppData/Local/Temp/2,AVAILABLE}
2017-01-02 16:12:18.515:INFO:oejs.AbstractConnector:main: Started ServerConnector@feb3fa{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
2017-01-02 16:12:18.530:INFO:oejs.Server:main: Started @3261ms
jan 02, 2017 4:12:18 PM com.github.fatso83.jspviewer.Main getServerUri
INFO: Server URI: http://localhost:8080/


// carl-erik


_______________________________________________
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 assistance from the creators of Jetty and CometD


Back to the top