我在OSX(10.12.6) . 我克隆并构建了这个Java代码示例,用于使用Azure AD进行身份验证:

https://azure.microsoft.com/en-au/resources/samples/active-directory-java-webapp-openidconnect/

我已将打包的 adal4jsample.war 移动到我的Tomcat安装中:

/Users/Shared/resources/apache-tomcat-8.0.38/webapps

我的Java版本是“1.8.0_102”

当我启动Tomcat时,错误日志显示:

02-Dec-2017 22:00:04.582 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild:start:org.apache.catalina.LifecycleException:无法启动组件[StandardEngine [Catalina] .StandardHost [localhost] .StandardContext [/ adal4jsample]] org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java) :725)org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)atg.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)org.apache.catalina.startup . HostConfig.deployWAR(HostConfig.java:940)at org.apache.catalina.startup.HostConfig $ DeployWar.run(HostConfig.java:1816)at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511) java.util.concurrent.ThreadPoolE上的java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)中的java.util.concurrent.FutureTask.run(FutureTask.java:266) java.lang.Thread.run中的xecutor $ Worker.run(ThreadPoolExecutor.java:617)(Thread.java:745)引起:java.lang.NoClassDefFoundError:java.lang.Class.getDeclaredMethods0(Native Method)中的FilterConfig at java.lang.Class.privateGetDeclaredMethods(Class.java:2701),位于org.apache.catalina.util.Introspection.getDeclaredMethods(Introspection.java:127)的java.lang.Class.getDeclaredMethods(Class.java:1975)位于org.apache.catalina.startup.WebAnnotationSet.loadApplicationFilterAnnotations(WebAnnotationSet.java:106)的.apache.catalina.startup.WebAnnotationSet.loadMethodsAnnotation(WebAnnotationSet.java:273)org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet) .java:64)org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:336)org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:786)org.apache.catalina . 在org.apache.catalina.util的startup.ContextConfig.lifecycleEvent(ContextConfig.java:307) .LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)位于org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5213)at at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)... 10更多引起:java.lang.ClassNotFoundException:org.apache.catalina.loader.WebappClassLoaderBase.loadClass中的FilterConfig(WebappClassLoaderBase.java: 1333)at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)... 24更多

搜索显示Filtercfig存在于Tomcats包含的库中: /Users/Shared/resources/apache-tomcat-8.0.38/lib/servlet-api.jar

有什么建议可以尝试或下一步检查?

编辑:我刚刚在具有相同OSX版本的不同Mac上尝试了完全相同的步骤,因此在我的环境中肯定存在一些问题 . 不知道如何确定问题是什么..