上下文 我们在运行Linux系统的Tomcat(v7.0.57)上使用MFP v6.3。我们希望使用MFP ANT任务自动将MFP工件部署到我们的开发和暂存MFP服务器。具体来说,我们希望为MFP应用程序自动部署WAR文件。
在安装WAR文件之前,我们使用unconfigureApplicationServer ANT任务删除WAR文件的Tomcat服务器上可能存在的任何先前安装。然后我们使用configureDatabase ANT任务来创建两个必需的数据库。最后,我们使用configureApplicationServer ANT任务来安装/部署WAR文件。
问题: 我们可以执行所有上述ANT任务(即unconfigureApplicationServer,configureDatabase,configureApplicationServer)而不会出现任何错误。我们还可以在Tomcat webapps文件夹下的文件系统上看到WAR文件。但是,在此之后,尝试部署任何适配器或wlapp 文件抛出错误,指出必需的WAR文件不存在。我们还重新启动了Tomcat服务器,但这没有任何区别。访问MFP控制台不会显示MFP应用程序的条目。此外,如果我们启动configurationTool.sh工具,我们也看不到运行时的条目。
要验证WAR文件是否存在问题,我们使用configurationTool.sh工具进行部署。使用configurationTool.sh工具部署WAR文件可以正常工作(虽然需要重启Tomcat ......)。
在阅读KnowledgeCenter上的MFP文档后,我们了解到我们可以使用ANT任务通过简单地将正确的参数传递给MFP服务器(tomcat)来自动部署(卸载和安装)MFP WAR文件。我们还希望每当安装或更新WAR文件时都不需要重启服务器(tomcat)。
关于什么可能出错的任何想法?感谢。
代码: 我们使用Gradle来调用不同的ANT任务:
task uninstallMFPArtifacts << {
ant.unconfigureApplicationServer(contextRoot: contextRoot) {
"project"(warfile: warFile)
"applicationserver"() {
"tomcat"(installdir: installDir)
}
"database"(kind: "Worklight") {
"mysql"(database: dbPrefix + '_MFP',
server: "localhost",
user: dbUser,
password: dbUser)
"driverclasspath"() {
"pathelement"(location : mySQLJarPath)
}
}
"database"(kind: "WorklightReports") {
"mysql"(database: dbPrefix + '_MFP_RPT',
server: "localhost",
user: dbUser,
password: dbUser)
"driverclasspath"() {
"pathelement"(location : mySQLJarPath)
}
}
}
println "Uninstalled: $appShortName"
}
task setupMFPDBs << {
// Create databases
ant.configureDatabase(kind: "Worklight") {
"mysql"(database: dbPrefix + '_MFP',
server: "localhost",
user: dbUser,
password: dbUser) {
"dba"(user: dbaUser,
password: dbaPassword)
"client"(hostname: 'localhost')
"client"(hostname: '127.0.0.1')
}
"driverclasspath"() {
"pathelement"(location : mySQLJarPath)
}
}
println "Created $dbPrefix" + '_MFP database.'
ant.configureDatabase(kind: "WorklightReports") {
"mysql"(database: dbPrefix + '_MFP_RPT',
server: "localhost",
user: dbUser,
password: dbUser) {
"dba"(user: dbaUser,
password: dbaPassword)
"client"(hostname: 'localhost')
"client"(hostname: '127.0.0.1')
}
"driverclasspath"() {
"pathelement"(location : mySQLJarPath)
}
}
println "Created $dbPrefix" + '_MFP_RPT database.'
}
task deployMFPArtifacts << {
// Install WAR file
ant.configureApplicationServer(contextRoot: contextRoot) {
"project"(warfile: warFile)
"applicationserver"() {
"tomcat"(installdir: installDir)
}
"database"(kind: "Worklight") {
"mysql"(database: dbPrefix + '_MFP',
server: "localhost",
user: dbUser,
password: dbUser)
"driverclasspath"() {
"pathelement"(location : mySQLJarPath)
}
}
"database"(kind: "WorklightReports") {
"mysql"(database: dbPrefix + '_MFP_RPT',
server: "localhost",
user: dbUser,
password: dbUser)
"driverclasspath"() {
"pathelement"(location : mySQLJarPath)
}
}
}
println "Installed $warFile file."
}
答案 0 :(得分:0)
这是一个随机的猜测,但是一个非常可能的错误可能是MobileFirst Administration已经部署了'environmentID'(默认情况下服务器配置工具使用和environmentID),并且你不在你的蚂蚁中使用它参数。
的第1步