Duo Zhang created HBASE-30328:
---------------------------------
Summary: Missing javax.annotation dependency causes webui start up
error when building with hadoop2
Key: HBASE-30328
URL: https://issues.apache.org/jira/browse/HBASE-30328
Project: HBase
Issue Type: Bug
Components: dependencies, hadoop2, monitoring
Reporter: Duo Zhang
{noformat}
2026-08-06T06:55:17,193 ERROR [main] regionserver.HRegionServer: Failed
construction RegionServer
java.lang.NoClassDefFoundError: javax/annotation/Priority
at
org.apache.hbase.thirdparty.org.glassfish.jersey.model.internal.ComponentBag.modelFor(ComponentBag.java:529)
at
org.apache.hbase.thirdparty.org.glassfish.jersey.model.internal.ComponentBag.lambda$registerModel$10(ComponentBag.java:454)
at
org.apache.hbase.thirdparty.org.glassfish.jersey.internal.Errors.process(Errors.java:292)
at
org.apache.hbase.thirdparty.org.glassfish.jersey.internal.Errors.process(Errors.java:274)
at
org.apache.hbase.thirdparty.org.glassfish.jersey.internal.Errors.process(Errors.java:205)
at
org.apache.hbase.thirdparty.org.glassfish.jersey.model.internal.ComponentBag.registerModel(ComponentBag.java:446)
at
org.apache.hbase.thirdparty.org.glassfish.jersey.model.internal.ComponentBag.register(ComponentBag.java:283)
at
org.apache.hbase.thirdparty.org.glassfish.jersey.model.internal.CommonConfig.register(CommonConfig.java:411)
at
org.apache.hbase.thirdparty.org.glassfish.jersey.server.ResourceConfig.register(ResourceConfig.java:402)
at
org.apache.hadoop.hbase.master.http.api_v1.ResourceConfigFactory.createResourceConfig(ResourceConfigFactory.java:48)
at
org.apache.hadoop.hbase.master.HMaster.buildApiV1Servlet(HMaster.java:771)
at
org.apache.hadoop.hbase.master.HMaster.configureInfoServer(HMaster.java:761)
at
org.apache.hadoop.hbase.regionserver.HRegionServer.putUpWebUI(HRegionServer.java:2501)
at
org.apache.hadoop.hbase.regionserver.HRegionServer.<init>(HRegionServer.java:745)
at org.apache.hadoop.hbase.master.HMaster.<init>(HMaster.java:487)
at
org.apache.hadoop.hbase.master.HMasterCommandLine$LocalHMaster.<init>(HMasterCommandLine.java:322)
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.util.JVMClusterUtil.createMasterThread(JVMClusterUtil.java:124)
at
org.apache.hadoop.hbase.LocalHBaseCluster.addMaster(LocalHBaseCluster.java:222)
at
org.apache.hadoop.hbase.LocalHBaseCluster.<init>(LocalHBaseCluster.java:169)
at
org.apache.hadoop.hbase.LocalHBaseCluster.<init>(LocalHBaseCluster.java:112)
at
org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:241)
at
org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:147)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
at
org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:140)
at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:3479)
Caused by: java.lang.ClassNotFoundException: javax.annotation.Priority
at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 29 more
{noformat}
Jersey depends on javax.annotation.Priority, which is not include in JDK8's
javax annotations, so even for JDK8, we need to pull in javax.annotation by our
own.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)