[JAVA] [Opensaml] NoClassDefFoundError se produit lors du passage de Tomcat à weblogic

Créez un programme qui effectue l'authentification SAML à l'aide de la bibliothèque opensaml NoClassDefFoundError se produit lors du déploiement sur le serveur weblogic après vérification du fonctionnement dans l'environnement Tomcat. La version java est 6. La version d'opsensaml est la 2.6.6.

Lorsque j'ai essayé Google, le même phénomène a été décrit ci-dessous.

https://stackoverflow.com/questions/30227152/opensaml-throws-java-lang-noclassdeffounderror-only-on-weblogic

Il a été écrit ci-dessus que si vous supprimez la bibliothèque suivante, cela fonctionnera pour le moment, donc quand j'ai essayé la même chose sur ce serveur, cela a certainement fonctionné. ・ Com.bea.core.bea.opensaml2_1.0.0.0_6-1-0-0 ・ Ce m. Être un. cette. Être un. Pensa ml_1.0.0.0.0_6-1-0-0

Au contraire, lorsque j'ai placé la bibliothèque ci-dessus dans l'environnement Tomcat et que j'ai essayé de la faire fonctionner, la même erreur que dans l'environnement weblogic s'est produite.

À partir des résultats ci-dessus, lorsque j'ai étudié la ligne de problème de l'ordre de chargement de la bibliothèque, cela a été décrit ci-dessous.

http://otndnld.oracle.co.jp/document/products/wls/docs92/programming/classloading.html#wp1082452

Apparemment, weblogic a priorité sur le répertoire de la bibliothèque (~ / WEB-INF / lib /) placé dans l'application Il y a un répertoire de la bibliothèque à charger, et cette fois, il semble qu'une erreur s'est produite car il n'y a pas de classe opensaml appelée depuis l'application placée ici dans l'opensaml ci-dessus qui existe là-bas.

Ainsi, lorsque j'ai vérifié si la bibliothèque opensaml placée ici pouvait être priorisée, c'était possible en spécifiant le nom du package que vous souhaitez prioriser avec la balise [prefer-application-packages] dans weblogic.xml, alors définissez la balise correspondante sur weblogic.xml. Après l'avoir ajouté, le problème a été résolu (voir le document ci-dessous).

https://docs.oracle.com/cd/E72987_01/wls/WLPRG/classloading.htm https://docs.oracle.com/cd/E28613_01/web.1211/b65890/weblogic_xml.htm

Voici le contenu ajouté.

    <prefer-web-inf-classes>false</prefer-web-inf-classes>
    <prefer-application-packages>
       <package-name>org.opensaml.*</package-name>
    </prefer-application-packages>

Lors de l'utilisation de la balise prefer-application-packages, il semble nécessaire de spécifier false dans la balise prefer-web-inf-classes. Au fait, si vous souhaitez donner la priorité au chargement de toutes les bibliothèques placées dans l'application, vous devez spécifier true dans la balise prefer-web-inf-classes.

http://otndnld.oracle.co.jp/document/products/wls/docs92/webapp/weblogic_xml.html

Le texte intégral de xml est le suivant.

weblogic.xml


<?xml version='1.0' encoding='UTF-8'?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.3/weblogic-web-app.xsd">
  <session-descriptor></session-descriptor>
  <jsp-descriptor></jsp-descriptor>
  <container-descriptor>
    <prefer-web-inf-classes>false</prefer-web-inf-classes>
    <prefer-application-packages>
       <package-name>org.opensaml.*</package-name>
    </prefer-application-packages>
 </container-descriptor>
   <context-root>/</context-root>
   <wl-dispatch-policy>******</wl-dispatch-policy>
 </weblogic-web-app>

Peut-être que le même problème se reproduira, alors laissez-le tranquille.

Recommended Posts

[Opensaml] NoClassDefFoundError se produit lors du passage de Tomcat à weblogic
Modifications lors de la migration de Spring Boot 1.5 vers Spring Boot 2.0
Modifications lors de la migration de Spring Boot 2.0 vers Spring Boot 2.2
Précautions lors de la migration de VB6.0 vers JAVA
Migration de la fonction serveur Eclipse (Tomcat) vers Embed Tomcat
Que faire si une exception ClassNotFoundException se produit lors du démarrage de Tomcat
Comment écrire et noter lors de la migration de VB vers JAVA
Remarques sur le code de caractère lors de la migration de Windows vers Mac
Ce à quoi j'ai pensé lorsque j'ai commencé à migrer de Java vers Kotlin
Remarques sur la migration de CircleCI 1.0 vers 2.0
Que faire lorsqu'une exception javax.batch.operations.JobStartException se produit
Que faire lorsqu'une exception javax.el.PropertyNotWritableException se produit
Dépannage lors de la montée de Mastodon de la v3.0.x à la v3.1.x
Résumé des points qui m'inquiétaient lors de la migration de Java vers Kotlin
NoClassDefFoundError s'est produit lors de la tentative d'appel d'une fonction Android à partir de Unity via jar