ARTIFACTORY:如何排除NoClassDefFound错误?
描述
日志中可能会出现如下错误。
2021-07-19 t9:22:10. 832z [jfac] [ERROR] [4f658ce7fcdb7a11] [.s.b.w.s.s。ErrorPageFilter:186] [27.0.0.1-8040-exec-2] -从请求[/api/v1/registry/join/router]中转发到错误页面,原因是异常[org.glassfish.jersey.server. server. request [/api/v1/registry/join/router]。ContainerException: java.lang. noclassdeffounderror: java/security/interfaces/RSAPrivateKey]
javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang. noclassdeffounderror: java/security/interfaces/RSAPrivateKey
决议
要查看相关的类是如何被加载到Artifactory的JVM中的,需要检查Java类日志记录(它跟踪类的加载和卸载)以进行进一步诊断。
对于Artifactory 7.x:
在系统的extraJavaOpts中增加" -verbose:class "。yaml文件。如。
extraJavaOpts: "-server -Xms512m -Xmx2g -Xss256k -XX:+UseG1GC -verbose:class"
console.log中的示例条目:
[4.800s][info][class,load] java.sql. driver来源:jrt:/java.sql
[4.801s][info][class,load] com.mysql.jdbc.NonRegisteringDriver来源:file:/opt/jfrog/artifactory/app/artifactory/tomcat/lib/jf_mysql-connector-java-5.1.49.jar
[4.801s][info][class,load] com.mysql.jdbc.Driver来源:/opt/jfrog/artifactory/app/artifactory/tomcat/lib/jf_mysql-connector-java-5.1.49.jar
[4.801s][info][class,load] java.sql.连接来源:jrt:/java.sql
[4.801s][info][class,load] com.mysql.jdbc.AbandonedConnectionCleanupThread来源:file:/opt/jfrog/artifactory/app/artifactory/tomcat/lib/jf_mysql-connector-java-5.1.49.jar
[4.802][信息]com.mysql.jdbc类、负载。AbandonedConnectionCleanupThread$1来源:/opt/jfrog/artifactory/app/artifactory/tomcat/lib/jf_mysql-connector-java-5.1.49.jar
[4.815s][info][class,load] com.fasterxml.classmate. typeesolver来源:/opt/jfrog/artifactory/app/artifactory/tomcat/webapps/access/WEB-INF/lib/classmate-1.4.0.jar
[4.815s][info][class,load] com.fasterxml.classmate.ResolvedType来源:/opt/jfrog/artifactory/app/artifactory/tomcat/webapps/access/WEB-INF/lib/classmate-1.4.0.jar
[4.816s][info][class,load] com.fasterxml.classmate.types.ResolvedRecursiveType来源:file:/opt/jfrog/artifactory/app/artifactory/tomcat/webapps/access/WEB-INF/lib/classmate-1.4.0.jar
[4.816s][info][class,load] com.fasterxml.classmate.types.ResolvedArrayType来源:文件:/opt/jfrog/artifactory/app/artifactory/tomcat/webapps/access/WEB-INF/lib/classmate-1.4.0.jar
[4.816s][info][class,load] com.fasterxml.classmate.types.ResolvedInterfaceType来源:/opt/jfrog/artifactory/app/artifactory/tomcat/webapps/access/WEB-INF/lib/classmate-1.4.0.jar
[4.817s][info][class,load] com.fasterxml.classmate.types.ResolvedObjectType来源:file:/opt/jfrog/artifactory/app/artifactory/tomcat/webapps/access/WEB-INF/lib/classmate-1.4.0.jar
[4.818s][info][class,load] com.fasterxml. classate .members. rawmember来源:/opt/jfrog/artifactory/app/artifactory/tomcat/webapps/access/WEB-INF/lib/ classate -1.4.0.jar
[4.818s][info][class,load] com.fasterxml. classate .members. rawconstructor来源:/opt/jfrog/artifactory/app/artifactory/tomcat/webapps/access/WEB-INF/lib/ classate -1.4.0.jar
[4.818s][info][class,load] com.fasterxml. classate .members. rawfield来源:/opt/jfrog/artifactory/app/artifactory/tomcat/webapps/access/WEB-INF/lib/ classate -1.4.0.jar
[4.818s][info][class,load] com.fasterxml. classate .members. rawmethod来源:/opt/jfrog/artifactory/app/artifactory/tomcat/webapps/access/WEB-INF/lib/ classate -1.4.0.jar
[4.819s][info][class,load] com.fasterxml.classmate.TypeBindings来源:/opt/jfrog/artifactory/app/artifactory/tomcat/webapps/access/WEB-INF/lib/classmate-1.4.0.jar
对于Artifactory 6.x:
修改$ARTIFACTORY_HOME/bin/artifactory.default文件中的JAVA_OPTIONS,或如下所示:设置JVM参数.如。
export JAVA_OPTIONS="-server -Xms512m -Xmx4g -Xss256k -XX:+UseG1GC -XX:OnOutOfMemoryError="kill - 9% p" -verbose:class"
catalina.out中的示例条目:[2.139s][info][class,load] java.sql. driver来源:jrt:/java.sql
[2.139s][info][class,load] org.apache.derby.jdbc.EmbeddedDriver来源:file:/Users/venur/dev/art-rel/artifactory-pro-6.23.21/tomcat/lib/derby-10.14.2.0.jar
[2.139s][info][class,load] java.sql. sqlnontransientexception来源:jrt:/java.sql
[2.139s][info][class,load] java.sql. sqlfeaturenotsupportedexception来源:jrt:/java.sql . sqlfeaturenotsupportedexception
[2.140 0s][info][class,load] org.springframework.format.datetime.joda.YearMonthFormatter来源:file:/Users/venur/dev/art-rel/artifactory-pro-6.23.21/tomcat/webapps/access/WEB-INF/lib/spring-context-5.1.15.RELEASE.jar
[2.140 0s][info][class,load] java.sql. drivermanager来源:jrt:/java.sql
[2.140 0s][info][class,load] java.sql. sqlpermission来源:jrt:/java.sql
[2.141 1s][info][class,load] org.apache.derby.iapi.jdbc.JDBCBoot来源:/Users/venur/dev/art-rel/artifactory-pro-6.23.21/tomcat/lib/derby-10.14.2.0.jar
[2.141 1s][info][class,load] org.joda.time.MonthDay来源:file:/Users/venur/dev/art-rel/artifactory-pro-6.23.21/tomcat/webapps/access/WEB-INF/lib/joda-time-2.9.7.jar
[2.141 1s][info][class,load] org.springframework.format.datetime.joda.MonthDayFormatter来源:file:/Users/venur/dev/art-rel/artifactory-pro-6.23.21/tomcat/webapps/access/WEB-INF/lib/spring-context-5.1.15.RELEASE.jar
[2.142][info][class,load] org.apache.derby.iapi.services.monitor.ModuleControl源文件:/Users/venur/dev/art-rel/artifactory-pro-6.23.21/tomcat/lib/derby-10.14.2.0.jar
[2.142][info][class,load] org.springframework.format.datetime.joda.JodaDateTimeFormatAnnotationFormatterFactory来源:file:/Users/venur/dev/art-rel/artifactory-pro-6.23.21/tomcat/webapps/access/WEB-INF/lib/spring-context-5.1.15.RELEASE.jar
[2.142][info][class,load] org.apache.derby.jdbc.InternalDriver来源:file:/Users/venur/dev/art-rel/artifactory-pro-6.23.21/tomcat/lib/derby-10.14.2.0.jar
[2.143s][info][class,load] org.apache.derby.iapi.services.io.TypedFormat来源:/Users/venur/dev/art-rel/artifactory-pro-6.23.21/tomcat/lib/derby-10.14.2.0.jar
- 如果没有从类的预期位置加载任何东西,请查看Java CLASSPATH并确保它是其中的一部分。
- 如果某些类是从该位置加载的,那么可能是另一个包含该类的JAR文件丢失了。在Javadocs中查看问题类。
注意:问题解决后,关闭详细日志记录,因为它会影响应用程序的性能。
