出自 :http://www.lwbst.com/NewsView.do?newsID=5792
WebLogic
部署问题故障排除 |
|
|
来源:网络 [2007-04-18] 作者:张水傲 编辑:admin |
|
问
题描述:
- WebLogic Server 无法正确部署应用程序。
- 服务器选择的是旧版本的应用程序,而不是重新部署的新版本的应用程序。
故障排除: 请注意,并非下
面所有任务都需要完成。有些问题仅通过执行几项任务就可以解决。
可
部署应用程序类型和部署目标类型 部署单元是指根据
J2EE 规范进行组织并可部署到 WebLogic Server 的 J2EE 应用程序(企业应用程序或 Web 应用程序)或独立 J2EE
模块(EJB 或资源适配器)。百事通
WebLogic Server 也支持 Web Service
模块的部署,J2EE 规范中并未包含此类模块。
一个企业应用程序由一个或多个下列 J2EE 应用程序或模块组成:
- Web 应用程序
- Enterprise Java Bean (EJB) 模块
- 资源适配器模块
使用 jar
实用程序打包的部署单元使用各自专用的文件扩展名,部署单元的类型决定它使用的文件扩展名:
- EJB 打包后生成的文件的扩展名是 .jar。
- Web 应用程序打包后生成的文件的扩展名是 .war。
- 资源适配器打包后生成的文件的扩展名是 .rar。
- 企业应用程序打包后生成的文件的扩展名是 .ear。
- Web Service 打包后生成的文件的扩展名可以是 .ear 或 .war。
大多数部署单元均可以打包文件格式或展开目录格式进行部署,只有资源适配器模块例
外,它不能以展开目录格式进行部署。 部署目标可以是 WLS 服务器、群集或虚拟主机。
部署工具 WLS 提供了以下几种模式来部署应用程序:
- 通过管理控制台
- weblogic.Deployer 工具
- wldeploy Ant 任务
- weblogic.management.deploy API
- 如果是以开发模式运行,则可以通过复制应用程序目录下的模块进行部署。
有关部署工具的详细信息,请参阅 http://e-docs.bea.com/wls/docs81/deployment/tools.html#999152
(English)。
Stage 模式 WebLogic
Server 为分级文件提供了以下三种不同的模式:stage 模式、nostage 模式和 external_stage 模式。下表详细说明了上述模式的工作方式: http://edocs.bea.com/wls/docs81/deployment/overview.html#1036753
(English)
stage 模式的缺省值:
- 对于被管服务器:stage 模式的缺省值是 stage,这意味着缺省的 stage
行为是将应用程序文件复制到其目标被管服务器
- 对于管理服务器:stage 模式的缺省值是 nostage,这意味着缺省
stage 行为是从提供的源位置进行部署
开
发/生产模式 可以利用 applications
目录在开发服务器中
快速部署应用程序。WebLogic Server 实例以开发模式运行时,会自动部署您置于该目录中的所有应用程序或模块。
自动部署功
能会检查 applications 文件夹,以确定是否有新生成的应用程序或现有应用程序是否有更改,然后会动态地部署这些更改。 Auto Update Interval 的缺省值为 3000
毫秒。可以通过管理控制台更改该值,具体方法为:
在左窗格中选择域的名称,然后在“Applications”选项卡中更改间隔值。
对于以开发模式运行的服务器,自动部署功能处于启用状
态。要禁用自动部署功能,请使用下列方法之一将服务器转入生产模式:
- 在管理控制台中,在左侧窗格中单击域的名称,然后在右侧窗格中选中“Production Mode”复选框。
- 在命令行中,请使用以下参数启动域的管理服务器:
-Dweblogic.ProductionModeEnabled=true
缺省情况下,被管服务
器与管理服务器的启动模式相同。在 WLS 8.1 SP3 及以后的版本中,您可以更改被管服务器的启动模式,使之不同于管理服务器的启动模式(在
8.1SP3 中,已通过 CR127698
/ CR132901 (English) 修正了该问题)。
展
开目录/归档格式 大多数部署单元均可以打包文件格式或展开目录格式进行部署。下面列出了这些格式的常见优点和缺
点:
- 以展开目录格式部署时,可以更新静态文件,以归档格式部署时则无法进行更新。
- 以展开目录格式部署时,可以重新部署应用程序的一部分而无需重新部署整个应用程序。
- 以展开目录格式部署时,可以通过控制台编辑部署描述符。
- 如果以 nostage 模式和展开目录格式进行部署,WebLogic
会自动检测部署的 JSP 或 Servlet 发生的更改,并更新部署。
- 以归档格式部署便于打包模块和应用程序来进行展开目录。打包文件更易于复制,因为与展开目录格式的目录比较,它们占用的文件句柄数较
少,而且由于进行了文件压缩,它们可以节省磁盘空间。
|
排除部署故障 下面
列出了可能会遇到的常见部署故障:
- 部署应用程序时,如果出现 java.util.ZipException
错误,请证实以下情况:
- 如果以展开目录格式部署,拥有对 ear 应用程序文件或目录的读/写权限
- 应用程序的路径正确
- 应用程序路径名称中没有多余的空格。有关详细信息,请参阅 CR120603
(English),该问题已在 8.1SP2 中得到解决。
- 如果您拥有部署应用程序的访问权限,请证实您拥有在指定目标上部署应用程序的权限。有关详细信息,请参阅 CR135329
(English),该问题已在 81SP3 中得到解决。部署异常可能与如下所示的类似:
Access not allowed for
subject:principals=[foouser, Deployers], on ResourceType:Cluster
Action:execute, Target:addDeployment
- 尽管在各服务器上进行单独部署时均告成功,但在向整个群集部署时却失败。请确认是否将
ClusterConstraintsEnabled
设置为 true。缺省情况下,在当前可连接服务器上可以成功进行群集部署,当前不可连接服务器在可连接时才能进行群集部署。
- 如果正在部署大型应用程序,所需的部署超时大于缺省的 60 分钟超时值,则需要指定超时。可以在控制台中指定超时值,也可将其作为 weblogic.Deployer 的参数加以指定。请注意问题 CR128537
(English),该问题的故障现象是:为 weblogic.Deployer
设置的超时值未得到执行。该问题在 8.1SP3 中已得到解决。
排除更新失败故障 如果正在
进行重新部署,却发现部署的仍然是旧版本的应用程序,则需要确认以下各项:
- 所使用的 stage 模式。目标服务器使用可用的部署文件:如果部署单元是以 stage
模式进行部署,则使用部署文件的本地副本;如果部署单元是以 nostage
模式进行部署,则使用原始部署文件。
- 确认服务器的 stage 目录。有时需要清理 stage
目录,以确保应用程序得到正确的重新部署,且部署的是新版本的应用程序。缺省 stage 目录在 domainDir\Serverdir\stage
下。
- 确认 .wlnotdelete
是否包含旧版本的应用程序。可能需要在 Weblogic 服务器退出时清理该目录。
- 如果需要更新静态文件,请确保应用程序是以展开目录格式部署的。
- 确认系统类路径中不存在相同的应用程序或 EJB jar 文件。
- 如果对新模块使用 weblogic.Deployer ?Cdeploy
选项来将其添加到已部署的应用程序中,则需要确保已对 application.xml
进行了更新,使其包含此新模块,否则将不会部署此新模块。
- 如果正在重新部署单独的 EJB 实现类,却发现使用的仍是旧版本,请确保 weblogic-ejb-jar.xml
中的节
的设置值为 true。
- 如果在 servlet 中启动自己的守护线程,则重新部署 webapp 时 WebLogic
将无法停止这些线程,因而仍会继续运行旧版本。
|
排
除部署时的 JSP 预编译故障 如果正在部署某个
webapp,其时 weblogic.xml 中的标志‘precompile’的设置值为
true,且已经使用 jspc 预编译了 JSP,则预期的行为将是:部署时只对修改过的 JSP 而不是所有 JSP 进行预编译。如果您发现对所有
JSP 都进行了预编译,则需要检查以下各项:
- 预编译和部署时使用的 WLS 版本及包含一次性补丁的 Service Pack 级别相同。
- 开发计算机(进行编译的计算机)与部署计算机使用的时区相同。
- 编译过的类位于 WEB-INF\classes\jsp_servlet
下,其中 jsp_servlet 通常是缺省的 PackagePrefix;如果在 weblogic.xml 的 jsp-descriptor 中或
WEB-INF\lib 下的 jar
文件中对其进行了更改,则将是更改后的值。
- 这里存在一个已知问题,即如果以 war 文件而非展开目录格式进行部署,将会对子上下文中的 JSP 进行预编译。在 8.1SP3
中,问题 CR124505
(English) 已得到解决。
|
已知问题 除查阅上面提到的特定 CR 外,还可以定期查看所用 WLS 版本的发行说明,了解
Service Pack 中的已知问题或已解决问题的详细信息并浏览与部署有关的问题。方便起见,下面提供了这些发行说明的链接:
使用搜索功能
也可以搜索到“Release Notes”,还可以搜索到其它支持解决办法及与 CR 有关的信息,如需要更多帮助?中所提到的内容。如果客户签订了技术支持合同,则可以登录 http://support.bea.com/,登录后会看到为
Solutions 和 BugCentral 提供的 Browse portlet,可在其中按产品版本浏览最新提供的 CR。
|
调试标志 可
以启用以下标志:MasterDeployer、SlaveDeployer、DeploymentTaskRuntime、DeployerRuntime 和 ApplicationContainer。
请
注意,要启用这些调试标志,需要在启动脚本中将它们作为 weblogic.Debug
的参数,因为它们在 ServerDebug Mbean 中无法单独使用。例如,要启用 weblogic.MasterDeployer,需要在启动脚本的 JAVA_OPTIONS
部分添加以下内容:
-Dweblogic.Debug=weblogic.MasterDeployer
如
果要启用多个标志,可以使用逗号进行分隔,如下所示:
-Dweblogic.Debug=weblogic.MasterDeployer,weblogic.SlaveDeployer,
weblogic.DeploymentTaskRuntime,weblogic.DeployerRuntime,
weblogic.ApplicationContainer
请
确保 StdoutDebugEnabled 的设置值为“true”。可以在 config.xml 中确认该项设置。可以通过控制台或命令行来启用调试到 stdout 选项:
-Dweblogic.StdoutDebugEnabled=true | | |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12474069/viewspace-659864/
,如需转载,请注明出处,否则将追究法律责任。