将应用部署到weblogic10及oracle linux时遇到的问题 下载本文

内容发布更新时间 : 2024/10/22 17:30:47星期一 下面是文章的全部内容请认真阅读。

将应用部署到weblogic10及oracle linux时遇到的问题 ?公司一个项目准备在这几天上线,在用户现场搭建好服务器运行环境后,我们的主要工作就是将应用移植到新的环境中。 部署环境介绍 开发环境介绍 操作系统 Oracle windows7/windowsxp Enterprise-R5-U5-Server-x86_6 中间件 Weblogic server 10.3 tomcat 6 JDK jdk1.6 jdk1.6 J2EE SDK 5.0 5.0 数据库 Oracle Oracle ?在将tomcat环境下开发的应用移植到weblogic下的过程中遇到了各种问题,特在此记录。 一、在一开始时准备将web应用打成war包,使用weblogic管理服务器安装,遇到了第一个问题 错误一: 意外的异常 在处理请求时出现意外的异常情况 消息: 省略数千字…………… 错误二: 问题分析: ?? ?这些错误都是在文件上传时,因为我们的工程较大,导致虚拟交换内存不足引起的,将修改weblogic的虚拟内存调大后,解决了问题。 解决办法: ?? ?找到weblogic启动文件?startWebLogic.sh,由于该文件实际上又调用了bin/setDomainEnv.sh文件,所以真正要改的是setDomainEnv.sh(在我这里该文件位于/Middleware/user_projects/domains/base_domains/bin) 将PermSize?和MaxPermSize调整到?256和?512(按实际需要来调) 二、这时候,我们这样可以没问题了吧,谁知一部署,第二个问题来了 错误: property when WAR file is not expanded 问题分析: 解决办法: ?? 由于用这种写法获得web服务器路径的地方很多,一个个去换显然不是一个很好的办法,而且直接使用war部署对后续的应用更新也比较麻烦,所以准备采用另外一种部署方式,就是文件目录部署。 三、文件目录部署 ?? ?使用文件目录部署指的是用weblogic管理服务器安装,直接指定本地的应用文件夹,只要该文件夹下面有包含WEB-INF\\web.xml,就可以被选中安装。 ?? ?所以接下来就是建立应用程序的安装目录。 在区别于weblogic域管理目录路径,我们在根路径创建了目录。 /deploy/applications/app /deploy/applications/plan app :?准备用来存放app应用,在文件夹建好以后,将我们的应用(如:wzfy)整个文件夹拷贝到app下面。

plan :?这个文件夹当weblogic管理服务器安装了app下面的应用后,会在这里自动建立app的部署计划文件。 在管理服务器中,找到目录/deploy/applications/app?,选中wzfy,开始安装。第三个问题出现 无法访问选定应用程序。 Exception in AppMerge flows' progression Exception in AppMerge flows' progression [J2EE:160111]ERROR: Appc can not write to the working directory, '/deploy/applications/app/wzfy'. Please ensure that you have write permission for this directory and try again. ?? ?通过文字意思的理解,就是对于操作用户来说/deploy/applications/app/wzfy是不可写的。 奇怪,我们手动建立目录都是可写的呀?怎么用webLogic Server安装就变成不可写了呢。 一想,我们建立用户用的root用户,目录操作肯定没问题,而我webLogic Server登录的用户如果没有授权肯定是没有这个权限。于是给webLogic Server用户?weblogic授予对目录/deploy/applications/的访问权限。 授权方法如下: chown?–Rf weblogic:weblogic /deploy/applications 授权后,安装部署,一路走下来,非常顺利,直到启动wzfy,第四个问题出现 四、创建sessionFactory失败 Errors in named queries: queryViewByModuleID, querySecParentOwnerById, 中间省略数千字……………………………………………………………………… 问题分析: ?? ? 碰到这个问题后,一头雾水,这怎么解决呢,第一想法是可能因为我们在hibernate中映射文件中使用name queries(命名查询)的方式,会不会是weblogic不认呢?通过google和baidu了很多资料,很试了很多方法,都已失败告终,最后在发现了有一个哥们在blog中总结的一段内容,问题解决。 5、?Hibernate3、Axis部署问题 ? ??? true ? 说明:prefer-web-inf-classes=true是WebLogic's classloader在有重名类时,优先加载Web应用中WEB-INF内的类。 Axis部署同理。

至此,问题彻底解决,感谢很多热心的网友,将自己解决问题的方法写出来,贡献给广大劳动人民,所以我也准备将今天解决的问题总结一下,放到blog里,希望能给遇到同样问题的朋友提供一些帮助。