You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "stack (JIRA)" <ji...@apache.org> on 2017/08/19 20:37:02 UTC

[jira] [Created] (HBASE-18636) Cannot run REST server out of a built checkout; fails with NoSuchMethodError: javax.ws.rs.core.Application.getProperties

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)