刚遇到类似问题,如下文所述:
Question: Article with similar error description
java.rmi.UnmarshalException: cannot unmarshaling return; nested exception is:
java.rmi.UnexpectedException: Failed to parse descriptor file; nested exception is:
java.rmi.server.ExportException: Failed to export class
我发现所描述的问题与任何Java更新完全无关,而且与Weblogic bean-cache相关。在更新部署时,它似乎使用旧的编译版本的类。我在相关问题(Question: Interface-Implementation-mismatch)中搜索了类似的问题。
如何正确修复此问题以允许正确的自动部署(使用WLST)?
答案 0 :(得分:0)
经过Oracle社区的一些反馈后,它现在的工作原理如下:
1)关闭远程受管服务器
2)删除目录“domains /#MyDomain#/ servers /#MyManagedServer#/ cache / EJBCompilerCache”
3)重新部署EAR /应用程序
在WLST(需要自动执行此操作)中,这非常棘手:
import shutil
servers=cmo.getServers()
domainPath = get('RootDirectory')
for thisServer in servers:
pathToManagedServer = domainPath + "\\servers\\" + thisServer.getName()
print ">Found managed server:" + pathToManagedServer
pathToCacheDir = pathToManagedServer + "\\" + "cache\\EJBCompilerCache"
if(os.path.exists(pathToCacheDir) and os.path.isdir(pathToCacheDir) ):
print ">Found a cache directory that will be deleted:" + pathToCacheDir
# shutil.rmtree(pathToCacheDir)
注意:测试时要小心,“pathToCacheDir”返回的路径取决于当前设置的MBean上下文。请参阅WLST命令“cd()”的示例。您应首先使用“print domainPath”测试路径输出,然后添加“rmtree”python命令! (我在我的示例中取消注释了删除命令,因此没有人意外删除整个域!)