Согласно the official Grails docs, Grails 2.4.2 работает с JDK 1.6. Что касается меня, это означает, что я могу запускать все плагины, которые работают с Grails 2.4.2 в среде исполнения, которая работает на JDK 1.6.Почему Spring Security REST Plugin не совместим с JDK 1.6?
Однако, как я попытался развернуть архив войны моего приложения Grails к v3.1 Glassfish, который работает на JDK 1.6, я испытал проблемы с зависимостями, которые не были JDK 1.6 совместимый:
Caused by: java.lang.UnsupportedClassVersionError: WEB9032: Class com.nimbusds.jwt.JWT has unsupported major or minor version numbers, which are greater than those found in the Java Runtime Env
ironment version 1.6.0_07
at org.glassfish.web.loader.WebappClassLoader.findClass(WebappClassLoader.java:948)
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1485)
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1368)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
at java.lang.Class.getDeclaredMethods(Class.java:1791)
... 55 more
После работает dependency-report
, я обнаружил, что проблема была вызвана зависимостью от Spring Security REST Plugin:
+--- org.grails.plugins:spring-security-rest:1.5.1
| \--- net.spy:spymemcached:2.11.6
| \--- com.google.guava:guava-io:r03
| \--- com.google.guava:guava-annotations:r03
| \--- com.google.guava:guava-base:r03
| \--- org.pac4j:pac4j-core:1.6.0
| \--- org.pac4j:pac4j-oauth:1.6.0
| \--- org.apache.commons:commons-lang3:3.1
| \--- org.scribe:scribe:1.3.6
| \--- com.fasterxml.jackson.core:jackson-databind:2.0.6
| \--- com.fasterxml.jackson.core:jackson-annotations:2.0.6
| \--- com.fasterxml.jackson.core:jackson-core:2.0.6
| \--- com.nimbusds:nimbus-jose-jwt:3.9
| \--- net.jcip:jcip-annotations:1.0
| \--- net.minidev:json-smart:1.1.1
| \--- org.bouncycastle:bcprov-jdk15on:1.51
| \--- commons-io:commons-io:2.4
класс вызывает вопрос, com.nimbusds.jwt.JWT
является частью артефакта nimbus-jose-jwt
, что й E Spring Security REST Plugin зависит от.
Я чувствую, что этот плагин должен соответствовать JDK 1.6, поскольку на странице плагина написано: Версия Grails: 2.0> *. Это очень вводит в заблуждение, поскольку я потратил довольно много времени на разработку, и теперь я понимаю, что я не могу даже развернуть его для производства. Не стоит ли говорить Версия Grails: 3.0> *, или я что-то не понимаю?
Я являюсь автором 'spring-security-rest'. Честно говоря, я не знал об этом требовании Нимбуса, поэтому не рекламируется. С другой стороны, использование Java 6, когда не только он, но и Java 7 уже не поддерживается, чувствует себя странно для меня. В любом случае, я укажу в документации минимальную версию. –
Благодарим вас за то, что вы время комментируете это. Я искренне удивлен этим быстрым ответом и рад, что это будет задокументировано сейчас, поскольку я люблю ваш плагин и ненавижу тот факт, что я не мог использовать его в производстве. Он работал как шарм на JDK 1.7. Последовал за документацией и не нужно ничего настраивать, кроме цепочки фильтров. Большой плагин, не означает критиковать что-либо, кроме недокументированной проблемы JDK! – nst1nctz