应用程序部署问题

部署、安装或提升应用程序时可能会发生问题。本主题建议了多种方法来解决问题。

您遇到的是哪类问题?

首先检查以下各项:
  • 验证为应用程序、企业 Bean 模块或其他资源指定在控制台上出现的逻辑名不包含无效字符,如 - / \ : * ? " < > |.
  • 如果此应用程序是使用带 -local 标志的 wsadmin $AdminApp install 命令安装的,那么重新启动服务器或重新运行此命令而不带 -local 标志。

如果没有看到与您的问题类似的问题,或如果所提供的信息解决不了您的问题,请进行检查以了解是否识别并记录了该问题。

请参阅可用的在线支持,它包括提示与技巧、技术说明和修订。 如果还未识别此问题,请参阅来自 IBM 的故障诊断帮助

应用程序未显示

使用 wsadmin 工具安装了应用程序,但该应用程序未在应用程序 > 应用程序类型 > WebSphere 企业应用程序下显示。

可能已安装应用程序但您未保存配置:
  1. 请验证该应用程序的子目录是否位于 app_server_root/installedApps 目录下。
  2. 运行 $AdminApp list 命令并验证该应用程序是否不在那些显示的应用程序中。
    • bin 目录中,运行 wsadmin.batwsadmin.sh 命令。
    • 从 wsadmin 提示符下,输入 $AdminApp list 并验证该问题应用程序不在那些显示的项中。
  3. 使用 wsadmin 工具重新安装应用程序。退出之前,在 wsadmin 工具中运行 $AdminConfig save 命令。

无法保存已部署的应用程序

如果无法保存已部署的应用程序,那么存在的问题可能是打开的文件数太多,超出了操作系统限制。

[Linux]在 SuSE9 或其他 Linux 平台上,可以增大可打开的文件数来解决问题,也可以修改应用程序以按照规程关闭一些文件。要增大可同时打开的文件数,请在调用需要打开许多文件的进程之前,在 shell 中运行以下命令:
ulimit -n number_of_files

只有 root 用户有权调整每个进程的最大文件数。 完成以下步骤来修改应用程序以按照要求关闭一些文件:

  1. 在打开某个文件并完成了工作之后,调用该文件的关闭方法以将文件句柄释放回操作系统。
  2. 以 java.io.FileInputStream 和 FileOutputStream 类为例,可以调用它们的关闭方法来释放与流相关联的任何系统资源。
[Windows]

在组装工具、管理控制台或 wsadmin 工具中发生“java.lang.RuntimeException: Failed_saving_bytes_to_wor_ERROR_”错误

如果尝试在组装工具中生成部署的代码、在管理控制台中安装应用程序或模块或者使用 wsadmin 工具来安装应用程序或模块时遇到此错误,那么表明临时系统文件的文件路径长度可能超出限制。

要验证此问题,检查您的系统的 TEMPTMP 环境变量。长整型环境变量会将路径长度添加到 EJB 部署工具访问的文件名。

要解决此问题,请执行以下操作:
  1. 停止所有 WebSphere Application Server 进程并关闭所有 DOS 提示符。
  2. TEMPTMP 环境变量设置为较短的内容,例如 C:\TMPC:\TEMP
  3. 重新安装应用程序。
或者,尝试重新引导和重新部署或重新安装应用程序。

WASX7015E 运行 wsadmin 命令 $AdminApp installInteractive 或 $AdminApp install 时出错

此问题有两个可能的原因:

  • 如果错误的完整文本类似于:
    [AIX][HP-UX][Linux][Solaris][Windows][IBM i]
    WASX7015E: Exception running command: 
    "$AdminApp installInteractive C:/Documents and Settings/
      myUserName/Desktop/MyApp/myapp.ear";
    exception information:  
    com.ibm.bsf.BSFException: error while 
    evaluating Jacl expression: can't find method "installInteractive" 
    with 3 argument(s) for class 
    "com.ibm.ws.scripting.AdminAppClient" 
    [z/OS]
    WASX7015E: Exception running command: 
    "$AdminApp installInteractive Documents and Settings/
      myUserName/Desktop/MyApp/myapp.ear"; exception information:  
    com.ibm.bsf.BSFException: error while 
    evaluating Jacl expression: can't find method "installInteractive" 
    with 3 argument(s) for class 
    "com.ibm.ws.scripting.AdminAppClient" 
    未正确地指定文件和路径名。在这种情况下,由于路径包括空格,它被 wsadmin 程序解释为多个参数。

    正确地输入 .ear 文件的路径。在这种情况下,将它用双引号括起来:

    [AIX Solaris HP-UX Linux Windows][IBM i]
    $AdminApp installInteractive "C:\Documents 
    and Settings\myUserName\Desktop\MyApps\myapp.ear"
    [z/OS]
    $AdminApp installInteractive 
    "Documents and Settings/myUserName/Desktop/MyApps/myapp.ear"
  • 如果错误的完整文本类似于:
    [AIX Solaris HP-UX Linux Windows][IBM i]
    WASX7015E: Exception running command: "$AdminApp installInteractive c:\MyApps\myapp.ear "; 
    exception information: com.ibm.ws.scripting.ScriptingException:  WASX7115E: 
    Cannot read input file 
    "c:\WebSphere\AppServer\bin\MyAppsmyapp.ear"
    [z/OS]
    WASX7015E: Exception running command: "$AdminApp installInteractive 
    MyApps\myapp.ear "; 
    exception information: com.ibm.ws.scripting.ScriptingException:  WASX7115E: 
    Cannot read input file 
    "WebSphere\AppServer\bin\MyAppsmyapp.ear"
    未正确地指定应用程序路径。在这种情况下,请在路径中使用“正斜杠”(/)分隔符。

无法在 EJB 3.0 模块中安装 CMP 或 BMP 实体 bean

安装包含容器管理的持久性 (CMP) 或 bean 管理的持久性 (BMP) 实体 bean 的 EJB 3.0 模块时,安装失败。

产品不支持在 EJB 3.0 模块中安装封装有 CMP 或 BMP 实体 bean 的应用程序。必须将 CMP 或 BMP 实体 bean 封装在 EJB 2.1 或更低版本的模块中。

要解决此问题,请执行以下操作:
  1. 将 CMP 或 BMP 实体 bean 封装在 EJB 2.1 或更低版本的模块中。
  2. 尝试使用 EJB 2.1 或更低版本的模块安装应用程序。

组装工具生成的数据定义语言 (DDL) 在目标平台上抛出 SQL 错误

如果尝试在另一平台上执行组装工具所生成的数据定义语言 (DDL) 语句时接收到 SQL 错误,例如,如果要将 Windows 上设计的容器管理的持久性 (CMP) 企业 Bean 部署到 UNIX 操作系统服务器,请尝试以下操作:
  • 浏览 DDL 语句以获得特定用户标识和密码的依赖性,并且,如果必需的话,更正它们。
  • 浏览 DDL 语句以获得特定服务器名的依赖性,并且,如果必需的话,更正它们。
  • 参阅提供商的消息参考以获取有关特定 SQL 错误的原因和建议的操作。对于 IBM DB2®,您可以查看联机消息参考。
如果执行了 Windows 操作系统或诸如 AIX® 或 Linux 之类的操作系统上创建的 DDL 文件后接收到以下错误,那么此问题可能是由于文件格式不同所致:
SQL0104N  An unexpected token "CREATE TABLE AGENT  (COMM DOUBLE,  PERCENT  DOUBLE,  P" 
was found following " ".  Expected tokens may include:  " ".  
SQLSTATE=42601
要解决此问题,请执行以下操作:
  • [AIX][HP-UX][Solaris][Windows][z/OS]使用 vi 编辑器来编辑 DDL,移除每一行开头的 Ctl-M 字符。
  • [Linux]在 Linux 平台上,重新生成应用程序 EAR 文件的部署代码。
  • [IBM i]使用 EDTF 来编辑该文件。

ADMA0004E: 验证失败

如果尝试通过管理控制台或 wsadmin 命令提示符安装应用程序时,遇到以下错误:
AppDeploymentException:
[ADMA0014E: 验证失败。
ADMA0004E: 指定 EJB 模块的缺省数据源时任务中发生验证错误,没有为具有 URI filename.jar,META-INF/ejb-jar.xml 的模块 beannameBean Jar 指定 JNDI 名称。您没有为属于此模块的
每个 CMP bean 指定数据源。为每个 CMP bean 指定数据源或者为整个模块指定缺省数据源。]
一个可能的原因是,在 WebSphere Application Server V4.0 中,必须在每个 JAR 中为每个 CMP bean 定义数据源。在 V5.0 及更高发行版中,可为某个容器管理的持久性 (CMP) bean 指定数据源,也可为 JAR 文件中的所有 CMP bean 指定缺省数据源。因此,安装交互(如管理控制台中的安装向导)期间,数据源字段是可选的,但安装结束时执行的验证会检查以查看是否至少指 定了一个数据源。

要解决此问题,再次执行每一步安装过程,并指定缺省数据源或为每个 CMP 类型企业 Bean 指定一个数据源。

如果要使用 wsadmin 工具,那么使用 $AdminApp installInteractive filename 命令接收安装期间的数据源提示,或在响应文件中提供它们。

[AIX Solaris HP-UX Linux Windows][IBM i]指定数据源作为 $AdminApp install 命令的选项。

有关语法的详细信息,请参阅使用 wsadmin 脚本编制来安装企业应用程序

无法装入归档文件中的资源 WEB-INF/ibm-web-bnd.xmi

Web 应用程序 tmp.war 可以安装在 WebSphere Application Server V5.0 和 V5.1 上,但在 WebSphere Application Server V6.0 或更高版本服务器上安装时失败。应用程序安装失败的原因是 WEB-INF/ibm-web-bnd.xmi 文件包含底层的 WCCM 模块不再能够识别的 xmi 标记。

将显示下列错误消息:

IWAE0007E Could not load resource "WEB-INF/ibm-web-bnd.xmi" in archive "tmp.war"
[2/24/05 14:53:10:297 CST] 000000bc SystemErr     R
AppDeploymentException:
com.ibm.etools.j2ee.commonarchivecore.exception.ResourceLoadException:
IWAE0007E Could not load resource "WEB-INF/ibm-web-bnd.xmi" in archive "tmp.war"
[2/24/05 14:53:10:297 CST] 000000bc SystemErr     R
com.ibm.etools.j2ee.commonarchivecore.exception.ResourceLoadException:
IWAE0007E Could not load resource "WEB-INF/ibm-web-bnd.xmi" in archive "tmp.war"
!Stack_trace_of_nested_exce!
com.ibm.etools.j2ee.exception.WrappedRuntimeException: Exception occurred loading
WEB-INF/ibm-web-bnd.xmi
!Stack_trace_of_nested_exce!

要解决此问题,请从 ibm-web-bnd.xmi 文件中移除 xmi:type=EJBLocalRef 标记。移除此标记对应用程序没有任何影响,原因是该标记先前是用于与交叉文档引用类型匹配。现在,该应用程序可对于 WebSphere Application Server V5.1 及更高版本正常工作。

支持的配置 支持的配置: 对于 IBM 扩展文件和绑定文件,根据您使用的是 Java EE 5 之前的应用程序或模块还是 Java EE 5 或之后的应用程序或模块,.xmi 或 .xml 文件扩展名有所不同。IBM 扩展文件或绑定文件将命名为 ibm-*-ext.xmi 或 ibm-*-bnd.xmi,其中 * 是扩展文件或绑定文件的类型,例如,app、application、ejb-jar 或 web。存在下列条件:
  • 对于使用 V5 之前的 Java EE 版本的应用程序或模块,文件扩展名必须是 .xmi。
  • 对于使用 Java EE 5 或更高版本的应用程序或模块,文件扩展名必须是 .xml。如果应用程序或模块中包含 .xmi 文件,那么产品将忽略这些 .xmi 文件。

然而,Java EE 5 或更高版本的模块可以在包含 Java EE 5 之前的文件并使用 .xmi 文件扩展名的应用程序中存在。

ibm-webservices-ext.xmiibm-webservices-bnd.xmiibm-webservicesclient-bnd.xmiibm-webservicesclient-ext.xmiibm-portlet-ext.xmi 文件继续使用 .xmi 文件扩展名。

sptcfg

安装时发生“没有在 ObjectName anObject 中为模块 module_name 指定有效目标”

在集群环境中,如果错误地指定了要安装应用程序的目标单元、节点、服务器或集群,那么会发生此错误。例如,如果目标拼写错误,此错误会发生。

要解决此问题,请针对实际的 WebSphere Application Server 拓扑检查目标名,并用正确项重新输入。

addNode -includeapps 选项似乎不能将所有应用程序上载到 Deployment Manager

当目标节点上的某些或所有应用程序已上载到 Deployment Manager 时,会发生此错误。addNode 程序检测已安装了哪些应用程序并且不再次上载它 们。

使用管理控制台浏览 Deployment Manager 配置并查看是否已安装这些应用程序。

尝试在管理控制台中安装企业应用程序时显示了“超时!!!”错误

如果尝试安装未部署的企业应用程序,那么会发生此错误。

要解决此问题,请执行以下操作:
  • 使用组装工具打开 file_name.ear 文件,然后单击部署。此操作会创建具有名称如 Deployed_file_name.ear 的文件。
  • 在管理控制台中,安装已部署的 EAR 文件。

部署包含 EJB 模块的应用程序时接收到 NameNotFoundException 消息

如果指定在应用程序安装期间运行 EJB 部署工具,但安装失败并报告 NameNotFoundException 消息,那么确保输入 JAR 或 EAR 文件不包含源文件。如果输入 JAR 或 EAR 文件包含源文件,那么 EJB 部署工具在生成部署代码之前将运行重建过程。

此问题的变通方法是,在类路径中移除源文件或包括所有相关类和资源文件。否则,在服务器上重建应用程序期间,源文件或缺少对相关类和资源文件的访问权可能会导致这些问题。

[Windows]

在应用程序安装期间,调用 EJB 部署导致异常

如果指定在应用程序安装期间运行 EJB 部署工具,但安装失败且出现错误“命令行太长”,那么问题在于安装期间生成的部署命令超过 Windows 平台上命令行的字符限制。

要解决这个问题,您可缩短 EAR 文件名的长度、缩短 EAR 文件中 JAR 文件名的长度、减少为部署指定的类路径或其他选项,或更改 Windows 系统的 %TEMP% 位置以使它路径缩短。

安装针对 V5.x 或更早版本生成的 EJB JAR 文件时,发生编译错误并且 EJB 部署失败

安装旧应用程序时,如果该应用程序使用构建以在 WebSphere Application Server V5.x 或更早版本上运行的 EJB 模块,那么会发生编译错误并且 EJB 部署会失败。EJB JAR 文件包含生成的原有代码的 Java 源代码。旧的 Java 源代码针对 V5.x 或更早版本生成,但将其部署到 WebSphere Application Server V6.x 或更高版本的产品时,将使用 V6.0 或更高版本的运行时 JAR 文件对其进行编译。

要解决此问题,请从应用程序 EAR 文件中移除所有 .java 文件。移除 Java 源文件之后,您可以成功地将应用程序部署到服务器。

在上载文档时,addNode -includeapps 失败,并有 OutOfMemoryError 异常

当您安装有大型 EAR 文件的应用程序时若使用 addNode -includeapps,可能发生此错误。要解决此问题,请执行以下操作:
  • 如果使用 addNode 从服务器基本部件添加节点,那么修改 addNode 脚本以包含以下参数:
    -Xmxsize
  • 如果要从管理控制台添加节点,那么增加 Deployment Manager 的 Java 虚拟机设置中的 maximumHeapSize,然后重新启动 Deployment Manager。

    有关详细信息,请参阅addNode 命令Java 虚拟机设置

[Windows]例如,下面的 addNode.bat 文件在 Windows 平台上设置 512 MB 的最大堆大小:
"%JAVA_HOME%\bin\java" -Xmx512m %DEBUG% %WAS_TRACE% %CONSOLE_ENCODING% 
"%CLIENTSOAP%" "%CLIENTSAS%" "-classpath" "%WAS_CLASSPATH%" 
"-Dws.ext.dirs=%WAS_EXT_DIRS%" %USER_INSTALL_PROP% 
-Dwas.install.root=%WAS_HOME%" "com.ibm.ws.bootstrap.WSLauncher" 
"com.ibm.ws.management.tools.NodeFederationUtility" "%CONFIG_ROOT%" "%WAS_CELL%"
"%WAS_NODE%" %*

在 Deployment Manager 中发生 OutOfMemory 异常

如果在尝试安装具有大型 EAR 文件的应用程序时接收到 OutOfMemory 异常,那么请尝试增大 Deployment Manager 的最大堆大小。

检查您在管理控制台的“Java 虚拟机”页面上指定的选项。增大 Deployment Manager 的 Java 虚拟机设置中的 maximumHeapSize。然后,重新启动 Deployment Manager,并尝试再次安装此应用程序。

将应用程序安装在另一台机器上后,该应用程序不运行

如果应用程序使用应用程序级别资源,那么其应用程序级别节点信息必须正确,应用程序才能如所期望的那样运行。

将应用程序级别资源添加至应用程序并将该应用程序部署到机器上时,请确保应用程序级别节点信息正确。否则,在将该应用程序安装在另一台机器上时,它会安装到错误的位置,并且该应用程序不会如所期望的那样运行。

您可以使用组装工具来更新应用程序级别的节点信息。在 ibmconfig 下面,更新 deployment.xml 文件的 deploymentTargets 中的 nodeName。此外,还要确保 deployment.xml 文件的 deployedObject 中的 binariesURL 具有正确的路径。

应用程序更新期间,单个文件替换所有应用程序文件

如果在应用程序更新向导中选中了替换或添加单个文件选项,并且当前部署的应用程序由多个文件组成,请在指定从已安装的应用程序归档文件开始到要替换或添加的文件的路径中指定要替换或添加的文件的完整路径名。

完整路径名的结构通常为 directory_path/file_name,类似于以下内容:

PriceChangeSession.jar/priceChangeSession/priceChangeSessionBean.class

不要为指定从已安装的应用程序归档文件开始到要替换或添加的文件的路径指定不完整的路径名。例如,不要仅指定目录路径:

PriceChangeSession.jar/priceChangeSession

如果指定的路径名不完整,那么当前部署的应用程序所在目录中的所有文件可能会替换为在指定文件路径下面指定的单个新文件。


指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rtrb_installappprob
文件名:rtrb_installappprob.html