AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-30136027

Quinten's questions

Martin Hope
Quinten
Asked: 2025-04-02 07:04:16 +0800 CST

JAXB ClassNotFoundException mesmo que as dependências estejam disponíveis

  • 6

Estou usando Hibernate no meu aplicativo Java e simplesmente não consigo me livrar dessa ClassNotFoundException com JAXB. Eu literalmente tentei de tudo, mas não consigo consertar.

Estou usando Java 21.

Aqui está o erro que recebo:

    Caused by: jakarta.xml.bind.JAXBException: Implementation of Jakarta XML Binding-API has not been found on module path or classpath.
    at jakarta.xml.bind.ContextFinder.newInstance(ContextFinder.java:252) ~[?:?]
    at jakarta.xml.bind.ContextFinder.newInstance(ContextFinder.java:240) ~[?:?]
    at jakarta.xml.bind.ContextFinder.find(ContextFinder.java:381) ~[?:?]
    at jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:605) ~[?:?]
    at jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:546) ~[?:?]
    at org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:121) ~[?:?]
    ... 25 more
Caused by: java.lang.ClassNotFoundException: org.glassfish.jaxb.runtime.v2.ContextFactory
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?]
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593) ~[?:?]
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[?:?]
    at jakarta.xml.bind.ServiceLoaderUtil.nullSafeLoadClass(ServiceLoaderUtil.java:113) ~[?:?]
    at jakarta.xml.bind.ServiceLoaderUtil.safeLoadClass(ServiceLoaderUtil.java:146) ~[?:?]
    at jakarta.xml.bind.ContextFinder.newInstance(ContextFinder.java:250) ~[?:?]
    at jakarta.xml.bind.ContextFinder.newInstance(ContextFinder.java:240) ~[?:?]
    at jakarta.xml.bind.ContextFinder.find(ContextFinder.java:381) ~[?:?]
    at jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:605) ~[?:?]
    at jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:546) ~[?:?]
    at org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:121) ~[?:?]
    ... 25 more

E aqui está meu arquivo POM completo:

    <groupId>org.test.project</groupId>
    <artifactId>project-core</artifactId>
    <version>1.0-SNAPSHOT</version>

    <name>project-core</name>
    <description>test project</description>

    <repositories>
        <repository>
            <id>spigot-repo</id>
            <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
        </repository>
        <repository>
            <id>minecraft-repo</id>
            <url>https://libraries.minecraft.net/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot-api</artifactId>
            <version>1.21.4-R0.1-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.hibernate.orm/hibernate-core -->
        <dependency>
            <groupId>org.hibernate.orm</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>6.6.12.Final</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j -->
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>9.2.0</version>
        </dependency>
    </dependencies>

    <build>
        <defaultGoal>clean install</defaultGoal>
        <resources>
            <resource>
                <directory>${project.basedir}/src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            <!-- Maven Compiler Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>21</source>
                    <target>21</target>
                </configuration>
            </plugin>

            <!-- Maven Shade Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.4</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

Observe que removi as dependências JAXB neste arquivo POM, mas já tentei adicionar a API JAXB e a implementação de tempo de execução e ele continuou me dando esse erro. Como eu disse antes, descompilei meu arquivo JAR e org.glassfish.jaxb.runtime.v2.ContextFactory foi compilado corretamente, pois faz parte da dependência do Hibernate.

Estas são as dependências que tentei adicionar antes:

<dependency>
    <groupId>jakarta.xml.bind</groupId>
    <artifactId>jakarta.xml.bind-api</artifactId>
    <version>4.0.0</version> 
</dependency>
<!-- JAXB Reference Implementation -->
<dependency>
    <groupId>org.glassfish.jaxb</groupId>
    <artifactId>jaxb-runtime</artifactId>
    <version>4.0.0</version> 
    <scope>runtime</scope>
</dependency>

Também tentei várias versões dessas dependências. E tentei as dependências sun que também não funcionaram.

Tentei incluir classpaths no arquivo MANIFEST.mf - isso não resolveu o problema. E tentei usar a dependência Moxy do Eclipse em vez de JAXB (e incluí jaxb.properties), isso também não resolveu o problema.

Além disso, tentei adicionar as dependências do jaxb e excluí-las da dependência do Hibernate para garantir que não fossem conflitantes, mas isso também não resolveu o problema.

Tentei executá-lo em várias versões do Java e, como você pode imaginar, também não obtive sucesso.

Eu tentei todas as coisas possíveis para me livrar do java.lang.ClassNotFoundException: org.glassfish.jaxb.runtime.v2.ContextFactory e fazer o Hibernate funcionar, mas eu simplesmente não consigo consertá-lo. O que mais eu posso tentar? Ajuda é muito apreciada!

java
  • 1 respostas
  • 43 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve