Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jetty-users] Deployng Axis2 war in Jetty from API

Hello
 
This is my first Jetty war deployment.
I'm trying to deploy axis2.war in Jetty. The deployment is fine but when I load http://localhost:8080/axis2 Jetty gives me the error: "org.apache.jasper.JasperException: Unable to compile class for JSP"
I tried to activate JSP as in this project https://github.com/jetty-project/embedded-jetty-jsp
My code is:
 
package HttpTest;
 
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.lang.management.ManagementFactory;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.jasper.servlet.JspServlet;
import org.eclipse.jetty.jmx.MBeanContainer;
import org.eclipse.jetty.jsp.JettyJspServlet;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.AllowSymLinkAliasChecker;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.webapp.WebAppContext;
 
public class JettyTest {
    private static final String WEBROOT_INDEX = "/";
    public void test() {
        try {
            Server server = new Server(8080);
            MBeanContainer mbContainer = new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
            server.addBean(mbContainer);
           
            URI baseUri = getWebRootResourceUri();
            WebAppContext webapp = new WebAppContext();
            webapp.setContextPath(WEBROOT_INDEX);
            File warFile = new File("./wars/axis2.war");
            System.setProperty("org.apache.jasper.compiler.disablejsr199","false");
 
            ServletHolder holderDefault = new ServletHolder("default",DefaultServlet.class);
            holderDefault.setInitParameter("resourceBase",baseUri.toASCIIString());
            holderDefault.setInitParameter("dirAllowed","true");
            webapp.addServlet(holderDefault,"/");
 
            webapp.setAttribute("javax.servlet.context.tempdir", getScratchDir());
            webapp.addServlet(jspServletHolder(), "*.jsp");
 
            webapp.setWar(warFile.getAbsolutePath());
            webapp.addAliasCheck(new AllowSymLinkAliasChecker());
           
//            ClassLoader jspClassLoader = new URLClassLoader(new URL[0], this.getClass().getClassLoader());
//            webapp.setClassLoader(jspClassLoader);
 
            server.setHandler(webapp);
            server.start();
            server.join();
        } catch (Exception ex) {
            Logger.getLogger(JettyTest.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
 
    private static File getScratchDir() throws IOException {
        File tempDir = new File(System.getProperty("java.io.tmpdir"));
        File scratchDir = new File(tempDir.toString(), "embedded-jetty-jsp");
 
        if (!scratchDir.exists())
        {
            if (!scratchDir.mkdirs())
            {
                throw new IOException("Unable to create scratch directory: " + scratchDir);
            }
        }
        return scratchDir;
    }
    private static  ServletHolder jspServletHolder()
    {
        ServletHolder holderJsp = new ServletHolder("*.jsp", JettyJspServlet.class);
        holderJsp.setInitOrder(0);
        holderJsp.setInitParameter("logVerbosityLevel", "DEBUG");
        holderJsp.setInitParameter("fork", "false");
        holderJsp.setInitParameter("xpoweredBy", "false");
        holderJsp.setInitParameter("compilerTargetVM", "1.8");
        holderJsp.setInitParameter("compilerSourceVM", "1.8");
        holderJsp.setInitParameter("keepgenerated", "true");
        return holderJsp;
    }
    private URI getWebRootResourceUri() throws FileNotFoundException, URISyntaxException
    {
        URL indexUri = this.getClass().getResource(WEBROOT_INDEX);
        if (indexUri == null)
        {
            throw new FileNotFoundException("Unable to find resource " + WEBROOT_INDEX);
        }
        // Points to wherever /webroot/ (the resource) is
        return indexUri.toURI();
    }
 
}
 
 
 
 
 
And Jetty log is:
7 [main] INFO org.eclipse.jetty.util.log - Logging initialized @297ms
274 [main] INFO org.eclipse.jetty.server.Server - jetty-9.3.9.v20160517
3538 [main] WARN org.eclipse.jetty.webapp.StandardDescriptorProcessor - Duplicate mapping from / to default
[INFO] Clustering has been disabled
[INFO] Deploying module: addressing-1.7.3 - file:/C:/Users/victor/AppData/Local/Temp/embedded-jetty-jsp/webapp/WEB-INF/modules/addressing-1.7.3.mar
[INFO] Deploying module: jaxws-1.7.3 - file:/C:/Users/victor/AppData/Local/Temp/embedded-jetty-jsp/webapp/WEB-INF/modules/axis2-jaxws-mar-1.7.3.mar
[INFO] Deploying module: metadataExchange-1.7.3 - file:/C:/Users/victor/AppData/Local/Temp/embedded-jetty-jsp/webapp/WEB-INF/modules/mex-1.7.3.mar
[INFO] Deploying module: mtompolicy-1.7.3 - file:/C:/Users/victor/AppData/Local/Temp/embedded-jetty-jsp/webapp/WEB-INF/modules/mtompolicy-1.7.3.mar
[INFO] Deploying module: ping-1.7.3 - file:/C:/Users/victor/AppData/Local/Temp/embedded-jetty-jsp/webapp/WEB-INF/modules/ping-1.7.3.mar
[INFO] Deploying module: script-1.7.3 - file:/C:/Users/victor/AppData/Local/Temp/embedded-jetty-jsp/webapp/WEB-INF/modules/scripting-1.7.3.mar
[INFO] Deploying module: soapmonitor-1.7.3 - file:/C:/Users/victor/AppData/Local/Temp/embedded-jetty-jsp/webapp/WEB-INF/modules/soapmonitor-1.7.3.mar
[INFO] Deploying Web service: version-1.7.3.aar - file:/C:/Users/victor/AppData/Local/Temp/embedded-jetty-jsp/webapp/WEB-INF/services/version-1.7.3.aar
4846 [main] INFO org.eclipse.jetty.server.handler.ContextHandler - Started
o.e.j.w.WebAppContext@17d0008{/,file:///C:/Users/victor/AppData/Local/Temp/embedded-jetty-jsp/webapp/,AVAILABLE}{C:\Users\victor\Documents\NetBeansProjects\sr010\.\wars\axis2.war}
4875 [main] INFO org.eclipse.jetty.server.AbstractConnector - Started
ServerConnector@17a2457{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
4875 [main] INFO org.eclipse.jetty.server.Server - Started @5168ms
8398 [qtp26871468-10] WARN org.eclipse.jetty.server.handler.ErrorHandler - EXCEPTION
org.apache.jasper.JasperException: Unable to compile class for JSP
 at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:600)
 at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
 at org.eclipse.jetty.jsp.JettyJspServlet.service(JettyJspServlet.java:108)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
 at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:845)
 at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583)
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
 at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:566)
 at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
 at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1174)
 at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)
 at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
 at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1106)
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
 at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:199)
 at org.eclipse.jetty.server.Dispatcher.error(Dispatcher.java:79)
 at org.eclipse.jetty.server.handler.ErrorHandler.handle(ErrorHandler.java:94)
 at org.eclipse.jetty.server.Response.sendError(Response.java:571)
 at org.eclipse.jetty.server.Response.sendError(Response.java:511)
 at org.eclipse.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:477)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
 at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:845)
 at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583)
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
 at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
 at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
 at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1174)
 at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)
 at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
 at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1106)
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
 at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
 at org.eclipse.jetty.server.Server.handle(Server.java:524)
 at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:319)
 at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:253)
 at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
 at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
 at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
 at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
 at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
 at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
 at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
 at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
 at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
 at org.apache.jasper.compiler.Validator$ValidateVisitor.<init>(Validator.java:515)
 at org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1853)
 at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:217)
 at org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
 at org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
 at org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
 at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
 ... 46 more
 
Thank you.

Back to the top