【问题标题】:Apache Wicket - java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.EnhancerApache Wicket - java.lang.NoClassDefFoundError:无法初始化类 net.sf.cglib.proxy.Enhancer
【发布时间】:2021-04-15 17:58:51
【问题描述】:

需要有关在运行时修复类未找到错误的指导。我检查了所有类似的答案,但无法解决我面临的问题。

项目编译,war文件成功部署到Tomcat上,没有问题 当第一个 URL 被命中时,运行时会出现以下堆栈跟踪

cglib 在我的例子中是 Apache Wicket IOC 的依赖,它依赖于 wicketstuff-restannotationswicketstuff-restannotations 作为依赖项添加到下面提供的我的build.sbt 中。

  • 我确实尝试在build.sbt 中手动添加cglib 依赖项。它显示在 dependencyTree 中,但在运行时仍然存在相同的异常
  • 尝试添加 cglib-nodep 以及依赖项
  • 我尝试从wicketstuff-restannotations 和所有wicket 库依赖项中排除cglib,然后手动添加cglibcglib-nodep 依赖项。还是同样的问题。

堆栈跟踪

javax.servlet.ServletException: Filter execution threw an exception
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
    org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)
    org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:149)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:218)
    org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter.doFilterInternal(OAuth2AuthorizationRequestRedirectFilter.java:178)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)
    org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
    org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)
    org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)
    org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)
    org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
    org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
Root Cause

java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer
    org.apache.wicket.proxy.LazyInitProxyFactory.createProxy(LazyInitProxyFactory.java:182)
    org.apache.wicket.spring.injection.annot.AnnotProxyFieldValueFactory.getFieldValue(AnnotProxyFieldValueFactory.java:166)
    org.apache.wicket.injection.Injector.inject(Injector.java:111)
    org.apache.wicket.spring.injection.annot.SpringComponentInjector.inject(SpringComponentInjector.java:124)
    org.apache.wicket.Application.fetchCreateAndSetSession(Application.java:1523)
    org.apache.wicket.Session.get(Session.java:181)org.apache.wicket.request.cycle.RequestCycleListenerCollection$2.notify(RequestCycleListenerCollection.java:85)
    org.apache.wicket.request.cycle.RequestCycleListenerCollection$2.notify(RequestCycleListenerCollection.java:81)
    org.apache.wicket.util.listener.ListenerCollection.reversedNotify(ListenerCollection.java:144)
    org.apache.wicket.request.cycle.RequestCycleListenerCollection.onEndRequest(RequestCycleListenerCollection.java:80)
    org.apache.wicket.request.cycle.RequestCycleListenerCollection$2.notify(RequestCycleListenerCollection.java:85)
    org.apache.wicket.request.cycle.RequestCycleListenerCollection$2.notify(RequestCycleListenerCollection.java:81)
    org.apache.wicket.util.listener.ListenerCollection.reversedNotify(ListenerCollection.java:144)
    org.apache.wicket.request.cycle.RequestCycleListenerCollection.onEndRequest(RequestCycleListenerCollection.java:80)
    org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:266)
    org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:277)
    org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:208)
    org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:307)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
    org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)
    org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:149)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:218)
    org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter.doFilterInternal(OAuth2AuthorizationRequestRedirectFilter.java:178)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)
    org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
    org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)
    org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
    org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)
    org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)
    org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
    org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)

相关和更新的 build.sbt

版本号

// val wicket_version = "9.2.0"
// val spring_version = "5.4.5"
// val spring_security_version = "5.4.5"
// val spring_security_saml_version = "1.0.10.RELEASE"
// val spring_boot_starter_version = "2.4.4"

依赖

libraryDependencies ++= Seq(
    "cglib" % "cglib" % "3.3.0",
    "cglib" % "cglib-nodep" % "3.3.0",
    "org.apache.wicket" % "wicket" % wicket_version exclude("cglib","cglib"),
    "org.apache.wicket" % "wicket-auth-roles" % wicket_version exclude("cglib","cglib"),
    "org.apache.wicket" % "wicket-spring" % wicket_version exclude("cglib","cglib"),
    "org.apache.wicket" % "wicket-extensions" % wicket_version exclude("cglib","cglib"),
    "org.apache.wicket" % "wicket-datetime" % wicket_datetime_version,
    "org.wicketstuff" % "wicketstuff-restannotations" % wicket_version exclude("cglib","cglib"),
    "org.wicketstuff" % "wicketstuff-select2" % wicket_version exclude("cglib","cglib"),
    "com.fasterxml.jackson.dataformat" % "jackson-dataformat-csv" % "2.12.2",
    "com.googlecode.wicket-jquery-ui" % "wicket-jquery-ui" % wicket_version exclude("cglib","cglib"),
    "org.springframework.boot" % "spring-boot-starter-web" % spring_boot_starter_version,
    "org.springframework.boot" % "spring-boot-starter-security" % spring_boot_starter_version,
    "org.springframework.security" % "spring-security-ldap" % spring_version,
    "org.springframework.security" % "spring-security-oauth2-client" % spring_version,
    "org.springframework.security" % "spring-security-oauth2-jose" % spring_version,
    "org.springframework.security.extensions" % "spring-security-saml2-core" % spring_security_saml_version excludeAll(
        ExclusionRule(organization = "ca.juliusdavies", name = "not-yet-commons-ssl"),
        ExclusionRule(organization = "org.opensaml", name = "opensaml"),
        ExclusionRule(organization = "xml-apis", name = "xml-apis")
    ),
    "org.springframework" % "spring-jdbc" % "5.3.5",
    "org.opensaml" % "opensaml" % "2.6.4",
    "xml-apis" % "xml-apis" % "2.0.2",
    "org.apache.commons" % "commons-dbcp2" % "2.8.0",
    "mysql" % "mysql-connector-java" % "6.0.6",
    "javax.servlet" % "javax.servlet-api" % "4.0.1" % "provided",
)

dependencyTree的相关和更新部分:

还找到了完整的cglib dependencyTree,它可以作为 dependencyTree 中显示的依赖项在一个地方使用

[info]   |     |   
[info]   |     +-org.springframework:spring-core:5.3.5
[info]   |       +-org.springframework:spring-jcl:5.3.5
[info]   |       
[info]   +-cglib:cglib-nodep:3.3.0
[info]   +-cglib:cglib:3.3.0
[info]   | +-org.ow2.asm:asm:7.1 (evicted by: 9.0)
[info]   | +-org.ow2.asm:asm:9.0
[info]   | 
[info]   +-com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.12.2
[info]   | +-com.fasterxml.jackson.core:jackson-annotations:2.12.2
[info]   | +-com.fasterxml.jackson.core:jackson-core:2.12.2
[info]   | +-com.fasterxml.jackson.core:jackson-databind:2.12.2
[info]   |   +-com.fasterxml.jackson.core:jackson-annotations:2.12.2
[info]   |   +-com.fasterxml.jackson.core:jackson-core:2.12.2
[info]   |   
[info]   +-com.googlecode.wicket-jquery-ui:wicket-jquery-ui:9.2.0
[info]   | +-com.googlecode.wicket-jquery-ui:wicket-jquery-ui-core:9.2.0
[info]   | 
[info]   +-org.apache.wicket:wicket-auth-roles:9.2.0
[info]   | +-org.apache.wicket:wicket-core:9.2.0
[info]   | | +-com.github.openjson:openjson:1.0.12
[info]   | | +-org.apache.wicket:wicket-request:9.2.0
[info]   | | | +-org.apache.wicket:wicket-util:9.2.0
[info]   | | | | +-commons-fileupload:commons-fileupload:1.4
[info]   | | | | +-commons-io:commons-io:2.8.0
[info]   | | | | +-org.apache.commons:commons-collections4:4.4
[info]   | | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | | 
[info]   | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | 
[info]   | | +-org.apache.wicket:wicket-util:9.2.0
[info]   | | | +-commons-fileupload:commons-fileupload:1.4
[info]   | | | +-commons-io:commons-io:2.8.0
[info]   | | | +-org.apache.commons:commons-collections4:4.4
[info]   | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | 
[info]   | | +-org.danekja:jdk-serializable-functional:1.9.0
[info]   | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | 
[info]   | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | +-org.slf4j:slf4j-api:1.7.30
[info]   | 
[info]   +-org.apache.wicket:wicket-datetime:8.0.0-M7
[info]   | +-joda-time:joda-time:2.9.9
[info]   | +-org.apache.wicket:wicket-core:8.0.0-M7 (evicted by: 9.2.0)
[info]   | +-org.apache.wicket:wicket-core:9.2.0
[info]   | | +-com.github.openjson:openjson:1.0.12
[info]   | | +-org.apache.wicket:wicket-request:9.2.0
[info]   | | | +-org.apache.wicket:wicket-util:9.2.0
[info]   | | | | +-commons-fileupload:commons-fileupload:1.4
[info]   | | | | +-commons-io:commons-io:2.8.0
[info]   | | | | +-org.apache.commons:commons-collections4:4.4
[info]   | | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | | 
[info]   | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | 
[info]   | | +-org.apache.wicket:wicket-util:9.2.0
[info]   | | | +-commons-fileupload:commons-fileupload:1.4
[info]   | | | +-commons-io:commons-io:2.8.0
[info]   | | | +-org.apache.commons:commons-collections4:4.4
[info]   | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | 
[info]   | | +-org.danekja:jdk-serializable-functional:1.9.0
[info]   | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | 
[info]   | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | +-org.slf4j:slf4j-api:1.7.30
[info]   | 
[info]   +-org.apache.wicket:wicket-extensions:9.2.0
[info]   | +-org.apache.wicket:wicket-core:9.2.0
[info]   | | +-com.github.openjson:openjson:1.0.12
[info]   | | +-org.apache.wicket:wicket-request:9.2.0
[info]   | | | +-org.apache.wicket:wicket-util:9.2.0
[info]   | | | | +-commons-fileupload:commons-fileupload:1.4
[info]   | | | | +-commons-io:commons-io:2.8.0
[info]   | | | | +-org.apache.commons:commons-collections4:4.4
[info]   | | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | | 
[info]   | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | 
[info]   | | +-org.apache.wicket:wicket-util:9.2.0
[info]   | | | +-commons-fileupload:commons-fileupload:1.4
[info]   | | | +-commons-io:commons-io:2.8.0
[info]   | | | +-org.apache.commons:commons-collections4:4.4
[info]   | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | 
[info]   | | +-org.danekja:jdk-serializable-functional:1.9.0
[info]   | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | 
[info]   | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | +-org.slf4j:slf4j-api:1.7.30
[info]   | 
[info]   +-org.apache.wicket:wicket-ioc:9.2.0
[info]   | +-javax.inject:javax.inject:1
[info]   | +-org.apache.wicket:wicket-core:9.2.0
[info]   | | +-com.github.openjson:openjson:1.0.12
[info]   | | +-org.apache.wicket:wicket-request:9.2.0
[info]   | | | +-org.apache.wicket:wicket-util:9.2.0
[info]   | | | | +-commons-fileupload:commons-fileupload:1.4
[info]   | | | | +-commons-io:commons-io:2.8.0
[info]   | | | | +-org.apache.commons:commons-collections4:4.4
[info]   | | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | | 
[info]   | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | 
[info]   | | +-org.apache.wicket:wicket-util:9.2.0
[info]   | | | +-commons-fileupload:commons-fileupload:1.4
[info]   | | | +-commons-io:commons-io:2.8.0
[info]   | | | +-org.apache.commons:commons-collections4:4.4
[info]   | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | 
[info]   | | +-org.danekja:jdk-serializable-functional:1.9.0
[info]   | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | 
[info]   | +-org.ow2.asm:asm:9.0
[info]   | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | +-org.slf4j:slf4j-api:1.7.30
[info]   | 
[info]   +-org.apache.wicket:wicket-spring:9.2.0
[info]   | +-org.apache.wicket:wicket-core:9.2.0
[info]   | | +-com.github.openjson:openjson:1.0.12
[info]   | | +-org.apache.wicket:wicket-request:9.2.0
[info]   | | | +-org.apache.wicket:wicket-util:9.2.0
[info]   | | | | +-commons-fileupload:commons-fileupload:1.4
[info]   | | | | +-commons-io:commons-io:2.8.0
[info]   | | | | +-org.apache.commons:commons-collections4:4.4
[info]   | | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | | 
[info]   | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | 
[info]   | | +-org.apache.wicket:wicket-util:9.2.0
[info]   | | | +-commons-fileupload:commons-fileupload:1.4
[info]   | | | +-commons-io:commons-io:2.8.0
[info]   | | | +-org.apache.commons:commons-collections4:4.4
[info]   | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | 
[info]   | | +-org.danekja:jdk-serializable-functional:1.9.0
[info]   | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | 
[info]   | +-org.apache.wicket:wicket-ioc:9.2.0
[info]   | | +-javax.inject:javax.inject:1
[info]   | | +-org.apache.wicket:wicket-core:9.2.0
[info]   | | | +-com.github.openjson:openjson:1.0.12
[info]   | | | +-org.apache.wicket:wicket-request:9.2.0
[info]   | | | | +-org.apache.wicket:wicket-util:9.2.0
[info]   | | | | | +-commons-fileupload:commons-fileupload:1.4
[info]   | | | | | +-commons-io:commons-io:2.8.0
[info]   | | | | | +-org.apache.commons:commons-collections4:4.4
[info]   | | | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | | | 
[info]   | | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | | 
[info]   | | | +-org.apache.wicket:wicket-util:9.2.0
[info]   | | | | +-commons-fileupload:commons-fileupload:1.4
[info]   | | | | +-commons-io:commons-io:2.8.0
[info]   | | | | +-org.apache.commons:commons-collections4:4.4
[info]   | | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | | 
[info]   | | | +-org.danekja:jdk-serializable-functional:1.9.0
[info]   | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | 
[info]   | | +-org.ow2.asm:asm:9.0
[info]   | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | 
[info]   | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | +-org.slf4j:slf4j-api:1.7.30
[info]   | +-org.springframework:spring-context:5.3.1 (evicted by: 5.3.5)
[info]   | +-org.springframework:spring-context:5.3.5
[info]   |   +-org.springframework:spring-aop:5.3.5
[info]   |   | +-org.springframework:spring-beans:5.3.5
[info]   |   | | +-org.springframework:spring-core:5.3.5
[info]   |   | |   +-org.springframework:spring-jcl:5.3.5
[info]   |   | |   
[info]   |   | +-org.springframework:spring-core:5.3.5
[info]   |   |   +-org.springframework:spring-jcl:5.3.5
[info]   |   |   
[info]   |   +-org.springframework:spring-beans:5.3.5
[info]   |   | +-org.springframework:spring-core:5.3.5
[info]   |   |   +-org.springframework:spring-jcl:5.3.5
[info]   |   |   
[info]   |   +-org.springframework:spring-core:5.3.5
[info]   |   | +-org.springframework:spring-jcl:5.3.5
[info]   |   | 
[info]   |   +-org.springframework:spring-expression:5.3.5
[info]   |     +-org.springframework:spring-core:5.3.5
[info]   |       +-org.springframework:spring-jcl:5.3.5
[info]   |       
[info]   +-org.apache.wicket:wicket:9.2.0
[info]   | +-org.apache.wicket:wicket-core:9.2.0
[info]   | | +-com.github.openjson:openjson:1.0.12
[info]   | | +-org.apache.wicket:wicket-request:9.2.0
[info]   | | | +-org.apache.wicket:wicket-util:9.2.0
[info]   | | | | +-commons-fileupload:commons-fileupload:1.4
[info]   | | | | +-commons-io:commons-io:2.8.0
[info]   | | | | +-org.apache.commons:commons-collections4:4.4
[info]   | | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | | 
[info]   | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | 
[info]   | | +-org.apache.wicket:wicket-util:9.2.0
[info]   | | | +-commons-fileupload:commons-fileupload:1.4
[info]   | | | +-commons-io:commons-io:2.8.0
[info]   | | | +-org.apache.commons:commons-collections4:4.4
[info]   | | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | | 
[info]   | | +-org.danekja:jdk-serializable-functional:1.9.0
[info]   | | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | | +-org.slf4j:slf4j-api:1.7.30
[info]   | | 
[info]   | +-org.slf4j:slf4j-api:1.7.25 (evicted by: 1.7.30)
[info]   | +-org.slf4j:slf4j-api:1.7.30
[info]   | 
[info]   +-org.springframework.boot:spring-boot-starter-security:2.4.4
[info]   | +-org.springframework.boot:spring-boot-starter:2.4.4
[info]   | | +-jakarta.annotation:jakarta.annotation-api:1.3.5
[info]   | | +-org.springframework.boot:spring-boot-autoconfigure:2.4.4
[info]   | | | +-org.springframework.boot:spring-boot:2.4.4
[info]   | | |   +-org.springframework:spring-context:5.3.5
[info]   | | |   | +-org.springframework:spring-aop:5.3.5
[info]   | | |   | | +-org.springframework:spring-beans:5.3.5
[info]   | | |   | | | +-org.springframework:spring-core:5.3.5
[info]   | | |   | | |   +-org.springframework:spring-jcl:5.3.5
[info]   | | |   | | |   
[info]   | | |   | | +-org.springframework:spring-core:5.3.5
[info]   | | |   | |   +-org.springframework:spring-jcl:5.3.5
[info]   | | |   | |   
[info]   | | |   | +-org.springframework:spring-beans:5.3.5
[info]   | | |   | | +-org.springframework:spring-core:5.3.5
[info]   | | |   | |   +-org.springframework:spring-jcl:5.3.5

更新 我注意到了一种奇怪的行为。我有多个服务器部署了具有正常依赖关系的相同代码(没有明确定义cglib),具有不同的配置。 此问题仅在一个部署中出现,而其他部署正常。

配置文件包括-application.propertieslog4j.propertiesspring-security.xml

如果您需要更多详细信息,请告诉我。

【问题讨论】:

标签: java spring wicket cglib wicketstuff


【解决方案1】:
org.apache.wicket:wicket-datetime:8.0.0-M7

为什么要在 Wicket 9.2.0 中使用 8.0.0-M7 库?

请删除 cglibcglib-nodep 的显式依赖项以及所有排除项,然后重试。如果它仍然失败,那么请新的依赖树输出。

【讨论】:

  • 它仍然失败。我删除了 cglib 显式依赖项,删除了 org.apache.wicket:wicket-datetime 并包含 "org.wicketstuff" % "wicket-datetime" % "9.2.0" 以匹配版本。根据要求,这是完整的依赖树 - drive.google.com/file/d/1y889r_Usdiuixl4TkmlVmqN3uBfIgmrA/…
  • 尝试使用org.apache.wicket:wicket-datetime 而不是"org.wicketstuff" % "wicket-datetime" % "9.2.0" 版本7.18.07.17.0。仍然有同样的问题。请检查问题更新以及奇怪的行为
  • 是的,我还以为不是你。对不起!请也粘贴完整的例外情况。
  • 我已经粘贴了有问题的完整例外。您可以从这里查看 - data.smart360.me/smart360error/ui/signin
  • 我看不出可能是什么问题。我发现dependencyTree 有300K 行真是太神奇了!要解决这个问题,您可以为应该在biz.smart360.webapp.security.wicket.BizAuthenticatedSession.<init>(BizAuthenticatedSession.java:81) 注入的类引入一个接口。这样,Wicket 将使用 java.lang.reflect.Proxy 而不是 Cglib。另一种方法是向 Objenesis 添加依赖项。这样,Wicket 将使用 Objenesis 而不是 Cglib 进行类。
猜你喜欢
  • 2013-02-05
  • 1970-01-01
  • 1970-01-01
  • 2012-09-12
  • 1970-01-01
  • 2013-03-23
  • 2012-10-10
  • 2013-08-08
相关资源
最近更新 更多