1
resposta

ClassNotFoundException: javax.xml.bind.Unmarshaller - Ao executar o projeto no TOMCAT pela linha comando

Gerei o arquivo .war, consegui iniciar o tomcat com o projeto pela linha de comando porém ao tentar chamar algum serviço estou tomando o erro abaixo. Eu tive o mesmo problema executando o projeto no grizzly pelo ecplise.

No Eclipse o problema foi resolvido adicionando em Run>Run Configurations...>Arguments "--add-modules java.xml.bind"

``` java.lang.ClassNotFoundException: javax.xml.bind.Unmarshaller org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1291) org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119) java.base/java.lang.Class.getDeclaredMethods0(Native Method) java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3139) java.base/java.lang.Class.getDeclaredMethods(Class.java:2266) org.jvnet.hk2.internal.Utilities$4.run(Utilities.java:370) org.jvnet.hk2.internal.Utilities$4.run(Utilities.java:366) java.base/java.security.AccessController.doPrivileged(Native Method) org.jvnet.hk2.internal.Utilities.getDeclaredMethods(Utilities.java:366) org.jvnet.hk2.internal.Utilities.getAllMethodKeys(Utilities.java:1340) org.jvnet.hk2.internal.Utilities.getAllMethodKeys(Utilities.java:1338) org.jvnet.hk2.internal.Utilities.getAllMethods(Utilities.java:1284) org.jvnet.hk2.internal.Utilities.findInitializerMethods(Utilities.java:1368) org.jvnet.hk2.internal.DefaultClassAnalyzer.getInitializerMethods(DefaultClassAnalyzer.java:102) org.glassfish.jersey.internal.inject.JerseyClassAnalyzer.getInitializerMethods(JerseyClassAnalyzer.java:239) org.jvnet.hk2.internal.Utilities.getInitMethods(Utilities.java:199) org.jvnet.hk2.internal.Utilities.justInject(Utilities.java:789) org.jvnet.hk2.internal.ServiceLocatorImpl.inject(ServiceLocatorImpl.java:832) org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:907) org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:898) org.glassfish.jersey.server.internal.inject.ParamConverters$AggregatedProvider.(ParamConverters.java:229) java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488) org.glassfish.hk2.utilities.reflection.ReflectionHelper.makeMe(ReflectionHelper.java:1117) org.jvnet.hk2.internal.ClazzCreator.createMe(ClazzCreator.java:261) org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:337) org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:456) org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:112) org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:100) org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:95) java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:150) org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:192) org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:150) org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2350) org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:98) org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:87) org.glassfish.jersey.internal.inject.ProviderToService.apply(ProviderToServi

1 resposta

Acho que o problema é justamente pq você ta usando o java9... Tem que ver se o tomcat ou outro servidor web que você esteja usando suporta.