Skip to content

[QUESTION] How to native run jaxrs bundle based on Jetty/Jersey/Weld #779

@nhenneaux

Description

@nhenneaux

Describe the problem
I try to run a simple application based on Jetty/Jersey/Weld in native mode using standard maven plugin configuration without success.

Following exception is raised at startup

Caused by: java.util.MissingResourceException: Can't find bundle for base name org.glassfish.jaxb.core.v2.Messages, locale en_US

I haven't found similar problem with solution elsewhere, sorry if it was already raised.

Make sure that you have read the documentation and that you are using the latest plugin version.

Additional context
Add any other context about the problem here.

System Info (please complete the following information):

  • OS: [e.g. Windows] Ubuntu 24.04.3 LTS
  • GraalVM Version [e.g. 22.0 CE] OpenJDK Runtime Environment GraalVM CE 25+36.1 (build 25+36-Ubuntu-1ubuntu124.04.3)
  • Java Version [e.g. 17] 25
  • Plugin version [e.g. native-gradle-plugin:0.9.10] org.graalvm.buildtools
    native-maven-plugin
    0.11.1

To Reproduce
If possible please attach a complete reproducer here (either as a zip file or as a link to public repository/branch).
From branch nhenneaux/jaxrs-bundle#23

mvn -Pnative package 

Full stacktrace

jetty-12.1.1; built: 2025-09-08T04:29:45.457Z; git: b7068950f9afa5f1df80e46053eda1d982895b03; jvm 25+36-Ubuntu-1ubuntu124.04.3
Started oeje10s.ServletContextHandler@789d9be2{ROOT,/,b=null,a=AVAILABLE,h=oeje10s.ServletHandler@29ff7dd2{STARTED}}
Exception in thread "main" java.lang.ExceptionInInitializerError
        at org.glassfish.jaxb.runtime.v2.ContextFactory.createContext(ContextFactory.java:241)
        at org.glassfish.jaxb.runtime.v2.JAXBContextFactory.createContext(JAXBContextFactory.java:58)
        at jakarta.xml.bind.ContextFinder.find(ContextFinder.java:322)
        at jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:392)
        at jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:349)
        at org.glassfish.jersey.server.wadl.internal.WadlApplicationContextImpl.getJAXBContextFromWadlGenerator(WadlApplicationContextImpl.java:121)
        at org.glassfish.jersey.server.wadl.internal.WadlApplicationContextImpl.isJaxbImplAvailable(WadlApplicationContextImpl.java:270)
        at org.glassfish.jersey.server.wadl.WadlFeature.configure(WadlFeature.java:65)
        at org.glassfish.jersey.model.internal.CommonConfig.configureFeatures(CommonConfig.java:722)
        at org.glassfish.jersey.model.internal.CommonConfig.configureMetaProviders(CommonConfig.java:641)
        at org.glassfish.jersey.server.ResourceConfig.configureMetaProviders(ResourceConfig.java:833)
        at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:344)
        at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$1(ApplicationHandler.java:309)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
        at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:232)
        at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:308)
        at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:273)
        at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:315)
        at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:154)
        at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:339)
        at jakarta.servlet.GenericServlet.init(GenericServlet.java:178)
        at jakarta.servlet.http.HttpServlet.init(HttpServlet.java:107)
        at org.eclipse.jetty.ee10.servlet.ServletHolder.initServlet(ServletHolder.java:640)
        at org.eclipse.jetty.ee10.servlet.ServletHolder.initialize(ServletHolder.java:427)
        at org.eclipse.jetty.ee10.servlet.ServletHandler.lambda$initialize$2(ServletHandler.java:665)
        at org.eclipse.jetty.util.ExceptionUtil.call(ExceptionUtil.java:370)
        at org.eclipse.jetty.util.ExceptionUtil$MultiException.callAndCatch(ExceptionUtil.java:302)
        at org.eclipse.jetty.ee10.servlet.ServletHandler.lambda$initialize$3(ServletHandler.java:662)
        at java.base@25/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357)
        at java.base@25/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:571)
        at java.base@25/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
        at java.base@25/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:315)
        at java.base@25/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
        at java.base@25/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:803)
        at org.eclipse.jetty.ee10.servlet.ServletHandler.initialize(ServletHandler.java:685)
        at org.eclipse.jetty.ee10.servlet.ServletContextHandler.startContext(ServletContextHandler.java:1350)
        at org.eclipse.jetty.ee10.servlet.ServletContextHandler.lambda$doStart$0(ServletContextHandler.java:1066)
        at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.call(ContextHandler.java:1582)
        at org.eclipse.jetty.ee10.servlet.ServletContextHandler.doStart(ServletContextHandler.java:1063)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:170)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
        at org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:545)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:170)
        at org.eclipse.jetty.server.Server.start(Server.java:652)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
        at org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:545)
        at org.eclipse.jetty.server.Server.doStart(Server.java:593)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
        at com.github.nhenneaux.jaxrs.bundle.JettyServer.<init>(JettyServer.java:61)
        at com.github.nhenneaux.jaxrs.bundle.Bootstrap.main(Bootstrap.java:14)
        at java.base@25/java.lang.invoke.LambdaForm$DMH/sa346b79c.invokeStaticInit(LambdaForm$DMH)
Caused by: java.util.MissingResourceException: Can't find bundle for base name org.glassfish.jaxb.core.v2.Messages, locale en_US
        at java.base@25/java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:2012)
        at java.base@25/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1664)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk.localization.substitutions.Target_java_util_ResourceBundle$2.get(Target_java_util_ResourceBundle.java:142)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk.localization.substitutions.Target_java_util_ResourceBundle$2.get(Target_java_util_ResourceBundle.java:139)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.MissingRegistrationUtils.runIgnoringMissingRegistrations(MissingRegistrationUtils.java:143)
        at java.base@25/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:139)
        at java.base@25/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1529)
        at java.base@25/java.util.ResourceBundle.getBundle(ResourceBundle.java:848)
        at org.glassfish.jaxb.core.v2.Messages.<clinit>(Messages.java:34)
        ... 54 more

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions