You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Duo Zhang (JIRA)" <ji...@apache.org> on 2017/04/19 05:56:41 UTC
[jira] [Updated] (HBASE-17940) HMaster can not start due to Jasper
related classes conflict
[ https://issues.apache.org/jira/browse/HBASE-17940?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Duo Zhang updated HBASE-17940:
------------------------------
Affects Version/s: 2.0.0
Priority: Blocker (was: Major)
Fix Version/s: 2.0.0
Component/s: pom
dependencies
Make it blocker for 2.0.0.
> HMaster can not start due to Jasper related classes conflict
> ------------------------------------------------------------
>
> Key: HBASE-17940
> URL: https://issues.apache.org/jira/browse/HBASE-17940
> Project: HBase
> Issue Type: Bug
> Components: dependencies, pom
> Affects Versions: 2.0.0
> Reporter: Duo Zhang
> Priority: Blocker
> Fix For: 2.0.0
>
>
> I got this
> {noformat}
> java.lang.RuntimeException: Failed construction of Master: class org.apache.hadoop.hbase.master.HMaster.
> at org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2692)
> at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:235)
> at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:139)
> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
> at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:127)
> at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2703)
> Caused by: java.lang.NoSuchFieldError: IS_SECURITY_ENABLED
> at org.apache.jasper.compiler.JspRuntimeContext.<init>(JspRuntimeContext.java:194)
> at org.apache.jasper.servlet.JspServlet.init(JspServlet.java:159)
> at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:640)
> at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:419)
> at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:875)
> at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:348)
> at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1379)
> at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1341)
> at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:772)
> at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:261)
> at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:517)
> at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
> at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
> at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
> at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
> at org.eclipse.jetty.server.Server.start(Server.java:405)
> at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:106)
> at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
> at org.eclipse.jetty.server.Server.doStart(Server.java:372)
> at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> at org.apache.hadoop.hbase.http.HttpServer.start(HttpServer.java:969)
> at org.apache.hadoop.hbase.http.InfoServer.start(InfoServer.java:100)
> at org.apache.hadoop.hbase.regionserver.HRegionServer.putUpWebUI(HRegionServer.java:1887)
> at org.apache.hadoop.hbase.regionserver.HRegionServer.<init>(HRegionServer.java:620)
> at org.apache.hadoop.hbase.master.HMaster.<init>(HMaster.java:461)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
> at org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2685)
> ... 5 more
> {noformat}
> The problem is that, we have same classes in two jars, javax.servlet.jsp-2.3.2.jar and jasper-compiler-5.5.23.jar, such as org.apache.jasper.Constants and org.apache.jasper.compiler.JspRuntimeContext. Here seems for JspRuntimeContext we use the version from javax.servlet.jsp, but for Constants we use the version from jasper-compiler.
> javax.servlet.jsp is a transitive dependency from jetty jsp, and jasper-compiler is a dependency directly in our pom for hbase-server.
> We need to find a way to deal with it.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)