当我在weblogic 12.1.1中部署EAR文件时,我得到{-# LANGUAGE FlexibleContexts #-}
newtype Error = Error String
gauntlet :: MonadError Error m => m ()
gauntlet = do
unless boolCheck (throw "simple bool check failed")
_ <- maybe (throw "simple maybe check failed") pure maybeCheck
_ <- either throw pure eitherCheck
x <- monadicBoolCheck
unless x (throw "monadic bool check failed")
return ()
where
throw = throwError . Error
version2 :: IO ()
version2 =
putStrLn (case gauntlet of
Left (Error e) ->
"Error: " ++ e
Right _ ->
"successfully doing thing")
,但奇怪的是部署成功,我能够访问该应用程序。
但是,当在我们的生产环境中部署相同的ear时,会返回以下异常,并且部署失败并出现以下错误
java.lang.ClassNotFoundException
生产中的weblogic版本是12.1.2,我无权查看生产weblogic设置。
任何人都可以帮助我理解为什么我的部署在我的本地成功,即使它引发了异常吗?
答案 0 :(得分:0)
它似乎不是一致的行为。集中在您的一个环境中并启用以下调试标志,以了解类加载的工作方式以及无法找到此类的原因:
-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