2015-05-05 5 views
0

Контекст: Мы используем MFP v6.3 на Tomcat (v7.0.57), работающий в системе Linux. Мы хотели бы использовать задачи MFP ANT для автоматизации развертывания артефактов MFP для наших серверов разработки и промежуточного уровня. В частности, мы хотим автоматизировать развертывание WAR-файла для приложений MFP.Установка WAR-файла с задачей configureApplicationServer ANT, не работающей с Tomcat?

Перед установкой WAR-файла мы используем задачу unconfigureApplicationServer ANT для удаления любых предыдущих установок, которые могут существовать на сервере Tomcat файла WAR. Затем мы используем задачу configureDatabase ANT для создания двух требуемых баз данных. Наконец, мы используем задачу configureApplicationServer ANT для установки/развертывания WAR-файла.

Проблема: Мы можем выполнить все вышеперечисленные задачи ANT (т.е. unconfigureApplicationServer, configureDatabase, configureApplicationServer) без каких-либо ошибок. Мы также можем увидеть файл WAR в файловой системе в папке webapps Tomcat. Однако после этого при попытке развернуть любые адаптеры или файлы wlapp возникает ошибка, указывающая, что необходимый файл WAR не существует. Мы также перезапустили сервер Tomcat, но это не имело значения. Доступ к консоли MFP не отображает запись для приложения MFP. Кроме того, если мы запустим инструмент configurationTool.sh, мы также не увидим запись для среды выполнения.

Чтобы проверить, нет ли проблем с файлом WAR, мы использовали инструмент configurationTool.sh для его развертывания. Использование инструмента configurationTool.sh для развертывания WAR-файла работает очень хорошо (хотя перезагрузка Tomcat была необходима ...).

После ознакомления с документацией MFP в KnowledgeCenter мы поняли, что для автоматизации развертывания (удаления и установки) файлов MFP WAR на сервере MFP (tomcat) мы можем использовать задачи ANT, просто передавая им правильные параметры. Мы также ожидаем, что перезагрузка сервера (tomcat) не требуется, когда WAR-файл установлен или обновлен.

Любые идеи о том, что может быть неправильным? Благодарю.

Код: Мы используем 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 администрация была развернута с ' environmentID '(по умолчанию используется средство настройки сервера и значение по умолчанию), и вы не используете его в параметрах вашего муравья.

См шаг 1 из https://www-01.ibm.com/support/knowledgecenter/SSHS8R_7.0.0/com.ibm.worklight.deploy.doc/devref/t_ant_tasks_configure_appserver.html