Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Imports Jakarta x Javax

Estou acompanhando o curso utilizando outras versões do Java e do Wildfly (15 e 22.0, respectivamente), e estou com uma dúvida em relação aos imports, tanto do EBJ como do persistence.

No cenário exatamente igual ao do curso, usando essas versões, o único import disponível para @Stateless, @Entity vem da lib Jakarta e não Javax. Entretanto, usando esse import, simplesmente nada funciona, o Wildfly não reconhece o Bean, não reconhece a entidade do banco (diz que não está mapeada), etc.

O problema só é sanado ao importar via pom.xml as bibliotecas do javax e forçar esses imports.

Alguém sabe a razão desse comportamento? Existe alguma forma de utilizar os imports do jakarta ou eles não são compatíveis com esses cenários? Obrigado!

6 respostas

Felipe, bom dia. Você usou qual versão da api do jakarta?

Foi utilizada a versão 9.0.0.

Segue a dependência no pom.xml:

        <dependency>
            <groupId>jakarta.platform</groupId>
            <artifactId>jakarta.jakartaee-api</artifactId>
            <version>9.0.0</version>
            <scope>provided</scope>
        </dependency>
solução!

Felipe, boa tarde. Se você usar a versão 8.0.0 que usamos no curso, o problema ocorre também?

<!-- https://mvnrepository.com/artifact/jakarta.platform/jakarta.jakartaee-api -->
        <dependency>
            <groupId>jakarta.platform</groupId>
            <artifactId>jakarta.jakartaee-api</artifactId>
            <version>8.0.0</version>
            <scope>provided</scope>
        </dependency>

Ao trocar no pom.xml pela versão 8.0, mesmo excluindo os imports do javax, o servidor subiu sem problemas encontrando os beans e etc.

Ao analisar a pasta da lib do maven, é possível ver que o package da versão 8 é javax, e da 9 é jakarta. O que mais me deixou curioso é não haver compatibilidade entre as mesmas anotações. Talvez seja necessária alguma configuração no servidor para que esse reconhecimento aconteça.

Na verdade foi intencional essa quebra de compatibilidade, pois desde que a eclipse foundation assumiu o projeto, mesmo lançando a versão como jakarta, os pacotes ainda eram javax e foi justamente nessa versão 9 que houve essa troca para jakarta. Eu ainda não testei nenhum projeto com essa atualização, mas vou procurar saber se precisa alterar algo para que funcione corretamente. =)