Procédure migration 4.0 hors SIM

Bonjour,

Je souhaite migrer un projet 3.2 qui n’est pas sur le SIM.
Existe-t-il une procédure hors SIM comme pour les versions précédentes (récupération d’un setup 4.0 sur le git)?

1 Like

Le packaging legacy (“setup”) n’existe plus en 4.0 (et, pour mémoire, il était déjà largement deprecated en 3.2, le packaging moderne (“template d’instance”) dédié au SIM, aux images Docker et aux PaaS existant depuis la 3.0)

Pour migrer une instance 3.2 issue du setup 3.2 en 4.0 il faut donc commencer par réaligner cette instance sur le layout d’une instance 3.2 issue du template d’instance 3.2. En pratique cela consiste essentiellement à remettre le DBDoc au bon endroit.

Ensuite la migration 3.2 vers 4.0 se fera de manière standard et vous aurez une 4.0 maintenable (car si vous “bricolez” autrement votre 4.0 ne sera de toute façon pas upgradable autrement qu’en “bricolant” à nouveau ce qui va être un enfer vu la fréquence des mises à jour de la 4.0)

Mon projet en fait déjà basé sur un template 3.2.

J’ai téléchargé le template-4.0. J’ai cherché dans la doc mais je n’ai pas trouvé de procédure pour faire la migration.

Quelle est la procédure pour la mise à jour en 4.0 avec le template-4.0?

Bonjour,

La documentation se trouve içi
https://www.simplicite.io/resources/4.0/upgrading.md

J’ai déjà vu cette documentation mais la procédure ne concerne qu’une migration dans le SIM.

Mon appli n’est pas dans le SIM

C’est facile à transposer, vous allez avoir besoin de Apache Ant et du template d’instance 4.0 avec son build .xml

Je ne précise pas le detail des start/stop/revue des fichiers de conf que vous saurez faire manuellement, les étapes clefs basées sur Ant sont se transposent en:

  • ant upgrade-configuration-db-only
  • ant upgrade-war
  • ant upgrade-configuration-configuration-only

L’autre option est de démarrer votre instance 4.0 avec -Dauto.upgrade=true et laisser la plateforme s’autoupgrader

Ca ne dispense pas des opérations préalables sur votre version 3.2.

Attention: une migration peut rencontrer des problèmes inattendus, ne faites pas cette opération sans avoir toutes les sauvegardes qui vous permettent un retour arrière si besoin

Suite à la migration, nous avons du remettre les librairies iTexT sans quoi nous avions une erreur suite à l’authentification.

Je ne comprends pas votre pb, les libs iText (2.1.7) sont toujours dans la version 4.0:

> find template-4.0 -name itext\*.jar
template-4.0/app/WEB-INF/lib/itext-2.1.7.jar
template-4.0/app/WEB-INF/lib/itext-rtf-2.1.7.jar

Expliquez moi précisément ce que vous avez fait pas à pas car je suis inquiet.

1 / On git le template-4.0r
2 / On met à jour le build.properties et on rajoute la variable app.root manquante
3 / ant upgrade-configuration-db-only
4 / Arrêt de tomcat
5 / ant upgrade-war
6 / Démarrage tomcat
7 / Suppression de patches.properties
8 / ant upgrade-configuration-xml-only
9 / ant clearcache
10 / Authentification en erreur 500 (via le devtools de chrome on repère un java.lang.noclassdeffounderror: com/lowagie/text/element )
11 / Arrêt de tomcat
12 / On rajoute les librairies iText dans \WEB-INF\lib
13 / Démarrage tomcat
14 / Authentification ok

On a eu le même problème avec Robin.

Tomcat 8.5.34
Bdd Mysql
Système windows

Les libs iText sont dans le template 4.0 release

> find template-4.0r -name itext\*.jar
template-4.0r/app/WEB-INF/lib/itext-2.1.7.jar
template-4.0r/app/WEB-INF/lib/itext-rtf-2.1.7.jar

Donc elles sont forcément dans le WEB-INF/lib de votre instance après le ant upgrade-war:

> sudo su - <une instance en 4.0 release>
> find tomcat/webapps/ROOT -name itext\*.jar
tomcat/webapps/ROOT/WEB-INF/lib/itext-2.1.7.jar
tomcat/webapps/ROOT/WEB-INF/lib/itext-rtf-2.1.7.jar

Et pas de pb class not found sur cette instance (il y a bien une classe com.lowagie.text.Element dans le JAR - mais avec un E majuscule, pas un e minuscule comme dans ton post):

> unzip -l tomcat/webapps/ROOT/WEB-INF/lib/itext-2.1.7.jar | grep lement
(...)
     1811  07-07-2009 10:21   com/lowagie/text/Element.class
(...)

Bref je ne vois absolument aucune explication à ton pb (à moins que ça ne soit un import incorrect dans votre code car dans le code Simplicité il n’y a pas d’import d’une classe com.lowagie.text.element avec un e minuscule)

Peux tu me copier-coller le contenu exact de votre WEB-INF/lib ?

Voila l’erreur que l’on a eu exactement, tu peux reproduire en supprimant les librairies iText de \WEB-INF\lib

<!-- HTTP status: 500
javax.servlet.ServletException: L’'exécution de la servlet a lancé une exception
_ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:238)_
_ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)_
_ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)_
_ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)_
_ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)_
_ at com.simplicite.webapp.filters.AuthMethodFilter.doFilter(AuthMethodFilter.java:112)_
_ at com.simplicite.webapp.filters.AbstractFilter.doFilter(AbstractFilter.java:37)_
_ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)_
_ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)_
_ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)_
_ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)_
_ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610)_
_ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)_
_ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)_
_ at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)_
_ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)_
_ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)_
_ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)_
_ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)_
_ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)_
_ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)_
_ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)_
_ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)_
_ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)_
_ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)_
_ at java.lang.Thread.run(Thread.java:748)_
Caused by: java.lang.NoClassDefFoundError: com/lowagie/text/Element
_ at com.simplicite.webapp.tools.ServletTool.getPage(ServletTool.java:1857)_
_ at com.simplicite.webapp.tools.ServletTool.getPage(ServletTool.java:1792)_
_ at com.simplicite.webapp.servlets.ui.MainServlet.service(MainServlet.java:89)_
_ at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)_
_ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)_
_ … 25 more_
Caused by: java.lang.ClassNotFoundException: com.lowagie.text.Element
_ at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1309)_
_ at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1137)_
_ … 30 more_

J’ai écrasé mon \WEB-INF\lib avec celui du template, si je te fais une copie, ça sera iso.
Par contre on va roder la procédure, donc si on reproduit à nouveau, je te copie tout cela ici.

Ben oui si on supprime les librairies iText (ou d’autres libs requises) forcément on a des class not found exception…

Mon point c’est qu’elles devraient être dans WEB-INF/lib après le ant upgrade-war, si elle n’y sont pas il faut comprendre pourquoi.

Donc merci de supprimer le répertoire WEB6INF/lib, de refaire le ant upgrade-war et donner la liste complete de ce qui est dans WEB-INF/lib après cette commande.

Pas la peine de faire du bricolage à coup de copies manuelles ou autre, il faut que ça marche de manière nominale!

Je fais ça :

C:\Users\Seb\Work\Simplicite\template-4.0r>ant upgrade-war
Buildfile: C:\Users\Seb\Work\Simplicite\template-4.0r\build.xml

upgrade-war:
[sync] Copying 3398 files to C:\Users\Seb\Work\Simplicite\apache-tomca
t-8.5.34\webapps\pepsaem
[sync] Removed 1 dangling directory from C:\Users\Seb\Work\Simplicite
apache-tomcat-8.5.34\webapps\pepsaem
[sync] Removed 4 dangling files from C:\Users\Seb\Work\Simplicite\apac
he-tomcat-8.5.34\webapps\pepsaem

BUILD SUCCESSFUL
Total time: 25 seconds

C:\Users\Seb\Work\Simplicite\template-4.0r>

19/10/2018  16:48            62 983 activation-1.1.jar
19/10/2018  16:48             3 482 animal-sniffer-annotations-1.14.jar
19/10/2018  16:48         2 216 652 ant-1.10.5.jar
19/10/2018  16:48            18 827 ant-launcher-1.10.5.jar
19/10/2018  16:48           445 288 antlr-2.7.7.jar
19/10/2018  16:48           167 761 antlr-runtime-3.5.2.jar
19/10/2018  16:48             4 467 aopalliance-1.0.jar
19/10/2018  16:48            16 626 autolink-0.8.0.jar
19/10/2018  16:48            33 218 avalon-framework-api-4.3.1.jar
19/10/2018  16:48            61 021 avalon-framework-impl-4.3.1.jar
19/10/2018  16:48            30 543 aws-s3-2.1.1.jar
19/10/2018  16:48           135 248 azureblob-2.1.1.jar
19/10/2018  16:48           274 404 barcode4j-2.1.jar
19/10/2018  16:48            17 008 base64-2.3.8.jar
19/10/2018  16:48           108 233 bcmail-jdk15on-1.60.jar
19/10/2018  16:48           796 532 bcpkix-jdk15on-1.60.jar
19/10/2018  16:48         4 189 874 bcprov-jdk15on-1.60.jar
19/10/2018  16:48           497 865 c3p0-0.9.5.2.jar
19/10/2018  16:48           193 322 checker-qual-2.5.2.jar
19/10/2018  16:48           134 220 commonmark-0.11.0.jar
19/10/2018  16:48             7 355 commonmark-ext-autolink-0.11.0.jar
19/10/2018  16:48            10 377 commonmark-ext-gfm-strikethrough-0.11.0.jar
19/10/2018  16:48            19 128 commonmark-ext-gfm-tables-0.11.0.jar
19/10/2018  16:48            11 510 commonmark-ext-heading-anchor-0.11.0.jar
19/10/2018  16:48             7 368 commonmark-ext-ins-0.11.0.jar
19/10/2018  16:48           246 174 commons-beanutils-1.9.3.jar
19/10/2018  16:48            53 820 commons-cli-1.4.jar
19/10/2018  16:48           335 042 commons-codec-1.11.jar
19/10/2018  16:48           752 798 commons-collections4-4.2.jar
19/10/2018  16:48           591 748 commons-compress-1.18.jar
19/10/2018  16:48            42 400 commons-csv-1.6.jar
19/10/2018  16:48            54 495 commons-email-1.5.jar
19/10/2018  16:48            54 423 commons-exec-1.3.jar
19/10/2018  16:48            70 604 commons-fileupload-1.3.3.jar
19/10/2018  16:48           305 001 commons-httpclient-3.1.jar
19/10/2018  16:48           214 788 commons-io-2.6.jar
19/10/2018  16:48           284 220 commons-lang-2.6.jar
19/10/2018  16:48           501 879 commons-lang3-3.8.1.jar
19/10/2018  16:48            61 829 commons-logging-1.2.jar
19/10/2018  16:48           307 410 commons-net-3.6.jar
19/10/2018  16:48           442 034 commons-vfs2-2.2.jar
19/10/2018  16:48           538 677 core-3.0.1.jar
19/10/2018  16:48            98 365 curvesapi-1.04.jar
19/10/2018  16:48            34 130 diffutils-1.3.0.jar
19/10/2018  16:48         1 378 673 docusign-esign-java-2.7.0.jar
19/10/2018  16:48         5 443 920 docx4j-6.0.1.jar
19/10/2018  16:48           115 966 docx4j-ImportXHTML-6.0.1.jar
19/10/2018  16:48            13 704 error_prone_annotations-2.1.3.jar
19/10/2018  16:48            36 676 fast-and-simple-minify-1.0.jar
19/10/2018  16:48           204 013 google-api-client-1.25.0.jar
19/10/2018  16:48           114 348 google-api-services-calendar-v3-rev349-1.25.0.jar
19/10/2018  16:48           118 811 google-api-services-drive-v3-rev133-1.25.0.jar
19/10/2018  16:48           162 705 google-api-services-gmail-v1-rev96-1.25.0.jar
19/10/2018  16:48            75 945 google-api-services-plus-v1-rev557-1.25.0.jar
19/10/2018  16:48           218 897 google-api-services-sheets-v4-rev546-1.25.0.jar
19/10/2018  16:48            26 082 google-api-services-translate-v2-rev51-1.25.0.jar
19/10/2018  16:48           319 747 google-api-services-youtube-v3-rev205-1.25.0.jar
19/10/2018  16:48           162 636 google-cloud-storage-2.1.1.jar
19/10/2018  16:48           390 709 google-http-client-1.25.0.jar
19/10/2018  16:48             6 735 google-http-client-jackson2-1.25.0.jar
19/10/2018  16:48            63 084 google-oauth-client-1.25.0.jar
19/10/2018  16:48            26 258 googlecloud-2.1.1.jar
19/10/2018  16:48           241 622 gson-2.8.5.jar
19/10/2018  16:48         2 740 721 guava-26.0-jre.jar
19/10/2018  16:48           710 492 guice-3.0.jar
19/10/2018  16:48            36 998 guice-assistedinject-3.0.jar
19/10/2018  16:48            34 471 guice-multibindings-3.0.jar
19/10/2018  16:48            45 024 hamcrest-core-1.3.jar
19/10/2018  16:48           143 577 HikariCP-3.2.0.jar
19/10/2018  16:48         1 552 127 hsqldb-2.4.1.jar
19/10/2018  16:48           767 140 httpclient-4.5.6.jar
19/10/2018  16:48           326 356 httpcore-4.4.10.jar
19/10/2018  16:48            41 794 httpmime-4.5.6.jar
19/10/2018  16:48        12 370 975 icu4j-62.1.jar
19/10/2018  16:48             8 782 j2objc-annotations-1.1.jar
19/10/2018  16:48            66 981 jackson-annotations-2.9.7.jar
19/10/2018  16:48           324 036 jackson-core-2.9.7.jar
19/10/2018  16:48         1 350 857 jackson-databind-2.9.7.jar
19/10/2018  16:48            92 640 jackson-dataformat-csv-2.9.7.jar
19/10/2018  16:48            98 678 jackson-dataformat-xml-2.9.7.jar
19/10/2018  16:48            41 289 jackson-dataformat-yaml-2.9.7.jar
19/10/2018  16:48            77 950 jackson-datatype-guava-2.9.7.jar
19/10/2018  16:48            71 647 jackson-datatype-joda-2.9.7.jar
19/10/2018  16:48            32 611 jackson-jaxrs-base-2.9.7.jar
19/10/2018  16:48            15 900 jackson-jaxrs-json-provider-2.9.7.jar
19/10/2018  16:48            13 227 jackson-jaxrs-xml-provider-2.9.7.jar
19/10/2018  16:48            32 829 jackson-module-jaxb-annotations-2.9.7.jar
19/10/2018  16:48            50 008 java-jwt-3.2.0.jar
19/10/2018  16:48            11 821 java-saml-2.3.0.jar
19/10/2018  16:48           109 842 java-saml-core-2.3.0.jar
19/10/2018  16:48            17 316 java-xmlbuilder-1.1.jar
19/10/2018  16:48           165 868 JavaEWAH-1.1.6.jar
19/10/2018  16:48            39 094 javase-3.0.1.jar
19/10/2018  16:48             2 497 javax.inject-1.jar
19/10/2018  16:48           659 031 javax.mail-1.6.2.jar
19/10/2018  16:48           220 230 jawk-1.02.jar
19/10/2018  16:48           280 402 jaxb-svg11-1.0.2.jar
19/10/2018  16:48            16 515 jcl-over-slf4j-1.7.25.jar
19/10/2018  16:48           192 352 jclouds-blobstore-2.1.1.jar
19/10/2018  16:48           755 372 jclouds-core-2.1.1.jar
19/10/2018  16:48            11 489 jclouds-log4j-2.1.1.jar
19/10/2018  16:48            11 521 jclouds-slf4j-2.1.1.jar
19/10/2018  16:48           134 077 jersey-client-1.19.1.jar
19/10/2018  16:48           436 795 jersey-core-1.19.1.jar
19/10/2018  16:48            53 290 jersey-multipart-1.19.1.jar
19/10/2018  16:48         1 559 088 jfreechart-1.5.0.jar
19/10/2018  16:48           114 915 jlessc-1.6.jar
19/10/2018  16:48            82 229 jmustache-1.14.jar
19/10/2018  16:48           640 835 joda-time-2.10.jar
19/10/2018  16:48           280 515 jsch-0.1.54.jar
19/10/2018  16:48            64 597 json.jar
19/10/2018  16:48           395 748 jsoup-1.11.3.jar
19/10/2018  16:48             5 848 jsr250-api-1.0.jar
19/10/2018  16:48            19 936 jsr305-3.0.2.jar
19/10/2018  16:48            46 367 jsr311-api-1.1.1.jar
19/10/2018  16:48           249 924 jtidy-r938.jar
19/10/2018  16:48             4 596 jul-to-slf4j-1.7.25.jar
19/10/2018  16:48           314 932 junit-4.12.jar
19/10/2018  16:48            69 578 jzlib-1.1.1.jar
19/10/2018  16:48           336 550 libphonenumber-8.9.15.jar
19/10/2018  16:48           489 883 log4j-1.2.17.jar
19/10/2018  16:48            20 676 lorem-2.1.jar
19/10/2018  16:48         3 056 210 lucene-core-7.5.0.jar
19/10/2018  16:48            96 506 mbassador-1.2.4.2.jar
19/10/2018  16:48           606 472 mchange-commons-java-0.2.11.jar
19/10/2018  16:48             8 873 migbase64-2.2.jar
19/10/2018  16:48            62 135 mimepull-1.9.3.jar
19/10/2018  16:48            64 222 oauth-2.1.1.jar
19/10/2018  16:48           301 498 openstack-keystone-2.1.1.jar
19/10/2018  16:48           140 890 openstack-swift-2.1.1.jar
19/10/2018  16:48            79 229 org.apache.oltu.oauth2.client-1.0.2.jar
19/10/2018  16:48            53 372 org.apache.oltu.oauth2.common-1.0.2.jar
19/10/2018  16:48         2 676 377 org.eclipse.jgit-5.1.1.201809181055-r.jar
19/10/2018  16:48            95 673 org.eclipse.jgit.http.server-5.1.1.201809181055-r.jar
19/10/2018  16:48         2 701 171 poi-3.17.jar
19/10/2018  16:48         1 479 023 poi-ooxml-3.17.jar
19/10/2018  16:48         5 924 600 poi-ooxml-schemas-3.17.jar
19/10/2018  16:48         1 390 360 poi-scratchpad-3.17.jar
19/10/2018  16:48             7 194 qrgen-1.4.jar
19/10/2018  16:48           690 992 quartz-2.3.0.jar
19/10/2018  16:48         1 252 227 rhino-1.7.10.jar
19/10/2018  16:48            30 429 rhino-script-engine-1.1.1.jar
19/10/2018  16:48           225 154 s3-2.1.1.jar
19/10/2018  16:48           276 420 serializer-2.7.2.jar
19/10/2018  16:48            41 203 slf4j-api-1.7.25.jar
19/10/2018  16:48            12 244 slf4j-log4j12-1.7.25.jar
19/10/2018  16:48           301 298 snakeyaml-1.23.jar
19/10/2018  16:48            23 346 stax-api-1.0-2.jar
19/10/2018  16:48           161 867 stax2-api-3.1.4.jar
19/10/2018  16:48           148 627 stringtemplate-3.2.1.jar
19/10/2018  16:48           423 567 stripe-java-7.0.0.jar
19/10/2018  16:48            71 101 sts-2.1.1.jar
19/10/2018  16:48            16 053 swagger-annotations-1.5.8.jar
19/10/2018  16:48           220 796 threeten-extra-1.4.jar
19/10/2018  16:48            86 772 wmf2svg-0.9.8.jar
19/10/2018  16:48           512 742 woodstox-core-5.0.3.jar
19/10/2018  16:48           486 013 woodstox-core-asl-4.4.1.jar
19/10/2018  16:48         3 154 938 xalan-2.7.2.jar
19/10/2018  16:48         1 023 384 xhtmlrenderer-3.0.0.jar
19/10/2018  16:48           194 354 xml-apis-1.3.04.jar
19/10/2018  16:48         2 730 866 xmlbeans-2.6.0.jar
19/10/2018  16:48           671 727 xmlgraphics-commons-2.3.jar
19/10/2018  16:48         1 131 680 xmlsec-2.0.7.jar
             163 fichier(s)       85 066 124 octets
               2 Rép(s)   5 199 450 112 octets libres

Il y a 163 libs au lieu des 165 du template

Franchement je ne vois aucune raison pour que ces 2 là (itext-2.1.7.jar et itext-rtf-2.1.7.jar) qui sont à priori celles qui manquent ne soient pas là, pour mémoire le ant upgrade-war est bête et méchant il synchronise tout à part les fichiers de conf et les répertoires qui contiennent les données:

<target name="upgrade-war" description="Upgrade deployed war">
		<property name="app.root" value="${webapp.dir}"/>
		<sync todir="${app.root}" overwrite="true">
			<fileset dir="app">
				<exclude name="META-INF/context.xml"/>
				<exclude name="WEB-INF/web.xml"/>
				<exclude name="WEB-INF/db/**"/>
				<exclude name="WEB-INF/dbdoc/**"/>
				<exclude name="WEB-INF/classes/log4j.xml"/>
				<exclude name="WEB-INF/patches/V${platform.version}/patches.properties"/>
			</fileset>
			<preserveintarget>
				<include name="META-INF/context.xml"/>
				<include name="WEB-INF/web.xml"/>
				<include name="WEB-INF/db/**"/>
				<include name="WEB-INF/dbdoc/**"/>
				<include name="WEB-INF/classes/log4j.xml"/>
				<include name="WEB-INF/patches/V${platform.version}/patches.properties"/>
				<include name="local/**"/>
			</preserveintarget>
		</sync>
		<touch file="${app.root}/WEB-INF/web.xml"/>
	</target>

Je vous laisse donc investiguer…

Pour info , j’ai refais la migration ce jour et cela n’a pas été reproduit…

OK, peut être un effet de bord Windows (fichiers lockés par le système etc.) on va faire quand même un focus sur la mig 3.2 => 4.0