我正试图通过Ant Script在本地Websphere上安装ear文件,但我遇到了这个烦人的错误,安装失败了。
这是我的剧本。
<taskdef name="wsInstallApp" classname="com.ibm.websphere.ant.tasks.InstallApplication" />
<target name="installApplication">
<wsInstallApp ear="${ear.dir}" options="-appname ${name} -CtxRootForWebMod ${install.contextRootName} -BindJndiForEJBNonMessageBinding ${install.resourceJNDI}" failonerror="true" />
</target>
当我从另一个ant脚本文件调用目标时,我会发送这3个参数,并与其他任务(如更新应用程序或卸载应用程序)一起工作。我需要这3个参数来设置已安装应用程序的3个属性,所以这似乎就是问题所在。
这是报告的错误。
Buildfile: WasDeployApp.xml
installApplication:
callTask:
installApplication:
[wsInstallApp] Installing Application [C:WorkspaceDeploy..ResourcesPublishApplication.ear]...
[wsadmin] WASX7209I: Connected to process "server1" on node CDELO020-2Node01 using SOAP connector; The type of process is: UnManagedProcess
[wsadmin] WASX7017E: Exception received while running file "C:Usersdelo020AppDataLocalTempwsant711553899414193403jacl"; exception information: java.lang.ClassCastException: java.lang.ClassCastException: java.lang.String incompatible with java.util.List
BUILD FAILED
C:WorkspaceDeployWasDeployApp.xml:22: The following error occurred while executing this line:
C:WorkspaceDeployWasDeployApp.xml:12: The following error occurred while executing this line:
C:WorkspaceDeployWasDeploy.xml:48: Java returned: 105
Total time: 9 seconds
这是错误日志中引用的TEMP文件的内容。
$AdminApp install C:WorkspaceDeploy..ResourcesPublishApplication.ear { -appname ApplicationExample -CtxRootForWebMod CtxRootExample -BindJndiForEJBNonMessageBinding facade_App }
$AdminConfig save
我已经纠结了一段时间,但正如你所看到的,日志并不是很明确。
有人能帮我吗?
提前感谢。
原因
此问题的原因是拆分属性文件中的一个选项本应使用"options.multy."格式指定,但使用了单数"options."格式。结果是,该选项本应作为单个元素列表传递给wsadmin,但它却是作为字符串传递的。
你可以查看这篇文章和这篇文章,并按照说明更正你遇到的错误。您还可以进一步了解这篇文章,其中包含WebSphereApplicationServer的部署脚本。