【问题标题】:Weblogic deployment exception: java.lang.ClassNotFoundExceptionWeblogic部署异常:java.lang.ClassNotFoundException
【发布时间】:2016-05-05 06:04:42
【问题描述】:

当我在 weblogic 12.1.1 中部署 EAR 文件时,我收到了java.lang.ClassNotFoundException,但奇怪的是部署成功了,我能够访问应用程序。

但是,当在我们的生产环境中部署同一个耳朵时,返回以下异常并且部署失败并出现以下错误

<Unable to set the activation state to true for the application "xyz-scheduler".
weblogic.management.DeploymentException: java.lang.ClassNotFoundException: abc.xyz.ModelCI
            at weblogic.application.internal.BaseDeployment.throwAppException(BaseDeployment.java:123)
            at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:260)
            at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:61)
            at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165)
            at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80)
            Truncated. see log file for complete stacktrace
Caused By: java.lang.ClassNotFoundException: abc.xyz.ModelCI
            at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:335)
            at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:302)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
            at weblogic.utils.classloaders.GenericClassLoader.

生产中的 weblogic 版本是 12.1.2,我无权查看生产 weblogic 设置。

任何人都可以帮助我理解为什么我的部署在我的本地成功,即使它引发了异常?

【问题讨论】:

    标签: weblogic weblogic12c


    【解决方案1】:

    这似乎不是一致的行为。专注于您的一个环境并启用以下调试标志,以了解类加载的工作方式以及为什么找不到此类:

    -Dweblogic.utils.classloaders.GenericClassLoader.Verbose=true 
    -Dweblogic.utils.classloaders.ChangeAwareClassLoader.Verbose=true 
    -Dweblogic.utils.classloaders.ClasspathClassFinder=true 
    -Dweblogic.utils.classloaders.DefaultFilteringClassLoader.Verbose=true 
    -Dweblogic.utils.classloaders.FilteringClassLoader.Verbose=true 
    -Dweblogic.utils.classloaders.FilteringClassLoader.ResourceDump=true 
    -Dweblogic.utils.classloaders.URLClassFinder.Verbose=true 
    -Dweblogic.log.StdoutSeverity=Debug 
    -Dweblogic.log.RedirectStdoutToServerLogEnabled=true 
    -Dweblogic.log.RedirectStderrToServerLogEnabled=true
    

    输出将非常冗长。要解释它,请考虑以下几点:

    Looking for class: CLASSNAME With classpath of (PATH) Classloader object id (CLASSLOADERID)
    in case class is not found you will see:
        Class: 'CLASSNAME' not found.**
    otherwise:
        Found class: CLASSNAME
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多