jetty / jetty.project

Eclipse Jetty® - Web Container & Clients - supports HTTP/2, HTTP/1.1, HTTP/1.0, websocket, servlets, and more
https://eclipse.dev/jetty
Other
3.83k stars 1.91k forks source link

JPMS Support #2191

Closed jmcc0nn3ll closed 5 years ago

jmcc0nn3ll commented 6 years ago

This can be a root issue for ongoing efforts for Jetty to support JPMS features in Java.

Jetty has had OSGi support for nigh on a decade and it is not something we can simply abandon in lieu of java adding on a module management system. While that community has made strides in integrating well with the JPMS mechanics at the point of this thread creation it has largely been up in the air as to what that should mean for the Jetty project itself.

Jetty 9.4.x supports the usage of Java 9 with the module system disabled and it remains to be seen what Jetty 10 will do with it. Lets have some discussion on this thread about that and maybe start getting this broken down a bit.

@guw We would welcome your input here as well as a historical user of jetty and osgi, your plans regarding jpms and what you might expect from jetty regarding it.

We also have @PashaTurok with #2189 as the first user requesting this support and there is some info in that issue.

Additionally, to set expectations this is not something that will happen overnight, especially since it seems that it will involve a fairly substantial review of the overall artifact layout of Jetty.

PavelTurk commented 6 years ago

@sbordet We will try to test with our products. The only problem is that our web products use Weld that is not JPMS yet (see my issue https://issues.jboss.org/browse/WELD-2493?_sscc=t). At least we will try to make them work together.

sbordet commented 6 years ago

@panga I don't understand how multi-release jars are in the picture here. They are for alternate implementations of certain classes, and they don't support non-classes multi-releases (e.g config files like services etc.).

The version of Jetty that can write a proper module-info.java is when we will be able to properly specify dependencies e.g. to javax.servlet.api - which may happen years from now given the current speed of adoption of JPMS modules.

@panga some support for module-path should be there already, see #1933 and #1978 and related. We will need you guys to do some iterations of testing to cover your cases.

@joakime @gregw we should also modify the standalone start mechanism, by adding maybe a --jpms option that puts all the Jetty jars in the module-path rather than the class-path. Thoughts?

panga commented 6 years ago

@panga I don't understand how multi-release jars are in the picture here. They are for alternate implementations of certain classes, and they don't support non-classes multi-releases (e.g config files like services etc.).

Not exactly, multi-release jars support classes, resources and module-info.class. I agree with you that a good quality module-info can take years to be ready. References: http://openjdk.java.net/jeps/238 https://blog.codefx.org/tools/multi-release-jars-multiple-java-versions/

@panga some support for module-path should be there already, see #1933 and #1978 and related. We will need you guys to do some iterations of testing to cover your cases.

Great! #1978 is a must for me.

@PashaTurok, what exactly you need from weld? I was able to make it work in version 3.0.5.Final with the patches I've submitted. See my sample: https://github.com/panga/hammock-jpms

sbordet commented 6 years ago

FTR: why we leaned towards Automatic-Module-Name.

First tried to JPMS-ify jetty-util. Using jdeps it's easy to find all dependencies and first problem is that there is no JPMS for javax.servlet:javax.servlet-api.

This is required by MultiPartInputStreamParser that has been deprecated and moved to jetty-http. Even if we remove this class, we will have the same issue for the jetty-http module. [As a side note, jetty-http may then require to be split in 3: a common, a client-only and a server-only module].

Trying to Maven compile with a non-JPMS jar in the module-path yields a Maven warning

Required filename-based automodules detected. Please don't publish
this project to a public artifact repository!

Dependencies for jetty-util are of the kind:

module org.eclipse.jetty.util {
    ...
    requires static org.slf4j;
    ...
}

requires static is necessary because if an application does not use the Jetty logging classes, it would not require to depend on SLF4J.

However, when we try to run the jetty-util tests via Maven, the test fails because they try to load SLF4J classes but cannot.

So far we have 2 showstoppers for real JPMS modules:

The first may take years to be resolved; the second may just be a Maven issue and may be promptly fixed.

Going for Automatic-Module-Name instead will push the problem to application developers, but for basic usage they may be able to get Jetty embedded running on the module-path.

Note that users are already able to run Jetty embedded from the module-path: just put the Jetty jars into the module-path, and the JVM will automatically convert them to modules. Therefore we don't need to do anything, per se.

Adding Automatic-Module-Name to Jetty jars will only lock the module name, rather than using the jar name. We are going for module names of the form org.eclipse.jetty.*, and not jetty.*.

panga commented 6 years ago

Err, this Maven warning is new to me!

Regarding Surefire, yes it has some problems with JPMS, I expect them to be resolved soon.

Automatic-Module-Name is a good start, the module names will be stable for future use of module-info.

jmcc0nn3ll commented 6 years ago

Expanding on Simone's summary, we also discussed how the module-info.java for a module didn't play particularly well with the test cases themselves. Maven conventions have the test cases under the same packages as the main artifacts classes and putting another module-info.java file under the same package under src/test/java gives angry warnings. Conceptionally the tests themselves are an application usage of the original artifact so it sort of makes sense that tests would/should have their own module-info.java to define the execution environment, like the slf4j example Simone gave. I am not aware of any updated conventions for the test situation but if anyone can point to some or have some anecdotes you are welcome to share!

sbordet commented 6 years ago

The Maven Surefire issue related to running tests with requires static: https://issues.apache.org/jira/browse/SUREFIRE-1563

sbordet commented 6 years ago

@panga @PashaTurok out of curiosity, you can already run Jetty on the module-path as each Jetty jar will be converted to a module by the JVM, although the module names will be of the form jetty.*; if you do that, do you see other problems or everything just works?

Point being that the more details we know about things that people do when running Jetty as JPMS modules, the more we can fix things.

sbordet commented 6 years ago

For early adopters, Automatic-Module-Name is now specified in the MANIFEST in branch jetty-9.4.x-2191-jpms. Checkout the branch, build it with mvn install -DskipTests and try it out.

PavelTurk commented 6 years ago

@sbordet I opened this issue because I had this problem and @joakime 's suggestion. I don't know if that problem is solved now.

sbordet commented 6 years ago

I renamed the branch to jetty-9.4.x-2191-jpms_automatic_module_name, and it's now based on 9.4.13-SNAPSHOT.

sbordet commented 6 years ago

Apparently IntelliJ is not yet able to run tests using properly the module-path, see https://youtrack.jetbrains.com/issue/IDEA-171419.

sbordet commented 6 years ago

Given the current status of tooling around JPMS modules, I wonder how you guys are even able to write an application with JPMS module, unless you don't test it, don't use common build tools, etc. You all do compile/test with custom tools that support JPMS?

sbordet commented 6 years ago

I'm giving module-info.java another chance, but I'm stuck with failing tests that do: Foo.class.getResource("/"), that with module-path returns null while returns a URL on class-path.

PavelTurk commented 6 years ago

@sbordet About Foo.class.getResource("/") I would suggest to formulate a full question on SO - I think you will get the answer faster.

sbordet commented 6 years ago

@PashaTurok I know the answer already. The question is how could you guys ever work with JPMS modules.

PavelTurk commented 6 years ago

@sbordet We use gedit and javac. This is joke, of course. We use netbeans 9 beta (although it has really annoying bugs when working with JPMS) as IDE and maven as building system. We don't have any custom building tools for JPMS. Could you explain what is the problem?

sbordet commented 6 years ago

Module jetty-http needs to load one of its own configuration files. It does:

MimeTypes.class.getClassLoader().getResourceAsStream(resource);

But now we need Module.getResourceAsStream(resource).

Ok, so make a ResourceUtils class in jetty-util so that we can hide behind it whether we are on the class-path and use Class or ClassLoader, or we are in the module-path and use Module, to get the resource stream.

But because now module jetty-util is loading from jetty-http, we need jetty-http to open the "package" (aka directory) from where the resource is loaded.

sbordet commented 6 years ago

I am trying a proper JPMS module version (with module-info.java) and I was able to start Jetty as a standalone server with HTTP/2.

The startup times are:

So running Jetty on the module-path gets us a 3x hit on startup.

@panga do you have or know about actual data properly measured that explains in detail why modules should be faster to startup? Because from this initial test (surely not rigorous, but still) does not look good (e.g. our test suite that starts a Jetty server for almost every test will take ~1 s x ~1000 tests = ~20 minutes more to run).

panga commented 6 years ago

@sbordet, not sure why the startup time is so slow, in all my tests with JPMS with both OpenJDK and OpenJ9 implementations I got faster(or equal) startup times in small web applications.

Can I use jetty-9.4.x-2191-jpms branch for testing that? Can you provide me your sample app & JDK version you are using ?

PavelTurk commented 6 years ago

@panga Can you comment this issue. It is interesting to hear your opinion.

sbordet commented 5 years ago

@panga @PashaTurok have you been able to test the automatic module names in branch jetty-9.4.x-2191-jpms_automatic_module_name?

PavelTurk commented 5 years ago

@sbordet No, I did nothing, as I saw that there was no answer to @panga question Can I use jetty-9.4.x-2191-jpms branch for testing that and thought it is not ready yet. Please, try to support two-way communication. So, is this jetty-9.4.x-2191-jpms_automatic_module_name branch ready for testing?

sbordet commented 5 years ago

@PashaTurok yes branch jetty-9.4.x-2191-jpms_automatic_module_name is ready for testing.

PavelTurk commented 5 years ago

@sbordet I am trying to test web application. This is how I do it. I create JPMS layer and add to it the following modules:

    <module file="jetty-servlet-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-servlets-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-util-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-webapp-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-xml-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-http-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-io-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-security-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-server-9.4.13-SNAPSHOT.jar"/>
    <module file="javax.servlet-api-4.0.1.jar"/>
    <module file="me.pavel.webserver.core-0.1.0-SNAPSHOT.jar"/>

Please, note, that war file I don't add to this layer. To run jetty I use the following code:

        Server server = new Server( 8080 );
        WebAppContext webapp = new WebAppContext();
        webapp.setContextPath( "/" );
        File warFile = new File(
                "/home/Pavel/WebServerJettyJpms/jar/temp-0.1.0-SNAPSHOT.war" );
        if (!warFile.exists())
        {
            throw new RuntimeException( "Unable to find WAR File: "
                    + warFile.getAbsolutePath() );
        }
        webapp.setWar( warFile.getAbsolutePath() );
        webapp.setExtractWAR(true);
        webapp.setAttribute(
                "org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern",
                ".*/[^/]*servlet-api-[^/]*\\.jar$|.*/javax.servlet.jsp.jstl-.*\\.jar$|.*/[^/]*taglibs.*\\.jar$" );
        server.setHandler( webapp );
        server.start();
        server.dumpStdErr();

The server starts (I can access it 127.0.0.1:8080) and I don't have any problems with the speed (it starts fast). However, my web application is not deployed. I get:

java.lang.ClassNotFoundException: org.eclipse.jetty.webapp.WebInfConfiguration
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
    at java.base/jdk.internal.loader.Loader.loadClass(Loader.java:561)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.Loader.loadClass(Loader.java:65)
    at org.eclipse.jetty.webapp@9.4.13-SNAPSHOT/org.eclipse.jetty.webapp.WebAppContext.loadConfigurations(WebAppContext.java:1035)
    at org.eclipse.jetty.webapp@9.4.13-SNAPSHOT/org.eclipse.jetty.webapp.WebAppContext.preConfigure(WebAppContext.java:473)
    at org.eclipse.jetty.webapp@9.4.13-SNAPSHOT/org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:544)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.Server.start(Server.java:416)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.Server.doStart(Server.java:383)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)

Do I do something wrong or this is a bug?

sbordet commented 5 years ago

Can you please include the full command line that you use to start Jetty?

PavelTurk commented 5 years ago

The JPMS layer for Jetty is created by our JPMS environment Alpha. This script starts alpha:

#!/bin/bash
ROOT_PATH="$(dirname "$0")/.."
#These are alpha modules.
modules=(
    com.organization.mix.slf4j-api-1.7.25.jar
    com.organization.mix.slf4j-simple-1.7.25.jar
    com.organization.kit.core-0.2.0-SNAPSHOT.jar
    com.organization.kit.jpms-0.2.0-SNAPSHOT.jar
    com.organization.alpha.core-0.3.0-SNAPSHOT.jar
)

MODULE_PATH=""
for m in "${modules[@]}"
do
    MODULE_PATH=${MODULE_PATH}:"$ROOT_PATH/jar/${m}"
done

/opt/jdk-9/bin/java \
    -Xdebug -Xrunjdwp:transport=dt_socket,address=7500,server=y,suspend=n \
    -Dorg.slf4j.simpleLogger.showDateTime=true \
    -Dorg.slf4j.simpleLogger.dateTimeFormat="yyyy-MM-dd HH:mm:ss:SSS" \
    -Dcom.organization.alpha.core.logging-level=debug \
    -Dcom.organization.alpha.core.logging-destination=console \
    -Dcom.organization.alpha.core.root-path="$ROOT_PATH" \
    -Dcom.organization.alpha.core.components="com.organization.alpha.server-0.3.0, com.organization.alpha.client-0.3.0" \
    -Dcom.organization.alpha.rct.script="./start.script" \
    -Djavax.net.ssl.keyStore="$ROOT_PATH/bin/client.jks" \
    -Djavax.net.ssl.keyStorePassword=client-keystore-password \
    -Djavax.net.ssl.trustStore="$ROOT_PATH/bin/client.jts" \
    -Djavax.net.ssl.trustStorePassword=client-truststore-password \
    -Djava.security.policy="$ROOT_PATH/bin/policy.ssl" \
    -Djava.net.preferIPv4Stack=true \
    --add-modules ALL-DEFAULT --module-path $MODULE_PATH \
    -m com.organization.alpha.core/com.organization.alpha.core.internal.Launcher

Jetty layer is created with one classloader as described here https://docs.oracle.com/javase/9/docs/api/index.html?java/lang/ModuleLayer.html

PavelTurk commented 5 years ago

@sbordet Maybe the list of modules for boot and jetty layers (got by ModuleLayer API) can help:

Boot layer modules:
module slf4j.api
module oracle.desktop
module jdk.internal.opt
module java.xml
module jdk.crypto.ec
module java.scripting
module slf4.simple
module jdk.management.agent
module jdk.naming.rmi
module java.instrument
module oracle.net
module java.management
module jdk.attach
module java.desktop
module jdk.security.jgss
module jdk.jconsole
module jdk.javaws
module java.management.rmi
module java.logging
module jdk.security.auth
module jdk.jartool
module jdk.editpad
module jdk.jfr
module jdk.internal.ed
module jdk.jdeps
module jdk.snmp
module jdk.internal.jvmstat
module jdk.scripting.nashorn
module jdk.jlink
module jdk.naming.dns
module java.xml.crypto
module java.base
module jdk.plugin
module jdk.unsupported
module jdk.compiler
module java.rmi
module javafx.base
module jdk.jstatd
module jdk.management.cmm
module javafx.media
module jdk.deploy
module jdk.sctp
module java.security.jgss
module java.sql.rowset
module jdk.dynalink
module javafx.graphics
module javafx.swing
module jdk.accessibility
module com.organization.alpha.core
module javafx.fxml
module javafx.controls
module java.prefs
module jdk.packager.services
module jdk.plugin.dom
module jdk.management.resource
module jdk.management.jfr
module java.se
module java.datatransfer
module com.organization.kit.jpms
module jdk.charsets
module jdk.zipfs
module jdk.packager
module jdk.crypto.cryptoki
module javafx.web
module jdk.jshell
module java.smartcardio
module java.jnlp
module jdk.javadoc
module jdk.management
module jdk.internal.le
module java.naming
module jdk.jsobject
module jdk.httpserver
module jdk.net
module jdk.localedata
module jdk.xml.dom
module java.sql
module com.organization.kit.core
module java.compiler
module jdk.jdi
module jdk.jdwp.agent
module java.security.sasl

Jetty layer modules:
module org.eclipse.jetty.servlet
module org.eclipse.jetty.security
module javax.servlet.api
module org.eclipse.jetty.webapp
module org.eclipse.jetty.util
module com.organization.webserver.core
module org.eclipse.jetty.server
module org.eclipse.jetty.xml
module org.eclipse.jetty.servlets
module org.eclipse.jetty.http
module org.eclipse.jetty.io
sbordet commented 5 years ago

@PashaTurok we found an issue when starting Jetty, and we pushed a fix to this branch, so please try the latest code on this branch. With this fix, we are able to start Jetty on the module path and deploy a web application to $JETTY_BASE/webapps/.

/tmp/jpms$ java -jar $JETTY_HOME/start.jar --add-to-start=http,deploy
/tmp/jpms$ cp $JETTY_HOME/demo-base/webapps/async-rest.war webapps/
/tmp/jpms$ java --module-path $JETTY_HOME/lib/:$JETTY_HOME/start.jar -m org.eclipse.jetty.start/org.eclipse.jetty.start.Main
...
2018-09-17 19:28:30.608:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@50f6ac94{Async REST Webservice Example,/async-rest,[file:///tmp/jetty-0.0.0.0-8080-async-rest.war-_async-rest-any-16846749093019213314.dir/webapp/, jar:file:///tmp/jetty-0.0.0.0-8080-async-rest.war-_async-rest-any-16846749093019213314.dir/webapp/WEB-INF/lib/example-async-rest-jar-9.4.13-SNAPSHOT.jar!/META-INF/resources],AVAILABLE}{/async-rest.war}

I think that you are getting the ClassNotFoundException because you don't set the thread context classloader properly. You should call Thread.setContextClassLoader(...) with the classloader you used to load the Jetty layer, just before invoking your class, so that when Jetty's Server starts, it will have the right classloader to load classes with.

Let us know how it goes.

PavelTurk commented 5 years ago

@sbordet Ok, I built the latest code. So the results. I again create separate JPMS layer for jetty and add the following modules to it:

    <module file="jetty-servlet-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-servlets-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-util-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-webapp-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-xml-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-http-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-io-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-security-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-server-9.4.13-SNAPSHOT.jar"/>
    <module file="javax.servlet-api-4.0.1.jar"/>
    <module file="apache-jsp-8.5.24.2.jar"/>
    <module file="taglibs-standard-impl-1.2.5.jar"/>
    <module file="org.eclipse.jdt.core-3.10.0.jar"/>
    <module file="com.organization.webserver.core-0.1.0-SNAPSHOT.jar"/>

The war file I put on classpath (-cp /home/Pavel/.....war). Pure servlets seem to work. However, I could not make JSP work. When in my TestServlet I do

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.getRequestDispatcher("/dynamic/about.jsp").include(request, response);
    }

and there is a jsp file (webapp/dynamic/about.jsp) jetty gives me only blank page without any errors in logs. Only this message:

2018-09-17 22:19:56:467 [qtp856980901-30] INFO org.eclipse.jetty.server.handler.ContextHandler.ROOT - No JSP support. Check that JSP jars are in lib/jsp and that the JSP option has been specified to start.jar

Do I do something wrong or the problem is in jetty?

sbordet commented 5 years ago

Did you set the thread context classloader?

PavelTurk commented 5 years ago

@sbordet Yes, it was my fault. Before starting jetty I set context classloader = jetty layer classloader and ClassNotFoundException was solved. Now I need to solve JSP problem.

sbordet commented 5 years ago

@PashaTurok can you explain how did you choose the jar files that provide JSP support? They do not match what Jetty provides by default, and that may be the cause of why JSP don't work.

Please look at what the standard Jetty distribution provides in JETTY_HOME/lib/apache-jsp/*. You may also need what's in JETTY_HOME/lib/apache-jstl/*.

Since Jetty reuses the Apache JSP implementation, I'm not sure if they are JPMS compliant.

PavelTurk commented 5 years ago

@sbordet Oh, I took them from pom. After your note I changed module list to :

    <module file="jetty-servlet-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-servlets-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-util-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-webapp-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-xml-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-http-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-io-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-security-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-server-9.4.13-SNAPSHOT.jar"/>
    <module file="javax.servlet-api-4.0.1.jar"/>
    <!-- JSP -->
    <module file="org.eclipse.jdt.ecj-3.12.3.jar"/>
    <module file="org.eclipse.jetty.apache-jsp-9.4.12.v20180830.jar"/>
    <module file="org.mortbay.jasper.apache-el-8.5.24.2.jar"/>
    <module file="org.mortbay.jasper.apache-jsp-8.5.24.2.jar"/>
    <module file="org.apache.taglibs.taglibs-standard-impl-1.2.5.jar"/>
    <module file="org.apache.taglibs.taglibs-standard-spec-1.2.5.jar"/>
    <module file="com.orgn.webserver.core-0.1.0-SNAPSHOT.jar"/>

Now jetty gives me the following ouput in browser:

HTTP ERROR 500

Problem accessing /. Reason:

    Server Error

Caused by:

org.apache.jasper.JasperException: Unable to compile class for JSP
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:610)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:368)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    at org.eclipse.jetty.apache.jsp@9.4.12.v20180830/org.eclipse.jetty.jsp.JettyJspServlet.service(JettyJspServlet.java:112)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
    at org.eclipse.jetty.security@9.4.13-SNAPSHOT/org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:566)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.Dispatcher.include(Dispatcher.java:124)
    at org.school.site.temp.TestServlet.processRequest(TestServlet.java:48)
    at org.school.site.temp.TestServlet.doGet(TestServlet.java:78)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:645)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:857)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
    at org.eclipse.jetty.security@9.4.13-SNAPSHOT/org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.Server.handle(Server.java:503)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
    at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.NullPointerException
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.JspCompilationContext.getTldResourcePath(JspCompilationContext.java:561)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:433)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.Parser.parseDirective(Parser.java:492)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.Parser.parseElements(Parser.java:1448)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.Parser.parse(Parser.java:145)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.ParserController.doParse(ParserController.java:244)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.ParserController.parse(ParserController.java:105)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:203)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.Compiler.compile(Compiler.java:374)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.Compiler.compile(Compiler.java:351)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.Compiler.compile(Compiler.java:335)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:595)
    ... 50 more

Caused by:

java.lang.NullPointerException
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.JspCompilationContext.getTldResourcePath(JspCompilationContext.java:561)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:433)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.Parser.parseDirective(Parser.java:492)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.Parser.parseElements(Parser.java:1448)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.Parser.parse(Parser.java:145)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.ParserController.doParse(ParserController.java:244)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.ParserController.parse(ParserController.java:105)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:203)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.Compiler.compile(Compiler.java:374)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.Compiler.compile(Compiler.java:351)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.compiler.Compiler.compile(Compiler.java:335)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:595)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:368)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    at org.eclipse.jetty.apache.jsp@9.4.12.v20180830/org.eclipse.jetty.jsp.JettyJspServlet.service(JettyJspServlet.java:112)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
    at org.eclipse.jetty.security@9.4.13-SNAPSHOT/org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:566)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.Dispatcher.include(Dispatcher.java:124)
    at org.school.site.temp.TestServlet.processRequest(TestServlet.java:48)
    at org.school.site.temp.TestServlet.doGet(TestServlet.java:78)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:645)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:857)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
    at org.eclipse.jetty.security@9.4.13-SNAPSHOT/org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.Server.handle(Server.java:503)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
    at java.base/java.lang.Thread.run(Thread.java:844)

I don't want to solve this problem now, so I am trying to compile jsp at building time and added this plugin to pom of the war project:

           <plugin>
                <groupId>org.eclipse.jetty</groupId>
                 <artifactId>jetty-jspc-maven-plugin</artifactId>
                 <version>9.4.12.v20180830</version>
                 <executions>
                   <execution>
                     <id>jspc</id>
                     <goals>
                       <goal>jspc</goal>
                     </goals>
                     <configuration>
                     </configuration>
                   </execution>
                 </executions>
               </plugin>

But now I get

Compiling dynamic/about.jsp from includes=**\/*.jsp, **\/*.jspx excludes=**\/.svn\/**
At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
joakime commented 5 years ago

I don't see the jetty-schemas jar file, it's necessary for JSP compilation and TLDs to function.

PavelTurk commented 5 years ago

I added jetty-schemas-4.0.1.jar to module list but it didn't help - the same error. Why I can't compile JPS using jetty-jspc-maven-plugin. Do I miss some configs?

sbordet commented 5 years ago

@PashaTurok we fixed another issue with the apache-jsp JPMS module name. Please pull the latest code.

After that we were able to compile and run a JSP.

Make sure that you have in your Jetty layer the jars in $JETTY_HOME/lib/annotations/, in particular the ASM jars (which are proper JPMS modules) - you probably need to explicitly add them to the module graph via --add-modules.

/tmp/jpms$ java -jar $JETTY_HOME/start.jar --add-to-start=http,deploy,jsp

The line above is enough (with the latest code) to compile and run JSPs for us.

PavelTurk commented 5 years ago

@sbordet Ok. After your commit a6abd0b I built jetty again and from that build I took ONLY two modules: apache-jsp-9.4.13-SNAPSHOT.jar, apache-jstl-9.4.13-SNAPSHOT.jar. All other JETTY modules I left from previous build. BTW asm is JPMS already. So now I have the following module list:

    <module file="jetty-servlet-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-servlets-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-util-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-webapp-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-xml-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-http-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-io-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-security-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-server-9.4.13-SNAPSHOT.jar"/>
    <module file="javax.servlet-api-4.0.1.jar"/>
    <!-- JSP -->
    <module file="org.eclipse.jdt.ecj-3.12.3.jar"/>
    <module file="org.eclipse.jetty.apache-jsp-9.4.12.v20180830.jar"/>
    <module file="org.mortbay.jasper.apache-el-8.5.24.2.jar"/>
    <module file="org.mortbay.jasper.apache-jsp-8.5.24.2.jar"/>
    <module file="org.apache.taglibs.taglibs-standard-impl-1.2.5.jar"/>
    <module file="org.apache.taglibs.taglibs-standard-spec-1.2.5.jar"/>
    <module file="jetty-schemas-4.0.1.jar"/>
    <module file="apache-jsp-9.4.13-SNAPSHOT.jar"/>
    <module file="apache-jstl-9.4.13-SNAPSHOT.jar"/>
    <module file="asm-6.2.jar"/>
    <module file="asm-commons-6.2.jar"/>
    <module file="asm-analysis-6.2.jar"/>
    <module file="asm-tree-6.2.jar"/>
    <module file="javax.annotation-api-1.2.jar"/>
    <module file="com.orgz.webserver.core-0.1.0-SNAPSHOT.jar"/>

However, I get Caused by: java.lang.module.ResolutionException: Modules org.eclipse.jetty.apache.jsp and apache.jsp export package org.eclipse.jetty.apache.jsp to module org.mortbay.apache.jasper. Seems I added some extra modules or do something wrong. Maybe I should take from last build this module org.eclipse.jetty.apache-jsp instead of apache-jsp-9.4.13-SNAPSHOT but I can't find it.

sbordet commented 5 years ago

Remove apache-jsp and apache-jstl jars.

PavelTurk commented 5 years ago

@sbordet Removed. However, why then did you ask me to pull the last changes if I don't add any new module? Maybe I should update this org.eclipse.jetty.apache-jsp-9.4.12.v20180830.jar? In what subproject is it localed?

Now I have such result org.apache.jasper.JasperException: Unable to compile class for JSP at org.mortbay.apache.jasper@8.5.24.2/org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:610) ....

janbartel commented 5 years ago

@PashaTurok all jetty jars should be the same release level: you've got org.eclipse.jetty.apache-jsp-9.4.12.v20180830.jar, but it should be 9.4.13-SNAPSHOT. This artifact is built in the apache-jsp sub-module in the jetty repo.

Not that this is the cause of your problem, but be aware that as of 9.4.13-SNAPSHOT we have upgraded the org.mortbay.jasper.* jars to version 8.5.33, and org.eclipse.jdt.ecj jar to version 3.14.0.

As to the output you see when doing precompilation with the jetty-jspc-maven-plugin, that is a warning that jasper puts out any time it scans a jar that does not contain any tlds. It is harmless.

PavelTurk commented 5 years ago

@janbartel Thank you for explanation, but still can't find org.eclipse.jetty.apache-jsp neither in jetty.project nor in maven repo. See this

Pavel@pavel-desktop:~/Temp/jetty.project/apache-jsp$ ls
pom.xml  src  target
Pavel@pavel-desktop:~/Temp/jetty.project/apache-jsp/target$ ls
apache-jsp-9.4.13-SNAPSHOT-config.jar  apache-jsp-9.4.13-SNAPSHOT-sources.jar  generated-sources           maven-status     pmd.xml
apache-jsp-9.4.13-SNAPSHOT.jar         archive-tmp                 maven-archiver              pmd
apache-jsp-9.4.13-SNAPSHOT-nolog.jar   classes                     maven-shared-archive-resources  pmd_logging_ruleset.xml
Pavel@pavel-desktop:~/.m2/repository/org/eclipse/jetty$ ls
aggregate    jetty-alpn-client  jetty-client        jetty-jaas   jetty-jspc-maven-plugin  jetty-quickstart  jetty-servlets   jetty-xml      websocket
alpn         jetty-alpn-parent  jetty-continuation  jetty-jaspi  jetty-parent         jetty-rewrite     jetty-util       orbit
apache-jsp   jetty-alpn-server  jetty-deploy        jetty-jmx    jetty-plus       jetty-security    jetty-util-ajax  osgi
apache-jstl  jetty-annotations  jetty-http      jetty-jndi   jetty-project        jetty-server      jetty-webapp     test-jetty-webapp
http2        jetty-ant      jetty-io        jetty-jsp    jetty-proxy          jetty-servlet     jetty-websocket  toolchain

Could you say the path to org.eclipse.jetty.apache-jsp startting from jetty.project?

sbordet commented 5 years ago

@PashaTurok the Jetty project has a module called apache-jsp that produces a jar called apache-jsp-9.4.13-SNAPSHOT.jar that used to have a wrong JPMS automatic module name - this was fixed in a6abd0b.

When the Jetty build creates the Jetty distribution, it renames the apache-jsp jar into $JETTY_HOME/lib/apache-jsp/org.eclipse.jetty.apache-jsp-9.4.13-SNAPSHOT.jar.

You can therefore use either only apache-jsp-9.4.13-SNAPSHOT.jar or only org.eclipse.jetty.apache-jsp-9.4.13-SNAPSHOT.jar as you prefer, but like @janbartel said, they must have the same version as all the other Jetty jars (in your case 9.4.13-SNAPSHOT).

I would prefer if you use the jars from the Jetty distribution (therefore under $JETTY_HOME/lib/), so that we are sure that A) you took them all and B) we are on the same page when we compare our way or running Jetty from the module path and your way of running Jetty from a JPMS layer created by your framework.

PavelTurk commented 5 years ago

@sbordet Thank you for you detailed explanation. I would never guess that you change file name. Maybe you should't do this :). Now I've built the latest jetty jars (for now I don't rename apache-jsp-9.4.13-SNAPSHOT.jar). This is my module list:

    <module file="jetty-servlet-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-servlets-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-util-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-webapp-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-xml-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-http-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-io-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-security-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-server-9.4.13-SNAPSHOT.jar"/>
    <module file="javax.servlet-api-4.0.1.jar"/>
    <!-- JSP -->
    <module file="apache-jsp-9.4.13-SNAPSHOT.jar"/>
    <module file="apache-jstl-9.4.13-SNAPSHOT.jar"/>
    <module file="org.eclipse.jdt.ecj-3.12.3.jar"/>
    <module file="apache-el-8.5.33.jar"/>
    <module file="apache-jsp-8.5.33.jar"/>
    <module file="org.apache.taglibs.taglibs-standard-impl-1.2.5.jar"/>
    <module file="org.apache.taglibs.taglibs-standard-spec-1.2.5.jar"/>
    <module file="jetty-schemas-4.0.1.jar"/>
    <module file="ecj-3.14.0.jar"/>
    <module file="asm-6.2.jar"/>
    <module file="asm-commons-6.2.jar"/>
    <module file="asm-analysis-6.2.jar"/>
    <module file="asm-tree-6.2.jar"/>
    <module file="javax.annotation-api-1.2.jar"/>
    <module file="com.orgz.webserver.core-0.1.0-SNAPSHOT.jar" activator-enabled="true"/>

This is what I get in browser:


HTTP ERROR 500

Problem accessing /. Reason:

    Server Error

Caused by:

org.apache.jasper.JasperException: Unable to compile class for JSP
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:610)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:382)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    at org.eclipse.jetty.apache.jsp@9.4.13-SNAPSHOT/org.eclipse.jetty.jsp.JettyJspServlet.service(JettyJspServlet.java:112)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
    at org.eclipse.jetty.security@9.4.13-SNAPSHOT/org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:566)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.Dispatcher.include(Dispatcher.java:124)
    at org.school.site.temp.TestServlet.processRequest(TestServlet.java:48)
    at org.school.site.temp.TestServlet.doGet(TestServlet.java:78)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:645)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:857)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
    at org.eclipse.jetty.security@9.4.13-SNAPSHOT/org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.Server.handle(Server.java:503)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
    at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.NullPointerException
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.JspCompilationContext.getTldResourcePath(JspCompilationContext.java:561)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:430)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Parser.parseDirective(Parser.java:489)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Parser.parseElements(Parser.java:1445)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Parser.parse(Parser.java:144)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.ParserController.doParse(ParserController.java:244)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.ParserController.parse(ParserController.java:105)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:202)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.compile(Compiler.java:350)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:595)
    ... 50 more

Caused by:

java.lang.NullPointerException
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.JspCompilationContext.getTldResourcePath(JspCompilationContext.java:561)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:430)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Parser.parseDirective(Parser.java:489)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Parser.parseElements(Parser.java:1445)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Parser.parse(Parser.java:144)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.ParserController.doParse(ParserController.java:244)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.ParserController.parse(ParserController.java:105)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:202)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.compile(Compiler.java:350)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:595)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:382)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    at org.eclipse.jetty.apache.jsp@9.4.13-SNAPSHOT/org.eclipse.jetty.jsp.JettyJspServlet.service(JettyJspServlet.java:112)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
    at org.eclipse.jetty.security@9.4.13-SNAPSHOT/org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:566)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.Dispatcher.include(Dispatcher.java:124)
    at org.school.site.temp.TestServlet.processRequest(TestServlet.java:48)
    at org.school.site.temp.TestServlet.doGet(TestServlet.java:78)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:645)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:857)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
    at org.eclipse.jetty.security@9.4.13-SNAPSHOT/org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.Server.handle(Server.java:503)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
    at java.base/java.lang.Thread.run(Thread.java:844)
sbordet commented 5 years ago

@PashaTurok you need also jetty-annotations-<ver>.jar.

PavelTurk commented 5 years ago

@sbordet I added. This is my module list now:


    <module file="jetty-servlet-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-servlets-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-util-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-webapp-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-xml-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-http-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-io-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-security-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-server-9.4.13-SNAPSHOT.jar"/>
    <module file="javax.servlet-api-4.0.1.jar"/>
    <!-- JSP -->
    <module file="apache-jsp-9.4.13-SNAPSHOT.jar"/>
    <module file="apache-jstl-9.4.13-SNAPSHOT.jar"/>
    <module file="jetty-annotations-9.4.13-SNAPSHOT.jar"/>
    <module file="org.eclipse.jdt.ecj-3.12.3.jar"/>
    <module file="apache-el-8.5.33.jar"/>
    <module file="apache-jsp-8.5.33.jar"/>
    <module file="org.apache.taglibs.taglibs-standard-impl-1.2.5.jar"/>
    <module file="org.apache.taglibs.taglibs-standard-spec-1.2.5.jar"/>
    <module file="jetty-schemas-4.0.1.jar"/>
    <module file="ecj-3.14.0.jar"/>
    <module file="asm-6.2.jar"/>
    <module file="asm-commons-6.2.jar"/>
    <module file="asm-analysis-6.2.jar"/>
    <module file="asm-tree-6.2.jar"/>
    <module file="javax.annotation-api-1.2.jar"/>
    <module file="com.orgz.webserver.core-0.1.0-SNAPSHOT.jar" activator-enabled="true"/>

However, I have the same error - nothing changed.

PavelTurk commented 5 years ago

@sbordet java.lang.NullPointerException at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.JspCompilationContext.getTldResourcePath(JspCompilationContext.java:561) appears if I add to my jsp file this <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>. If I don't add I have exception in another place:


HTTP ERROR 500

Problem accessing /. Reason:

    Server Error

Caused by:

org.apache.jasper.JasperException: Unable to compile class for JSP
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:610)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:382)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    at org.eclipse.jetty.apache.jsp@9.4.13-SNAPSHOT/org.eclipse.jetty.jsp.JettyJspServlet.service(JettyJspServlet.java:112)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
    at org.eclipse.jetty.security@9.4.13-SNAPSHOT/org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:566)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.Dispatcher.include(Dispatcher.java:124)
    at org.school.site.temp.TestServlet.processRequest(TestServlet.java:48)
    at org.school.site.temp.TestServlet.doGet(TestServlet.java:78)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:645)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:857)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
    at org.eclipse.jetty.security@9.4.13-SNAPSHOT/org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.Server.handle(Server.java:503)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
    at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.NullPointerException
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Validator$ValidateVisitor.<init>(Validator.java:516)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1854)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:220)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.compile(Compiler.java:350)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:595)
    ... 50 more

Caused by:

java.lang.NullPointerException
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Validator$ValidateVisitor.<init>(Validator.java:516)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1854)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:220)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.compile(Compiler.java:350)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:595)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:382)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    at org.eclipse.jetty.apache.jsp@9.4.13-SNAPSHOT/org.eclipse.jetty.jsp.JettyJspServlet.service(JettyJspServlet.java:112)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
    at org.eclipse.jetty.security@9.4.13-SNAPSHOT/org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:566)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.Dispatcher.include(Dispatcher.java:124)
    at org.school.site.temp.TestServlet.processRequest(TestServlet.java:48)
    at org.school.site.temp.TestServlet.doGet(TestServlet.java:78)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:645)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:857)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
    at org.eclipse.jetty.security@9.4.13-SNAPSHOT/org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.Server.handle(Server.java:503)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
    at java.base/java.lang.Thread.run(Thread.java:844)
sbordet commented 5 years ago

@PashaTurok if your JSP is just:

<% System.err.println("HELLO"); %>

does it work?

PavelTurk commented 5 years ago

@sbordet No, this is what I have:

HTTP ERROR 500

Problem accessing /. Reason:

    Server Error

Caused by:

org.apache.jasper.JasperException: Unable to compile class for JSP
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:610)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:382)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    at org.eclipse.jetty.apache.jsp@9.4.13-SNAPSHOT/org.eclipse.jetty.jsp.JettyJspServlet.service(JettyJspServlet.java:112)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
    at org.eclipse.jetty.security@9.4.13-SNAPSHOT/org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:566)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.Dispatcher.include(Dispatcher.java:124)
    at org.school.site.temp.TestServlet.processRequest(TestServlet.java:48)
    at org.school.site.temp.TestServlet.doGet(TestServlet.java:78)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:645)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:857)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
    at org.eclipse.jetty.security@9.4.13-SNAPSHOT/org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.Server.handle(Server.java:503)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
    at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.NullPointerException
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Validator$ValidateVisitor.<init>(Validator.java:516)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1854)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:220)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.compile(Compiler.java:350)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:595)
    ... 50 more

Caused by:

java.lang.NullPointerException
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Validator$ValidateVisitor.<init>(Validator.java:516)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1854)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:220)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.compile(Compiler.java:350)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:595)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:382)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    at org.mortbay.apache.jasper@8.5.33/org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    at org.eclipse.jetty.apache.jsp@9.4.13-SNAPSHOT/org.eclipse.jetty.jsp.JettyJspServlet.service(JettyJspServlet.java:112)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
    at org.eclipse.jetty.security@9.4.13-SNAPSHOT/org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:566)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.Dispatcher.include(Dispatcher.java:124)
    at org.school.site.temp.TestServlet.processRequest(TestServlet.java:48)
    at org.school.site.temp.TestServlet.doGet(TestServlet.java:78)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:645)
    at javax.servlet.api@4.0.1/javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:857)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
    at org.eclipse.jetty.security@9.4.13-SNAPSHOT/org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
    at org.eclipse.jetty.servlet@9.4.13-SNAPSHOT/org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.Server.handle(Server.java:503)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
    at org.eclipse.jetty.server@9.4.13-SNAPSHOT/org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
    at org.eclipse.jetty.io@9.4.13-SNAPSHOT/org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
    at org.eclipse.jetty.util@9.4.13-SNAPSHOT/org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
    at java.base/java.lang.Thread.run(Thread.java:844)

Powered by Jetty:// 9.4.z-SNAPSHOT 
sbordet commented 5 years ago

Please add: jetty-plus-<v>.jar, jetty-jndi-<v>.jar.