Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Exécuter en PowerShell (admin si nécessaire)
- # Objectif : corriger les DOCTYPE Hibernate dans les fichiers *.hbm.xml et hibernate.cfg.xml
- # afin d'éviter les accès réseau (403) et forcer l'utilisation des DTD embarquées par Hibernate.
- $root = "C:\Program Files (x86)\Sage\CRM\[___CRM_installname___]\tomcat\webapps\almeriacrmExchangeSyncEngine"
- # 1) Liste des patterns fautifs courants à corriger (http/https, avec/sans www, anciens hostnames)
- # On normalise tout vers les URLs reconnues par le résolveur Hibernate.
- $replacements = @{
- # ----- DTD Mapping -----
- # hibernate.org (sans www), http et https
- 'https?://hibernate\.org/hibernate-mapping-3\.0\.dtd' =
- 'http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd'
- # www.hibernate.org mais sans /dtd/ (mauvais sous-chemin)
- 'https?://www\.hibernate\.org/hibernate-mapping-3\.0\.dtd' =
- 'http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd'
- # Anciennes URLs sourceforge (http/https)
- 'https?://hibernate\.sourceforge\.net/hibernate-mapping-3\.0\.dtd' =
- 'http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd'
- # ----- DTD Configuration -----
- # hibernate.org (sans www), http et https
- 'https?://hibernate\.org/hibernate-configuration-3\.0\.dtd' =
- 'http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd'
- # www.hibernate.org mais sans /dtd/ (mauvais sous-chemin)
- 'https?://www\.hibernate\.org/hibernate-configuration-3\.0\.dtd' =
- 'http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd'
- # Anciennes URLs sourceforge (http/https)
- 'https?://hibernate\.sourceforge\.net/hibernate-configuration-3\.0\.dtd' =
- 'http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd'
- }
- # 2) Optionnel : si vous souhaitez aussi normaliser explicitement "https://www.hibernate.org/dtd/" vers "http://www.hibernate.org/dtd/"
- # (Hibernate résout de toute façon localement avec l'identifiant public, mais cela évite les divergences)
- $normalizeHttpsToHttp = $true
- if ($normalizeHttpsToHttp) {
- $replacements['https://www\.hibernate\.org/dtd/hibernate-mapping-3\.0\.dtd'] = 'http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd'
- $replacements['https://www\.hibernate\.org/dtd/hibernate-configuration-3\.0\.dtd'] = 'http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd'
- }
- # 3) Scanner, corriger et sauvegarder un .bak
- $targets = Get-ChildItem -Path $root -Recurse -Include *.hbm.xml, hibernate.cfg.xml -ErrorAction SilentlyContinue
- foreach ($file in $targets) {
- try {
- $content = Get-Content -LiteralPath $file.FullName -Raw -ErrorAction Stop
- $orig = $content
- foreach ($pattern in $replacements.Keys) {
- $replacement = $replacements[$pattern]
- $content = [regex]::Replace($content, $pattern, $replacement, 'IgnoreCase')
- }
- if ($content -ne $orig) {
- Copy-Item -LiteralPath $file.FullName "$($file.FullName).bak" -Force
- Set-Content -LiteralPath $file.FullName -Value $content -Encoding UTF8
- Write-Host "Corrigé : $($file.FullName) (backup créé : $($file.FullName).bak)"
- } else {
- Write-Host "OK (aucune correction nécessaire) : $($file.FullName)"
- }
- }
- catch {
- Write-Warning "Échec sur $($file.FullName) : $($_.Exception.Message)"
- }
- }
- Write-Host "`nTerminé. Pensez à :"
- Write-Host "1) Arrêter le service Tomcat du moteur de synchro"
- Write-Host "2) Vider le dossier work : ..\tomcat\work\Catalina\"
- Write-Host "3) Redémarrer Tomcat et vérifier catalina.log"
Advertisement
Add Comment
Please, Sign In to add comment