stack created HBASE-18636:
-----------------------------

             Summary: Cannot run REST server out of a built checkout; fails 
with NoSuchMethodError: javax.ws.rs.core.Application.getProperties
                 Key: HBASE-18636
                 URL: https://issues.apache.org/jira/browse/HBASE-18636
             Project: HBase
          Issue Type: Sub-task
          Components: REST
            Reporter: stack
            Priority: Minor


I think this a symptom of our move to jersey2 but haven't done the work to 
verify. Besides, it is a minor inconvenience as we make the migration from 
jersey1 to jersey2 but here I make note  of it.

While the REST unit tests pass and if you run hbase and then the rest server 
out of a built tarball, this works too, what does not work is running a REST 
server in-situ out of a built checkout; i.e. checkout, mvn install, and then do 
start-hbase.sh followed by hbase-daemon.sh rest start. HBase starts but the 
rest server does not. In its .out you will find the below exception which 
occurs because we have jersey1 and jersey2 on our CLASSPATH and REST on startup 
is finding jersey1 first in which the cited method does not exist.

See the parent issue for struggles trying to take hbase pure jersey2. It 
involves lots of filtering out of transitive includes that are coming in from 
hadoop. It also means we undo our use of the Jackson1Feature trick since it 
depends on jersey1. While we get to a place where we can launch REST in-situ 
out of the build dir, we break the world of unit tests that want to run yarn et 
al.

Filing this for now. It is low-priority I think and hopefully the learnings 
from the parent issue help move us to jersey2 and then this issue will 
evaporate.

{code}
Exception in thread "main" java.lang.NoSuchMethodError: 
javax.ws.rs.core.Application.getProperties()Ljava/util/Map;
  at 
org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:331)
  at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:392)
  at 
org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:177)
  at 
org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:369)
  at javax.servlet.GenericServlet.init(GenericServlet.java:244)
  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.server.handler.ContextHandler.doStart(ContextHandler.java:772)
  at 
org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:261)
  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.rest.RESTServer.main(RESTServer.java:356)
{code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to