org.apache.catalina.LifecycleException 尝试使用 Eclipse 启动 Glassfish 服务器时

org.apache.catalina.LifecycleException when trying to start Glassfish server with Eclipse

我一直忙于构建一个带有 angularjs 前端的 REST 应用程序,使用 MAVEN jersey-quickstart-webapp,使用 GLASSFISH 网络服务器在 Eclipse 上开发。今天刚开始做项目开发的时候,尝试在eclipse中启动服务器,部署webapp的时候,在eclipse error window:

中显示如下错误信息
cannot Deploy pododdle
deploy is failing=Error occurred during deployment: Exception while loading the app :
    java.lang.IllegalStateException: ContainerBase.addChild: start: 
    org.apache.catalina.LifecycleException:
    org.apache.catalina.LifecycleException:
    java.lang.ClassNotFoundException: com.pododdle.dao.CategoryListService.
Please see server.log for more details.

需要注意的是,我并没有故意更改 Eclipse 或 Glassfish 的 JRE/JDK。 server.log 显示此错误(每次启动重复 3/4 次):

ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.ClassNotFoundException: com.pododdle.dao.CategoryListService
at org.apache.catalina.core.StandardContext.start(StandardContext.java:5985)
at com.sun.enterprise.web.WebModule.start(WebModule.java:691)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1041)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:1024)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:747)
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2286)
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1932)
at com.sun.enterprise.web.WebApplication.start(WebApplication.java:139)
at org.glassfish.internal.data.EngineRef.start(EngineRef.java:122)
at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:291)
at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:352)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:500)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.run(CommandRunnerImpl.java:539)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.run(CommandRunnerImpl.java:535)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:360)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.execute(CommandRunnerImpl.java:534)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.run(CommandRunnerImpl.java:565)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.run(CommandRunnerImpl.java:557)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:360)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:556)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1464)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access00(CommandRunnerImpl.java:109)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1846)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1722)
at org.glassfish.deployment.admin.ReDeployCommand.execute(ReDeployCommand.java:131)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.run(CommandRunnerImpl.java:539)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.run(CommandRunnerImpl.java:535)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:360)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.execute(CommandRunnerImpl.java:534)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.run(CommandRunnerImpl.java:565)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.run(CommandRunnerImpl.java:557)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:360)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:556)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1464)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access00(CommandRunnerImpl.java:109)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1846)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1722)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534)
at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224)
at org.glassfish.grizzly.http.server.StaticHttpHandlerBase.service(StaticHttpHandlerBase.java:189)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access0(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: java.lang.ClassNotFoundException: com.pododdle.dao.CategoryListService
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5740)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:5977)
... 64 more
Caused by: java.lang.ClassNotFoundException: com.pododdle.dao.CategoryListService
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1783)
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1633)
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
at java.lang.Class.getDeclaredFields(Class.java:1916)
at org.glassfish.jersey.internal.util.ReflectionHelper.run(ReflectionHelper.java:311)
at org.glassfish.jersey.internal.util.ReflectionHelper.run(ReflectionHelper.java:308)
at java.security.AccessController.doPrivileged(Native Method)
at org.glassfish.jersey.server.model.IntrospectionModeller.checkResourceClassFields(IntrospectionModeller.java:223)
at org.glassfish.jersey.server.model.IntrospectionModeller.doCreateResourceBuilder(IntrospectionModeller.java:139)
at org.glassfish.jersey.server.model.IntrospectionModeller.access[=12=]0(IntrospectionModeller.java:80)
at org.glassfish.jersey.server.model.IntrospectionModeller.call(IntrospectionModeller.java:112)
at org.glassfish.jersey.server.model.IntrospectionModeller.call(IntrospectionModeller.java:109)
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:255)
at org.glassfish.jersey.server.model.IntrospectionModeller.createResourceBuilder(IntrospectionModeller.java:109)
at org.glassfish.jersey.server.model.Resource.from(Resource.java:792)
at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:463)
at org.glassfish.jersey.server.ApplicationHandler.access0(ApplicationHandler.java:182)
at org.glassfish.jersey.server.ApplicationHandler.call(ApplicationHandler.java:348)
at org.glassfish.jersey.server.ApplicationHandler.call(ApplicationHandler.java:345)
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:255)
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:345)
at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:390)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:362)
at javax.servlet.GenericServlet.init(GenericServlet.java:244)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1583)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1382)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5732)
... 65 more

我在 Tomcat 上看到过关于此错误的类似问题:org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/CollegeWebsite]]

根据这个问题,它说这可能是由 Eclipse 和 Tomcat 使用不同的 JRE 引起的。我在 Eclipse 中有以下 JRE 运行:

jdk1.8.0_73

问题是关于 Tomcat,所以我尝试通过将以下行添加到我的 glassfish 服务器的 ansev.bat 来在我的 Glassfish 服务器上设置 JAVA_HOME:

set AS_JAVA=C:\Program Files\Java\jdk1.8.0_73

这是由这个答案提出的:How do I specify the jdk for a glassfish domain?

但是我不确定这是否是我要找的东西

这并没有解决问题 - 它仍然给出同样的错误。有谁知道可能出了什么问题?为什么它会突然停止工作,我是否正确设置了 GLASSFISH 的 JRE?如何检查 GLASSFISH 安装使用的 JRE 版本?

非常感谢大家的帮助....

编辑 1: 根据评论部分中的 Mike 的说法,我正在咆哮错误的树——因为它是一个 ClassNotFoundException 被抛出,看起来它构建不正确。这是错误之前出现在控制台中的服务器启动日志记录:

2016-10-17T09:13:50.769+0100|Info: Running GlassFish Version: GlassFish Server Open Source Edition  4.1.1  (build 1)
2016-10-17T09:13:50.770+0100|Info: Server log file is using Formatter class: com.sun.enterprise.server.logging.ODLLogFormatter
2016-10-17T09:13:50.861+0100|Info: Realm [admin-realm] of classtype [com.sun.enterprise.security.auth.realm.file.FileRealm] successfully created.
2016-10-17T09:13:50.863+0100|Info: Realm [file] of classtype [com.sun.enterprise.security.auth.realm.file.FileRealm] successfully created.
2016-10-17T09:13:50.865+0100|Info: Realm [certificate] of classtype [com.sun.enterprise.security.auth.realm.certificate.CertificateRealm] successfully created.
2016-10-17T09:13:50.964+0100|Info: Authorization Service has successfully initialized.
2016-10-17T09:13:51.008+0100|Info: Registered org.glassfish.ha.store.adapter.cache.ShoalBackingStoreProxy for persistence-type = replicated in BackingStoreFactoryRegistry
2016-10-17T09:13:51.155+0100|Warning: Instance could not be initialized. Class=interface org.glassfish.grizzly.http.server.AddOn, name=http-listener-1, realClassName=org.glassfish.grizzly.http2.Http2AddOn
2016-10-17T09:13:51.230+0100|Info: Grizzly Framework 2.3.23 started in: 54ms - bound to [/0.0.0.0:8080]
2016-10-17T09:13:51.242+0100|Warning: Instance could not be initialized. Class=interface org.glassfish.grizzly.http.server.AddOn, name=http-listener-2, realClassName=org.glassfish.grizzly.http2.Http2AddOn
2016-10-17T09:13:51.245+0100|Info: Grizzly Framework 2.3.23 started in: 1ms - bound to [/0.0.0.0:8181]
2016-10-17T09:13:51.247+0100|Warning: Instance could not be initialized. Class=interface org.glassfish.grizzly.http.server.AddOn, name=admin-listener, realClassName=org.glassfish.grizzly.http2.Http2AddOn
2016-10-17T09:13:51.251+0100|Info: Grizzly Framework 2.3.23 started in: 1ms - bound to [/0.0.0.0:4848]
2016-10-17T09:13:51.279+0100|Info: Grizzly Framework 2.3.23 started in: 1ms - bound to [/0.0.0.0:3700]
2016-10-17T09:13:51.280+0100|Info: GlassFish Server Open Source Edition  4.1.1  (1) startup time : Felix (1,326ms), startup services(616ms), total(1,942ms)
2016-10-17T09:13:51.343+0100|Info: JTS5014: Recoverable JTS instance, serverId = [100]
2016-10-17T09:13:51.403+0100|Info: Grizzly Framework 2.3.23 started in: 2ms - bound to [/0.0.0.0:7676]
2016-10-17T09:13:51.404+0100|Info: Registered com.sun.enterprise.glassfish.bootstrap.osgi.EmbeddedOSGiGlassFishImpl@27d57a2c as OSGi service registration: org.apache.felix.framework.ServiceRegistrationImpl@597f48df.
2016-10-17T09:13:51.418+0100|Info: JMXStartupService has started JMXConnector on JMXService URL service:jmx:rmi://PododdlePC:8686/jndi/rmi://PododdlePC:8686/jmxrmi
2016-10-17T09:13:53.709+0100|Info: HV000001: Hibernate Validator 5.1.2.Final
2016-10-17T09:13:55.620+0100|Info: visiting unvisited references
2016-10-17T09:13:57.095+0100|Info: Java security manager is disabled.
2016-10-17T09:13:57.096+0100|Info: Entering Security Startup Service.
2016-10-17T09:13:57.101+0100|Info: Loading policy provider com.sun.enterprise.security.provider.PolicyWrapper.
2016-10-17T09:13:57.187+0100|Info: Security Service(s) started successfully.
2016-10-17T09:13:57.632+0100|Info: Created HTTP listener http-listener-1 on host/port 0.0.0.0:8080
2016-10-17T09:13:57.637+0100|Info: Created HTTP listener http-listener-2 on host/port 0.0.0.0:8181
2016-10-17T09:13:57.638+0100|Info: Created HTTP listener admin-listener on host/port 0.0.0.0:4848
2016-10-17T09:13:57.665+0100|Info: Created virtual server server
2016-10-17T09:13:57.667+0100|Info: Created virtual server __asadmin
2016-10-17T09:13:57.937+0100|Info: Setting JAAS app name glassfish-web
2016-10-17T09:13:57.938+0100|Info: Virtual server server loaded default web module 
2016-10-17T09:13:59.082+0100|Info: visiting unvisited references
2016-10-17T09:13:59.180+0100|Info: visiting unvisited references
2016-10-17T09:13:59.181+0100|Info: visiting unvisited references
2016-10-17T09:13:59.182+0100|Info: visiting unvisited references
2016-10-17T09:13:59.182+0100|Info: visiting unvisited references
2016-10-17T09:13:59.183+0100|Info: visiting unvisited references
2016-10-17T09:13:59.184+0100|Info: visiting unvisited references
2016-10-17T09:13:59.184+0100|Info: visiting unvisited references
2016-10-17T09:13:59.185+0100|Info: visiting unvisited references
2016-10-17T09:13:59.185+0100|Info: visiting unvisited references
2016-10-17T09:13:59.186+0100|Info: visiting unvisited references
2016-10-17T09:13:59.217+0100|Info: visiting unvisited references
2016-10-17T09:13:59.218+0100|Info: visiting unvisited references
2016-10-17T09:13:59.218+0100|Info: visiting unvisited references
2016-10-17T09:13:59.219+0100|Info: visiting unvisited references
2016-10-17T09:13:59.219+0100|Info: visiting unvisited references
2016-10-17T09:13:59.220+0100|Info: visiting unvisited references
2016-10-17T09:13:59.221+0100|Info: visiting unvisited references
2016-10-17T09:13:59.221+0100|Info: visiting unvisited references
2016-10-17T09:13:59.222+0100|Info: visiting unvisited references
2016-10-17T09:13:59.584+0100|Info: WELD-000900: 2.2.13 (Final)
2016-10-17T09:14:00.712+0100|WARN: WELD-001700: Interceptor annotation class javax.ejb.PostActivate not found, interception based on it is not enabled
2016-10-17T09:14:00.712+0100|WARN: WELD-001700: Interceptor annotation class javax.ejb.PrePassivate not found, interception based on it is not enabled
2016-10-17T09:14:00.986+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] org.glassfish.sse.impl.ServerSentEventCdiExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>, BeanManager) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:00.994+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] public org.glassfish.jms.injection.JMSCDIExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:00.999+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] private org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.004+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] org.glassfish.sse.impl.ServerSentEventCdiExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>, BeanManager) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.007+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] public org.glassfish.jms.injection.JMSCDIExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.008+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] private org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.009+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] public org.glassfish.jms.injection.JMSCDIExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.011+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] org.glassfish.sse.impl.ServerSentEventCdiExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>, BeanManager) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.015+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] public org.glassfish.jms.injection.JMSCDIExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.017+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] public org.glassfish.jms.injection.JMSCDIExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.017+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] org.glassfish.sse.impl.ServerSentEventCdiExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>, BeanManager) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.044+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] private org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.044+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] public org.glassfish.jms.injection.JMSCDIExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.046+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] org.glassfish.sse.impl.ServerSentEventCdiExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>, BeanManager) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.048+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] private org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.050+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] org.glassfish.sse.impl.ServerSentEventCdiExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>, BeanManager) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.052+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] public org.glassfish.jms.injection.JMSCDIExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.054+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] private org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.054+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] org.glassfish.sse.impl.ServerSentEventCdiExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>, BeanManager) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.055+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] public org.glassfish.jms.injection.JMSCDIExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.057+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] private org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.058+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] private org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.059+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] org.glassfish.sse.impl.ServerSentEventCdiExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>, BeanManager) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:01.060+0100|WARN: WELD-000411: Observer method [BackedAnnotatedMethod] private org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
2016-10-17T09:14:03.606+0100|Severe: WebModule[/pododdle]StandardWrapper.Throwable

这个日志是否指向任何明显的东西?

根据 Mike 在评论中的建议,项目的构建方式可能存在问题,原因如下:

Caused by: java.lang.ClassNotFoundException: com.pododdle.dao.CategoryListService

我调查了一下,他是对的!我的构建路径中的两个 jar 文件神秘地丢失了!他们是:

jersey-media-multipart-2.21.1.jar
mimepull-1.9.3.jar

我不知道 glassfish 服务器的 /lib 目录中的 jar 文件是如何删除的,也许我不应该喝那瓶额外的威士忌。一旦将它们重新添加进去,一切都会突然恢复正常。这个错误让我有点困惑——我原以为如果 jar 不可用,它会给出一个编译错误。无论如何,由于另一个烦人的错误而损失了 5 天。

确保清理项目后 dist(构建文件夹)为空。如果没有,请手动删除其内容。还要检查库文件夹是否包含所有项目层所需的所有库,并且 IDE 的 class 路径设置是否正确。还要检查库文件夹中是否有重复的 jar。如果你发现一些手动删除它们然后重新启动服务器并再次清理并构建项目。它是这样工作的。