Hi,
We’re trying to use REST v2. We are using these packages
<dependency>
<groupId>jakarta.ws.rs</groupId>
<artifactId>jakarta.ws.rs-api</artifactId>
<version>2.1.6</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.atlassian.plugins.rest</groupId>
<artifactId>atlassian-rest-v2-api</artifactId>
<version>8.0.0-m14</version>
<scope>provided</scope>
</dependency>
Our REST endpoints work but with each call we get this warning/error in the log
[INFO] [talledLocalContainer] INFO: Initiating Jersey application, version 'Jersey: 1.19.5-atlassian-17 e82a5696e4ec99aa82f929706300af9a18da3870'
[INFO] [talledLocalContainer] 17:10:30,644 WARN [http-nio-1990-exec-8] [jersey.internal.Errors] logErrors The following warnings have been detected: WARNING: HK2 service reification failed for [com.example.atlassian.plugin.web.DraftResource] with an exception:\nMultiException stack 1 of 2\njava.lang.NoSuchMethodException: Could not find a suitable constructor in com.example.atlassian.plugin.web.DraftResource class.\n\tat org.glassfish.jersey.inject.hk2.JerseyClassAnalyzer.getConstructor(JerseyClassAnalyzer.java:168)\n\tat org.jvnet.hk2.internal.Utilities.getConstructor(Utilities.java:156)\n\tat org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:105)\n\tat org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:156)\n\tat org.jvnet.hk2.internal.SystemDescriptor.internalReify(SystemDescriptor.java:716)\n\tat org.jvnet.hk2.internal.SystemDescriptor.reify(SystemDescriptor.java:670)\n\tat org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:442)\n\tat org.jvnet.hk2.internal.ServiceLocatorImpl.narrow(ServiceLocatorImpl.java:2300)\n\tat org.jvnet.hk2.internal.ServiceLocatorImpl.igdCacheCompute(ServiceLocatorImpl.java:1176)\n\tat org.jvnet.hk2.internal.ServiceLocatorImpl.access$400(ServiceLocatorImpl.java:106)\n\tat org.jvnet.hk2.internal.ServiceLocatorImpl$8.compute(ServiceLocatorImpl.java:1170)\n\tat org.jvnet.hk2.internal.ServiceLocatorImpl$8.compute(ServiceLocatorImpl.java:1167)\n\tat org.glassfish.hk2.utilities.cache.internal.WeakCARCacheImpl.compute(WeakCARCacheImpl.java:105)\n\tat org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetDescriptor(ServiceLocatorImpl.java:1250)\n\tat org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetService(ServiceLocatorImpl.java:754)\n\tat org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetService(ServiceLocatorImpl.java:721)\n\tat org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:691)\n\tat org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.getInstance(AbstractHk2InjectionManager.java:161)\n\tat org.glassfish.jersey.inject.hk2.ImmediateHk2InjectionManager.getInstance(ImmediateHk2InjectionManager.java:30)\n\tat org.glassfish.jersey.internal.inject.Injections.getOrCreate(Injections.java:122)\n\tat org.glassfish.jersey.server.model.MethodHandler$ClassBasedMethodHandler.getInstance(MethodHandler.java:260)\n\tat org.glassfish.jersey.server.internal.routing.PushMethodHandlerRouter.apply(PushMethodHandlerRouter.java:51)\n\tat org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:86)\n\tat org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:89)\n\tat org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:89)\n\tat org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:89)\n\tat org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:89)\n\tat org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:69)\n\tat org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:38)\n\tat org.glassfish.jersey.process.internal.Stages.process(Stages.java:173)\n\tat org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:248)\n\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)\n\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)\n\tat org.glassfish.jersey.internal.Errors.process(Errors.java:292)\n\tat org.glassfish.jersey.internal.Errors.process(Errors.java:274)\n\tat org.glassfish.jersey.internal.Errors.process(Errors.java:244)\n\tat org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)\n\tat org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:235)\n\tat org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684)\n\tat org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)\n\tat org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)\n\tat org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:359)\n\tat com.atlassian.plugins.rest.v2.jersey.JerseyOsgiServletContainer.doFilter(JerseyOsgiServletContainer.java:74)\n\tat org.glassfish.jersey.servlet.ServletContainer.doFilter(ServletContainer.java:432)\n\tat com.atlassian.plugins.rest.v2.servlet.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:80)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:62)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:56)\n\tat com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:44)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:62)\n\tat com.atlassian.confluence.plugin.servlet.filter.AccessCheckPluginDelegateFilter.doFilter(AccessCheckPluginDelegateFilter.java:34)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.lambda$doFilter$0(DelegatingPluginFilter.java:57)\n\tat com.atlassian.confluence.plugins.baseurl.IncludeResourcesFilter.doFilter(IncludeResourcesFilter.java:52)\n\tat com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:32)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:62)\n\tat com.atlassian.confluence.plugin.servlet.filter.AccessCheckPluginDelegateFilter.doFilter(AccessCheckPluginDelegateFilter.java:34)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.lambda$doFilter$0(DelegatingPluginFilter.java:57)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:39)\n\tat com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:56)\n\tat com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:44)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:62)\n\tat com.atlassian.confluence.plugin.servlet.filter.AccessCheckPluginDelegateFilter.doFilter(AccessCheckPluginDelegateFilter.java:34)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.lambda$doFilter$0(DelegatingPluginFilter.java:57)\n\tat ...
Also, in https://developer.atlassian.com/platform/marketplace/dc-apps-platform-7/ it says Platform 7 moved from javax ones to jakarta but REST v2 uses jakarta.ws.rs-api:2.1.6 is still using javax.ws.rs and using the latest version breaks the plugin.
Can you please help
Thanks