0

在 Glassfish 4.1 上部署战争时,我收到以下错误:

Caused by: java.lang.NoClassDefFoundError: org/jvnet/hk2/internal/ServiceLocatorImpl
at com.timm.mcr.api.guice.APIJerseyModule.configureServlets(APIJerseyModule.java:47)
at com.google.inject.servlet.ServletModule.configure(ServletModule.java:55)
at com.google.inject.AbstractModule.configure(AbstractModule.java:62)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340)
at com.google.inject.spi.Elements.getElements(Elements.java:110)
at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:138)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
at com.google.inject.Guice.createInjector(Guice.java:96)
at com.google.inject.Guice.createInjector(Guice.java:73)
at com.timm.common.guice.core.guice.AbstractBindingManager.createInjector(AbstractBindingManager.java:68)
at com.timm.common.guice.core.guice.AbstractBindingManager.getInjector(AbstractBindingManager.java:53)
at com.timm.mcr.api.guice.APIGuiceServletContextListener.getInjector(APIGuiceServletContextListener.java:68)
at com.google.inject.servlet.GuiceServletContextListener.contextInitialized(GuiceServletContextListener.java:47)
at com.timm.mcr.api.guice.APIGuiceServletContextListener.contextInitialized(APIGuiceServletContextListener.java:38)
at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:5394)
at com.sun.enterprise.web.WebModule.contextListenerStart(WebModule.java:743)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:5963)
... 34 more
Caused by: java.lang.ClassNotFoundException: org.jvnet.hk2.internal.ServiceLocatorImpl
    at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1783)
    at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1633)
    ... 51 more

Glassfish 4.1 安装了 hk2-locator 库。为什么会出现这样的错误?

4

1 回答 1

0

看起来您的项目或它使用的东西需要该类,并且可能包含的 jar 将其范围设置为提供。

如果您使用 maven,请尝试将 hk2-locator-2.1.9.jar 添加到您的项目中:

http://mvnrepository.com/artifact/org.glassfish.hk2/hk2-locator/2.1.9

或者

将 jar 添加到 glassfish4/glassfish/domains/yourdomain/lib 并重新启动服务器。

如果使用 maven 检查您的项目是否正在使用它运行:

mvn dependency:tree
于 2015-06-16T19:26:54.510 回答