Przyczyna: java.lang.NoClassDefFoundError: org / apache / log4j / Logger
Mam interesujący problem, w którym nie znaleziono klasy org.apache.log4j.Logger w czasie wykonywania. Próbuję uzyskać autoryzację i to tam zawodzi:
OAuthAuthorizer oauthAuthorizer = new OAuthAuthorizer(OAUTH_CONSUMER_KEY, OAUTH_CONSUMER_SECRET, SAML_PROVIDER_ID, userId);
Używam JDeveloper 11.1.1.6. Oto co wiem:
Zajrzałem do mojego katalogu UI.war / WEB-INF / lib i widzę tam plik log4j-1.2.17.jar.
Klasa narzekająca na to jest org.opensaml.xml.XMLConfigurator
Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Logger
at org.opensaml.xml.XMLConfigurator.<clinit>(XMLConfigurator.java:60)
at org.opensaml.DefaultBootstrap.initializeXMLTooling(DefaultBootstrap.java:195)
at org.opensaml.DefaultBootstrap.bootstrap(DefaultBootstrap.java:91)
at com.intuit.ipp.aggcat.util.SAML2AssertionGenerator.getSAMLBuilder(SAML2AssertionGenerator.java:156)
at com.intuit.ipp.aggcat.util.SAML2AssertionGenerator.createSubject(SAML2AssertionGenerator.java:187)
at com.intuit.ipp.aggcat.util.SAML2AssertionGenerator.buildAssertion(SAML2AssertionGenerator.java:114)
at com.intuit.ipp.aggcat.util.SAML2AssertionGenerator.generateSignedAssertion(SAML2AssertionGenerator.java:83)
at com.intuit.ipp.aggcat.util.SamlUtil.createSignedSAMLPayload(SamlUtil.java:156)
at com.intuit.ipp.aggcat.util.OAuthUtil.getOAuthTokens(OAuthUtil.java:60)
at com.intuit.ipp.aggcat.core.OAuthAuthorizer.<init>(OAuthAuthorizer.java:85)
at com.incomemax.view.intuit.WebUtil.getAggCatService(WebUtil.java:91)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:305)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:246)
... 64 more
Rozkompilowałem XMLConfigurator i dziwnie nie importuje org.apache.log4j.Logger Używa org.slf4j.Logger, który jest również w moim katalogu jars (slf4j-api-1.7.5.jar). Interesujące jest również to, że linia 60 (patrz ślad stosu) jest pustą linią w moim dekompilacji.
Oczywiście, jeśli dodam Logger.xxxxx podczas projektowania, okaże się, że wszystko jest w porządku.
Używam kodu / słoików bezpośrednio z przykładowego kodu java, ale importuję do mojej istniejącej aplikacji.
Szukałem odpowiedzi w sieci i uważam, że sprawdziłem wszystkie obszary, które mogę wymyślić. Wspomniałem również o tej bardzo dobrej stronie:http://myarch.com/classnotfound/
Biorąc pod uwagę autoryzację jest krok 1 w używaniu API Intuit Developer, jestem trochę utknięty.
Dodawanie wyników z sugestii @jhadesdev:
Wszystkie wersje Log4j Logger:
zip: C: /Users/Chris/AppData/Roaming/JDeveloper/system11.1.1.6.38.61.92/DefaultDomain/servers/DefaultServer/tmp/_WL_user/j2ee-app/lt5l71/war/WEB-INF/lib/log4j-1.2 .17.jar! /Org/apache/log4j/Logger.classWszystkie wersje log4j widoczne z programu ładującego klasy OAuthAuthorizer:
zip: C: /Users/Chris/AppData/Roaming/JDeveloper/system11.1.1.6.38.61.92/DefaultDomain/servers/DefaultServer/tmp/_WL_user/j2ee-app/lt5l71/war/WEB-INF/lib/log4j-1.2 .17.jar! /Org/apache/log4j/Logger.classWszystkie wersje XMLConfiguratora:
jar: plik: / C: /Oracle/Middleware11116/modules/com.bea.core.bea.opensaml2_1.0.0.0_6-1-0-0.jar! /org/opensaml/xml/XMLConfigurator.class
zip: C: /Users/Chris/AppData/Roaming/JDeveloper/system11.1.1.6.38.61.92/DefaultDomain/servers/DefaultServer/tmp/_WL_user/j2ee-app/lt5l71/war/WEB-INF/lib/ipp-java -aggcat-v1-devkit-1.0.2.jar! /org/opensaml/xml/XMLConfigurator.class
zip: C: /Users/Chris/AppData/Roaming/JDeveloper/system11.1.1.6.38.61.92/DefaultDomain/servers/DefaultServer/tmp/_WL_user/j2ee-app/lt5l71/war/WEB-INF/lib/xmltooling-1.3 .1.jar! /Org/opensaml/xml/XMLConfigurator.class
Wszystkie wersje XMLConfigurator widoczne z programu ładującego klasy OAuthAuthorizer:
jar: plik: / C: /Oracle/Middleware11116/modules/com.bea.core.bea.opensaml2_1.0.0.0_6-1-0-0.jar! /org/opensaml/xml/XMLConfigurator.class
zip: C: /Users/Chris/AppData/Roaming/JDeveloper/system11.1.1.6.38.61.92/DefaultDomain/servers/DefaultServer/tmp/_WL_user/j2ee-app/lt5l71/war/WEB-INF/lib/ipp-java -aggcat-v1-devkit-1.0.2.jar! /org/opensaml/xml/XMLConfigurator.class
zip: C: /Users/Chris/AppData/Roaming/JDeveloper/system11.1.1.6.38.61.92/DefaultDomain/servers/DefaultServer/tmp/_WL_user/j2ee-app/lt5l71/war/WEB-INF/lib/xmltooling-1.3 .1.jar! /Org/opensaml/xml/XMLConfigurator.class
Nadal pracuję nad interpretacją wyników.