3
respostas

Erro colossal ao tentar subir o servidor

Boa tarde, Ao tentar subir o servidor, recebi uma mensagem de erro colossal(mais de 80 mil caracteres). Segue abaixo o Código e parte do Erro:

package br.com.alura.loja;

import java.io.IOException; import java.net.URI;

import org.glassfish.grizzly.http.server.HttpServer; import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory; import org.glassfish.jersey.server.ResourceConfig;

public class Servidor {

public static void main(String[] args) throws IOException {
    ResourceConfig config = new ResourceConfig().packages("br.com.alura.loja");
    URI uri = URI.create("http://localhost:8080/");
    HttpServer server = GrizzlyHttpServerFactory.createHttpServer(uri, config);
    System.out.println("Servidor rodando");
    System.in.read();
    server.stop();
}

}

Erro:

at org.glassfish.hk2.utilities.reflection.ReflectionHelper.makeMe(ReflectionHelper.java:1117)
at org.jvnet.hk2.internal.ClazzCreator.createMe(ClazzCreator.java:261)
at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:337)
at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:456)
at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:112)
at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:100)
at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:95)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:150)
at org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:192)
at org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:150)
at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2350)
at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:612)
at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:597)
at org.glassfish.jersey.server.model.ComponentModelValidator.<init>(ComponentModelValidator.java:97)
at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:439)
at org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:162)
at org.glassfish.jersey.server.ApplicationHandler$3.run(ApplicationHandler.java:304)
at org.glassfish.jersey.internal.Errors$2.call(Errors.java:289)
at org.glassfish.jersey.internal.Errors$2.call(Errors.java:286)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:286)
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:301)
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:272)
at org.glassfish.jersey.server.ContainerFactory.createContainer(ContainerFactory.java:79)
at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory.createHttpServer(GrizzlyHttpServerFactory.java:110)
at br.com.alura.loja.Servidor.main(Servidor.java:15)

Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)

3 respostas

Oi Vitor,

Você deve estar usando Java 9 ou superior, o javax.xml.bind.JAXBException foi removido do Java SE 9+, para rodar com uma versão do Java mais nova você teria que adicionar as dependências abaixo no projeto:

<!-- API, java.xml.bind module -->
<dependency>
    <groupId>jakarta.xml.bind</groupId>
    <artifactId>jakarta.xml.bind-api</artifactId>
    <version>2.3.2</version>
</dependency>

<!-- Runtime, com.sun.xml.bind module -->
<dependency>
    <groupId>org.glassfish.jaxb</groupId>
    <artifactId>jaxb-runtime</artifactId>
    <version>2.3.2</version>
</dependency>

No seu caso talvez melhor até mudar para o Java 8, vai resolver o problema também

Olá, Otávio, obrigado pela resposta. Usei o java na versão 8 e deu certo! A título de curiosidade, onde eu colocaria as dependências que você colocou? Não encontrei nenhum arquivo pom.xml

Na verdade o projeto tem que ser maven, o que fiz, converti o projeto para maven clicando com o botão direito em cima e convertendo, após isso inclui as dependências no POM.XML e pronto, estou usando o JDK11, mudei ele na build path para 1.8, ta rodando massa.