Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Weblogic上部署OpenID Azure AD java web应用时发生NoClassDefFoundError_Java_Azure_Weblogic_Adal - Fatal编程技术网

在Weblogic上部署OpenID Azure AD java web应用时发生NoClassDefFoundError

在Weblogic上部署OpenID Azure AD java web应用时发生NoClassDefFoundError,java,azure,weblogic,adal,Java,Azure,Weblogic,Adal,我正在尝试使用OpenIDConnect方法为我的web应用集成Azure广告。当我尝试在weblogic上部署构建的ear文件时,我得到了NoClassDefFound for com.nimbusds.openid.connect.sdk.AuthenticationSuccessResponse 。我已经在web inf/lib文件夹中包含了oauth2-oidc-sdk-5.24.1.jar,还验证了它实际上存在于ear文件中,但应用程序部署失败,并抱怨找不到此类 我发现了类似的问题。因

我正在尝试使用OpenIDConnect方法为我的web应用集成Azure广告。当我尝试在weblogic上部署构建的ear文件时,我得到了NoClassDefFound for

com.nimbusds.openid.connect.sdk.AuthenticationSuccessResponse

。我已经在web inf/lib文件夹中包含了oauth2-oidc-sdk-5.24.1.jar,还验证了它实际上存在于ear文件中,但应用程序部署失败,并抱怨找不到此类

我发现了类似的问题。因此,我尝试将oauth2-oidc-sdk-5.24.1.jar和gson-jar文件作为一个库与我的java web应用程序一起部署,但也没有帮助

非常感谢,如果我能得到任何指针或建议,以克服这个错误

部署期间的完整堆栈跟踪:

Caused By: java.lang.NoClassDefFoundError: com/nimbusds/openid/connect/sdk/AuthenticationSuccessResponse
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2436)
        at java.lang.Class.getDeclaredMethods(Class.java:1793)
        at weblogic.j2ee.dd.xml.BaseJ2eeAnnotationProcessor.getMethods(BaseJ2eeAnnotationProcessor.java:1055)
        at weblogic.j2ee.dd.xml.BaseJ2eeAnnotationProcessor.getMethods(BaseJ2eeAnnotationProcessor.java:1043)
        at weblogic.j2ee.dd.xml.BaseJ2eeAnnotationProcessor.processJ2eeAnnotations(BaseJ2eeAnnotationProcessor.java:99)
        at weblogic.j2ee.dd.xml.J2eeAnnotationProcessor.processJ2eeAnnotations(J2eeAnnotationProcessor.java:37)
        at weblogic.servlet.internal.WebAnnotationProcessorImpl.processFilters(WebAnnotationProcessorImpl.java:239)
        at weblogic.servlet.internal.WebAnnotationProcessorImpl.processJ2eeAnnotations(WebAnnotationProcessorImpl.java:210)
        at weblogic.servlet.internal.WebAnnotationProcessorImpl.processAnnotations(WebAnnotationProcessorImpl.java:105)
        at weblogic.servlet.internal.WebAppServletContext.processAnnotations(WebAppServletContext.java:1370)
        at weblogic.servlet.internal.WebAppServletContext.<init>(WebAppServletContext.java:450)
        at weblogic.servlet.internal.WebAppServletContext.<init>(WebAppServletContext.java:494)
        at weblogic.servlet.internal.HttpServer.loadWebApp(HttpServer.java:418)
        at weblogic.servlet.internal.WebAppModule.registerWebApp(WebAppModule.java:976)
        at weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:384)
        at weblogic.application.internal.flow.ScopedModuleDriver.prepare(ScopedModuleDriver.java:176)
        at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
        at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:517)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
        at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:159)
        at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:45)
        at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:648)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
        at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
        at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:59)
        at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:154)
        at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
        at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:208)
        at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:98)
        at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
        at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:747)
        at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1216)
        at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:250)
        at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
        at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:171)
原因:java.lang.NoClassDefFoundError:com/nimbusds/openid/connect/sdk/AuthenticationSuccessResponse
位于java.lang.Class.getDeclaredMethods0(本机方法)
位于java.lang.Class.privateGetDeclaredMethods(Class.java:2436)
位于java.lang.Class.getDeclaredMethods(Class.java:1793)
位于weblogic.j2ee.dd.xml.BaseJ2eeAnnotationProcessor.getMethods(BaseJ2eeAnnotationProcessor.java:1055)
位于weblogic.j2ee.dd.xml.BaseJ2eeAnnotationProcessor.getMethods(BaseJ2eeAnnotationProcessor.java:1043)
位于weblogic.j2ee.dd.xml.BaseJ2eeAnnotationProcessor.processJ2eeAnnotations(BaseJ2eeAnnotationProcessor.java:99)
位于weblogic.j2ee.dd.xml.J2eeAnnotationProcessor.processJ2eeAnnotations(J2eeAnnotationProcessor.java:37)
在weblogic.servlet.internal.WebAnnotationProcessorImpl.processFilters(WebAnnotationProcessorImpl.java:239)
在weblogic.servlet.internal.WebAnnotationProcessorImpl.processJ2eeAnnotations(WebAnnotationProcessorImpl.java:210)上
在weblogic.servlet.internal.WebAnnotationProcessorImpl.processAnnotations(WebAnnotationProcessorImpl.java:105)
位于weblogic.servlet.internal.WebAppServletContext.processAnnotations(WebAppServletContext.java:1370)
位于weblogic.servlet.internal.WebAppServletContext。(WebAppServletContext.java:450)
位于weblogic.servlet.internal.WebAppServletContext。(WebAppServletContext.java:494)
位于weblogic.servlet.internal.HttpServer.loadWebApp(HttpServer.java:418)
位于weblogic.servlet.internal.WebAppModule.registerWebApp(WebAppModule.java:976)
位于weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:384)
在weblogic.application.internal.flow.ScopedModuleDriver.prepare(ScopedModuleDriver.java:176)中
在weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
位于weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:517)
位于weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
位于weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:159)
位于weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:45)
位于weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:648)
位于weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
位于weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
位于weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:59)
位于weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:154)
位于weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
在weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:208)中
在weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:98)中
在weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)中
位于weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:747)
在weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1216)中
位于weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:250)
位于weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
位于weblogic.deploy.service.internal.targetserver.deploymentReceiverCallbackDeliver.doPrepareCallback(deploymentReceiverCallbackDeliver.java:171)
#####################################

更新2021/06/02

为了解决版本兼容性问题,我必须选择以下特定版本的依赖项,以使其不会引发JDK1.6的错误,并且microsoft adal4j必须在JDK6中重新编译(JDK1.7及以上版本支持adal4j jar)

com.s
光轮何塞jwt
jdk16
5.9
com.usds
oauth2 oidc sdk
jdk16
5.24.1
如果JDK是1.7,下面是适用于我的特定版本:

        <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>adal4j</artifactId>
        <version>1.6.0</version>
        </dependency>
    
        <dependency>
        <groupId>com.nimbusds</groupId>
        <artifactId>oauth2-oidc-sdk</artifactId>
        <version>5.24.1</version>
        </dependency>
        
        <dependency>
        <groupId>com.nimbusds</groupId>
        <artifactId>nimbus-jose-jwt</artifactId>
        <version>7.8</version>
        </dependency>

com.microsoft.azure
adal4j
1.6.0
com.usds
oauth2 oidc sdk
5.24.1
com.usds
光轮何塞jwt
7.8

希望这能帮助那些在JDK1.6和JDK1.7上遇到类似错误的人。这通常是由不兼容的版本引起的。您可以尝试不同版本的
oauth2 oidc sdk
,直到找到兼容的软件包


或者您也可以更改
spring
的版本,以达到评论中提到的版本兼容性目的。

我也有类似的问题,并通过将spring从2.4.4降级到2.2.4来解决。上面的评论有用吗?@AllenWu:是关于版本的
        <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>adal4j</artifactId>
        <version>1.6.0</version>
        </dependency>
    
        <dependency>
        <groupId>com.nimbusds</groupId>
        <artifactId>oauth2-oidc-sdk</artifactId>
        <version>5.24.1</version>
        </dependency>
        
        <dependency>
        <groupId>com.nimbusds</groupId>
        <artifactId>nimbus-jose-jwt</artifactId>
        <version>7.8</version>
        </dependency>