GwResourceDeployer - Eseguibile

Si tratta di un eseguibile a riga di comando, che prende in ingresso dei parametri

Questa guida è da intendersi come passo successivo a alla procedura di setting-up delle risorse da dispiegare, trattata qui.

  • procurarsi la folder gw_package, contenente le risorse da dispiegare, e posizionarla al path desiderato. Esempio:
    C:\gw_package
  • scaricare gwresourcesdeployer-1.0.0-bin.zip e scompattarlo al path desiderato. Ad esempio in:
    C:\gwResourcesDeployer-1.0.0-bin
  • aprire una console con (in Windows: run ⇒ cmd)
  • posizionarsi al path dell'eseguibile. Esempio:
    cd C:\gwResourcesDeployer-1.0.0-bin
  • eseguire il gwdeploy.bat con, in ordine, i parametri descritti. Template:
    gwdeploy.bat [gw_package folder] [spring active profiles]

    . Ogni parametro va separato dal precedente con uno spazio bianco. Dettaglio dei parametri, in ordine:

    • gw_package folder: path alla folder gw_package. Esempio:
      C:\gw_package

      Se il path contiene spazi bianchi, racchiudere tutto fra doppi apici. Esempio:

      "C:\path to\gw_package"
    • spring active profiles: gli Spring active profiles relativi database. Valori ammessi ['oracle','postgres','sqlserver']. Esempio:
      postgres

      Se utilizzato, aggiungere anche il profile 'workflow', separato da virgola ','. Esempio:

      "postgres,workflow"

Ecco alcuni esempi di sequenze di comandi da eseguire da riga di comando, in base alle situazioni

Esempio 1, assunto che:

  • C:\gwResourcesDeployer sia il path dell'eseguibile
  • C:\gw_package sia il path delle risorse
  • database postgres, senza workflow
cd C:\gwResourcesDeployer-1.0.0-bin
gwdeploy C:\gw_package postgres

Esempio 2, assunto che:

  • C:\gwResourcesDeployer sia il path dell'eseguibile
  • C:\path to\gw_package sia il path delle risorse
  • database oracle, con workflow
cd C:\gwResourcesDeployer-1.0.0-bin
gwdeploy "C:\path to\gw_package" "oracle,workflow"

Per questi sistemi bisogna utilizzare un gwdeploy.bat specifico disponibile dentro l'archivio gwdeploy.zip . Scompattare e sostituire il gwdeploy.bat nella folder dell'eseguibile.

Ci sono meccanismi noti, che consigliano fortemente di far girare l'eseguibile dalla stessa macchina di installazione dell'applicativo:

  • l'eseguibile fallisce se eseguito da macchine che non hanno l'opportuna configurazione di sistema (.dll mapguide in classPath e variabile di sistema impostata). Tipicamente, nelle macchine predisposte dai sistemisti per il rilascio, dove è previsto MapGuide, tali configurazioni iniziali sono sempre già state fatte al momento del deploy delle risorse. Si potrebbe però far girare l'eseguibile dalla propria macchina la folder gw_package disponibile come percorso di rete. In questo caso, in mancanza della configurazione, può essere generato l'errore in fase di dispiegamento:
    ------------------------------------------------------------------------------------------------
    24-11-2021 18:09:35,483 [main] GEOWEB INFO
     
    GwDeployer - deployMapguideResources()
    Adjusting path with file name..
    adjusted path: I:\projects\CDE35\gw_package\mapguide\webconfig.ini
    Configured path refers to an existing file
    Initializing MapGuide with the file: I:\projects\CDE35\gw_package\mapguide\webconfig.ini
    ------------------------------------------------------------------------------------------------
     
    2021-11-24 18:09:35.612 ERROR 9556 --- [           main] o.s.boot.SpringApplication               : Application run failed
     
    java.lang.UnsatisfiedLinkError: no MapGuideJavaApi in java.library.path
            at java.lang.ClassLoader.loadLibrary(Unknown Source) ~[na:1.8.0_281]
            at java.lang.Runtime.loadLibrary0(Unknown Source) ~[na:1.8.0_281]
            at java.lang.System.loadLibrary(Unknown Source) ~[na:1.8.0_281]
            at org.osgeo.mapguide.MapGuideJavaApiJNI.<clinit>(MapGuideJavaApiJNI.java:2957) ~[mapguide-3.1.1.9378.jar:na]
            at org.osgeo.mapguide.MapGuideJavaApi.MgInitializeWebTier(MapGuideJavaApi.java:14) ~[mapguide-3.1.1.9378.jar:na]
            at com.geowebframework.gwResourcesDeployer.service.MapguideDeployerService.deploy(MapguideDeployerService.java:260) ~[gwResourcesDeployer-1.0.0.jar:1.0.0]
            at com.geowebframework.gwResourcesDeployer.GwDeployer.deployMapguideResources(GwDeployer.java:277) [gwResourcesDeployer-1.0.0.jar:1.0.0]
            at com.geowebframework.gwResourcesDeployer.GwDeployer.run(GwDeployer.java:138) [gwResourcesDeployer-1.0.0.jar:1.0.0]
            at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:819) [spring-boot-2.4.5.jar:2.4.5]
            at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:803) [spring-boot-2.4.5.jar:2.4.5]
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:346) [spring-boot-2.4.5.jar:2.4.5]
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340) [spring-boot-2.4.5.jar:2.4.5]
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329) [spring-boot-2.4.5.jar:2.4.5]
            at com.geowebframework.gwResourcesDeployer.GwDeployer.main(GwDeployer.java:94) [gwResourcesDeployer-1.0.0.jar:1.0.0]
  • il webconfig.ini nella folder gw_package deve essere correttamente configurato in base alla macchina da cui si lancia:
    • property IpAddress contenente l'indirizzo corretto (127.0.0.1, se l'eseguibile è nella stessa macchina dell'applicativo, o indirizzo ip raggiungibile se l'eseguibile è nella macchina locale dell'utente, es: 192.168.0.220)
    • tutte le property path di installazione correttamente puntati
      MentorDictionaryPath               =C:\Program Files\OSGeo\MapGuide\CS-Map\Dictionaries\ 
      ResourcesPath                      =C:\Program Files\OSGeo\MapGuide\Web\www\mapagent\Resources
      ...
      TempPath                           =C:\Program Files\OSGeo\MapGuide\Web\Temp\
       
      ...
       
      TemplateRootFolder                 =C:\Program Files\OSGeo\MapGuide\Web\www\fusion\templates\mapguide 
      WidgetInfoFolder                   =C:\Program Files\OSGeo\MapGuide\Web\www\fusion\widgets\widgetinfo 
      ContainerInfoFolder                =C:\Program Files\OSGeo\MapGuide\Web\www\fusion\containerinfo

      e non, come sono tipicamente nelle macchine dei developer

      MentorDictionaryPath               =C:\mapguide\mapguide-3.1\CS-Map\Dictionaries\ 
      ResourcesPath                      =C:\mapguide\mapguide-3.1\Web\www\mapagent\Resources
      ...
      TempPath                           =C:\mapguide\mapguide-3.1\Web\Temp\
       
      ...
       
      TemplateRootFolder                 =C:\mapguide\mapguide-3.1\Web\www\fusion\templates\mapguide 
      WidgetInfoFolder                   =C:\mapguide\mapguide-3.1\Web\www\fusion\widgets\widgetinfo 
      ContainerInfoFolder                =C:\mapguide\mapguide-3.1\Web\www\fusion\containerinfo 

      Tipicamente, se si fa girare l'eseguibile dalla macchina dell'applicativo, si può copiare nella folder gw_package lo stesso webcongi.ini già configurato per l'applicativo mentre, nel caso opposto, il webconfig.ini potrebbe dover essere modificato ad ogni cambio della macchina dal quale si troverebbe a girare, essendo potenzialmente diversamente configurate

  • gwusermanual/gw_resources_deployer_executable_1_0_0.txt
  • Ultima modifica: 2021/12/02 09:59
  • da giorgio.scali