Barbara,

To upgrade to jetty-9, follow the example of a single embedded webapp that
uses jsp here:
https://github.com/eclipse/jetty.project/blob/master/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneWebAppWithJsp.java

That maven project will list all necessary dependencies (actually there's
probably a few extra in there, but it will get you going) by doing mvn
dependency:tree.

If your jsps use java8-isms then you will need to redefine the JspServlet
in your web.xml and set the init params "compilerSourceVM" and
"compilerTargetVM" to "1.8" (the default in jetty-9 is "1.7").

Alternatively, it may be simpler for you to just precompile your jsps. You
can use either the jetty-jspc-maven plugin (see
https://www.eclipse.org/jetty/documentation/current/configuring-jsp.html#d0e6586)
to do this or you could write an ant build script to do it (google for
info).

Jan

On 27 August 2015 at 10:45, Barbara Tuchman <[email protected]>
wrote:

> Lothar & Joakim: thanks much for your responces.
>
>
> Joakim:
>
>
> >Per the JSP spec the Java support level is Java 6 (and it still is, even
> today).
> >Notice that Jetty 6 doesn't use Java itself to compile JSPs?
> >Jetty 6 is using the Eclipse JDT compiler.
> >Breaking spec to support Java 8 is handled by configuring to use Java and
> JavaC itself.
>
> Does this mean that I can continue using jetty 6, so long as I configure
> it to not use JDT but instead to use my JDK 8's javac?
>
> I would love for that to be true, as it should be the quickest way for me
> to resolve the conflict between jetty 6 and JDK 8.
>
> Assuming that, how do you so configure jetty 6 to use javac?  A web search
> came up empty.  The codehaus website is defunct, and does not seem to be
> archived anywhere.
>
>
> I tried some guesses.  The most important being:
>
> 1) as per your github page, I added a call to
>     System.setProperty("org.apache.jasper.compiler.disablejsr199",
> "false");
> before I create a Server instance, but that fails--I still see
>     2015-08-26T18:21:12.783-0400 WARN [842741472@qtp-1002021887-0] -
> Compilation error
>     org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException: null
>         at
> org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.<init>(ClassFileReader.java:298)
> ~[core-3.1.1.jar:na]
>         at
> org.apache.jasper.compiler.JDTJavaCompiler$1.findType(JDTJavaCompiler.java:351)
> [jsp-2.1.jar:6.1.11]
>         ...
> I guess that property must be for newer jetty (e.g. jetty 7+)?
>
> 2) I tried removing the core-3.1.1.jar file from my lib directory, as that
> jar contains the JDT classes, but that caused a different error:
>     2015-08-26T18:42:46.485-0400 ERROR [1712943792@qtp-1202683709-0] -
> /errors.jsp
>     java.lang.NoClassDefFoundError: org/apache/tools/ant/BuildListener
>         at
> org.apache.jasper.compiler.Compiler.initJavaCompiler(Compiler.java:716)
> ~[jsp-2.1.jar:6.1.11]
>         at org.apache.jasper.compiler.Compiler.<init>(Compiler.java:116)
> ~[jsp-2.1.jar:6.1.11]
>         ...
>
>
> >You really should use some sort of build system.
>
> The decision is not 100% mine to make, and involves as many political
> factors as technical.
>
> I can use whatever I want when playing around on my own workstation (e.g.
> to determine dependent jars), but forcing other users our or prd servers to
> use, say maven, may be impossible.
>
>
> >>Doing a more focused web search found:
> >>    --this link, which reports what looks like the same problem (but has
> no solution):
> >>
> http://jspl598.blogspot.com/2015/03/while-accessing-jsps-in-jetty_13.html
>
> >This looks like your blog.
>
> No it is not!
>
> >Its identical to what you are describing.
> >Why they didn't use this forum, or stackoverflow, i cannot comprehend.
>
> Agreed.
>
>
> I think that our use of jetty 6 is very similar to what is described here:
>
> https://stackoverflow.com/questions/15282678/how-does-jetty-compile-jsps
>
> Perhaps it will help if I post the code we use to embed jetty.
>
> Our application has a Main class that is its entry point. The sole jetty
> code is entirely in these 3 methods of Main:
>
>     private static void startWebServer() throws Exception {
>         Server server = new Server();
>         server.setConnectors(makeJettyConnectors());
>         server.setHandler(makeJettyHandler());
>         server.start();
>     }
>
>     private static Connector[] makeJettyConnectors() {
>         Connector connector = new SelectChannelConnector();
>
> connector.setPort(Integer.parseInt(PropMgr.getProperty("http.port")));
>         return new Connector[] {connector};
>     }
>
>     private static Handler makeJettyHandler() {
>         WebAppContext context = new WebAppContext();
>         context.setContextPath("/");
>         context.setResourceBase(urlOfWebDir());
>         context.setDefaultsDescriptor(urlOfFile("/webdefault.xml"));    //
> the / prefix means to start the search at the class path root
>         return context;
>     }
>
> Main's static initializer calls startWebServer.
>
> In addition to that code in Main, there is also:
>     1) a web directory, containing the .jsp files and a bunch of other
> stuff
>     2) a .../config/webdefault.xml file
>     3) these jars, which I think are all jars we use for jetty/JSP:
>         core-3.1.1.jar
>         direct-client.jar
>         jetty-6.1.12.jar
>         jetty-util-6.1.12.jar
>         jsp-2.1.jar
>         jsp-api-2.1.jar
>         servlet-api-2.5-6.1.11.jar
>
> I mentioned above that I tried using
>     System.setProperty("org.apache.jasper.compiler.disablejsr199",
> "false");
> to disable JDT; I put that call as the first line in startWebServer.
>
> I also tried adding this line
>     context.setClassLoader(getUrlClassLoader());
> as the 2nd line of makeJettyHandler, since your github page also mentions
> it; that too made no difference (probably for the same reason).
>
> _______________________________________________
> 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

Reply via email to