Voici une liste des exceptions fréquemment rencontrés lors de l'installation de l'application eCandidat.
Elles sont souvent dû à une erreur de configuration.
| Sommaire |
|---|
VersionException: The database is too old
...
(x.x.x),
...
please
...
run
...
'ant
...
upgrade'
...
Vous
...
venez
...
d'installer
...
la
...
nouvelle
...
version
...
de
...
eCandidat
...
mais
...
vous
...
n'avez
...
pas
...
exécuté
...
la
...
target
...
ant
...
upgrade.
...
Une
...
fois
...
celle-ci
...
exécutée,
...
vérifiez
...
que
...
la
...
table
...
B_VERS_MANA
...
si
...
la
...
valeur
...
est
...
à
...
jour.
...
ObjectNotFoundException:
...
No
...
LDAP
...
entry
...
found
...
for
...
entity
...
[*********
...
]
...
Lors
...
de
...
l'exécution
...
de
...
la
...
target
...
init-data,
...
il
...
est
...
possible
...
d'avoir
...
cette
...
exception
...
si
...
la
...
propriété
...
init.firstAdministratorId
...
soit
...
mal
...
initialisé.
...
Il
...
faut
...
s'assurer
...
que
...
la
...
valeur
...
saisie
...
corresponde
...
bien
...
à
...
l'id
...
au
...
sens
...
LDAP.
...
En
...
effet,
...
l'init-data
...
va
...
interroger
...
LDAP
...
pour
...
récupérer
...
la
...
fiche
...
sur
...
l'id
...
passé
...
et
...
ainsi
...
initialiser
...
le
...
premier
...
compte
...
administrateur
...
dans
...
l'application.
...
ObjectNotFoundException avec un code postal inexistant
L'exception
...
envoyée
...
par
...
l'application
...
contient
...
la
...
ligne
...
suivante
...
:
| Bloc de code |
|---|
} caused by: org.esupportail.commons.exceptions.ObjectNotFoundException: Ce code postal ( 97610 ) n'existe pas dans la base de données APOGEE {code} |
Cette
...
exception
...
est
...
générée
...
par
...
l'application
...
lorsque
...
le
...
webservice
...
Apogée
...
remonte
...
une
...
WebException
...
du
...
style
...
technical.data.nullretrieve.commune.
...
En
...
vérifiant
...
dans
...
le
...
référentiel
...
Apogée,
...
si
...
le
...
code
...
postal
...
n'existe
...
pas,
...
il
...
suffit
...
de
...
mettre
...
à
...
jour.
...
Sinon
...
cela
...
signifie
...
que
...
le
...
webservice
...
s'est
...
planté
...
pendant
...
un
...
cours
...
instant
...
en
...
générant
...
une
...
erreur
...
à
...
l'appel
...
de
...
la
...
méthode.
...
DownloadException:
...
data
...
is
...
null
...
Il
...
s'agit
...
là
...
d'un
...
"replay"
...
de
...
l'url
...
de
...
download
...
d'un
...
dossier.
...
En
...
effet,
...
lorsque
...
le
...
candidat
...
télécharge
...
son
...
dossier,
...
l'application
...
va
...
jouer
...
une
...
URL
...
du
...
type
...
https://_url_de_l'appli_?downloadId=****\*
...
(https://_url_de_l%27appli_/?downloadId=*****
...
) afin
...
de
...
pouvoir
...
activer
...
le
...
filtre
...
de
...
téléchargement
...
dans
...
le
...
web.xml
...
et
...
ainsi
...
envoyer
...
le
...
flux
...
de
...
données
...
au
...
candidat
...
pour
...
télécharger
...
le
...
dossier.
...
L'id
...
passé
...
en
...
paramètre
...
ne
...
peut
...
être
...
joué
...
2
...
fois
...
car
...
en
...
réalité,
...
on
...
se
...
base
...
sur
...
des
...
données
...
chargées
...
en
...
session
...
pour
...
créer
...
le
...
fichier
...
à
...
télécharger.
...
Il
...
s'avère
...
que
...
pour
...
rejouer
...
volontairement
...
ce
...
genre
...
d'URL,
...
il
...
faut
...
réussir
...
à
...
la
...
capturer
...
par
...
exemple
...
avec
...
un
...
plugin
...
comme
...
TamperData
...
(sur
...
Firefox).
...
Une
...
supposition
...
sur
...
ce
...
sujet
...
serait
...
donc
...
que
...
des
...
personnes
...
malveillantes
...
veulent
...
tester
...
s'il
...
est
...
possible,
...
en
...
changeant
...
ou
...
en
...
rejouant
...
la
...
valeur
...
de
...
l'id,
...
d'obtenir
...
d'autres
...
données
...
que
...
celles
...
initialement
...
obtenues.
...
A
...
Rennes
...
1,
...
nous
...
avons
...
2
...
cas
...
de
...
comportement
...
plus
...
ou
...
moins
...
malveillants
...
:
...
-
...
soit
...
l'URL
...
est
...
rejouée
...
une
...
fois,
...
supposition
...
que
...
leur
...
test
...
est
...
un
...
échec
...
auquel
...
cas
...
ils
...
abandonnent
...
;
...
-
...
soit
...
l'URL
...
est
...
rejouée
...
plusieurs
...
fois.
...
Dans
...
ce
...
cas,
...
on
...
a
...
constaté
...
que
...
l'id
...
peut
...
changer
...
ou
...
non
...
mais
...
le
...
plus
...
important
...
est
...
que
...
l'adresse
...
IP
...
de
...
l'entité
...
malveillante
...
est
...
identique.
...
Les
...
"attaques"
...
sont,
...
dans
...
des
...
cas
...
déjà
...
constatés,
...
répétées
...
toutes
...
les
...
2
...
minutes.
...
La
...
supposition
...
est
...
qu'étant
...
donnée
...
que
...
le
...
comportement
...
provoque
...
une
...
erreur,
...
les
...
personnes
...
malveillantes
...
tentent
...
de
...
surcharger
...
le
...
serveur
...
en
...
saturant
...
les
...
fichiers
...
de
...
logs.
...
Fort
...
heureusement,
...
dans
...
le
...
second
...
cas,
...
nous
...
n'avons
...
jamais
...
planté
...
le
...
serveur
...
car
...
l'application
...
ne
...
conserve
...
qu'un
...
certain
...
nombre
...
de
...
fichiers
...
de
...
logs,
...
on
...
évite
...
donc
...
la
...
surcharge
...
sur
...
ce
...
point.
...
La
...
solution
...
que
...
nous
...
avons
...
parfois
...
envisagée
...
lorsque
...
les
...
attaques
...
étaient
...
en
...
cours,
...
était
...
de
...
blacklister
...
l'adresse
...
IP
...
pendant
...
une
...
journée
...
ou
...
deux.
...
Je
...
l'ai
...
par
...
ailleurs
...
constaté
...
à
...
mon
...
retour
...
de
...
vacances,
...
nous
...
avons
...
eu
...
une
...
attaque
...
de
...
ce
...
genre
...
la
...
semaine
...
dernière
...
et
...
elle
...
a
...
duré
...
6
...
heures,
...
entre
...
19h
...
et
...
1h,
...
cela
...
sans
...
conséquence.
...
MissingResourceException:
...
Can't
...
find
...
resource
...
for
...
bundle
...
java.util.PropertyResourceBundle,
...
key
...
geographieMetier.urlService.ssl
...
Dans
...
le
...
fichier
...
configUrlServices.properties,
...
il
...
manque,
...
entre
...
autres,
...
la
...
clé
...
geographieMetier.urlService.ssl.
...
Il
...
faut
...
donc
...
ajouter
...
les
...
lignes
...
suivantes
...
:
| Bloc de code |
|---|
} administratifMetier.urlService.ssl=false etudiantMetier.urlService.ssl=false pedagogiqueMetier.urlService.ssl=false geographieMetier.urlService.ssl=false {code} |
Elles
...
sont
...
nécessaires
...
pour
...
les
...
librairies
...
des
...
webservices
...
Apogée
...
et
...
lorsqu'on
...
saisit
...
false,
...
cela
...
veut
...
dire
...
qu'on
...
n'utilise
...
pas
...
SSL.
...
De
...
plus,
...
si
...
cela
...
n'est
...
pas
...
fait,
...
je
...
vous
...
conseille
...
aussi
...
d'ajouter
...
les
...
lignes
...
suivantes
...
:
| Bloc de code |
|---|
} WS_SSL_MODE=false WS_CERTIF_STORE_PATH= WS_KEY_STORE_PATH= WS_KEY_PASS= WS_KEY_TYPE= {code} h2. |
ConfigException:
...
la
...
balise
...
boucle
...
n'a
...
pas
...
de
...
fin
...
Si
...
cette
...
erreur
...
intervient
...
dans
...
la
...
classe
...
DynamicMailContentImpl,
...
cela
...
signifie
...
que
...
vous
...
avez
...
modifié
...
de
...
la
...
mauvaise
...
manière
...
un
...
...
dynamique
...
sur
...
la
...
page
...
prévue
...
à
...
cet
...
effet.
...
Dans
...
le
...
cas
...
précis
...
de
...
la
...
balise
...
boucle,
...
il
...
faut
...
rajouter
...
la
...
fin
...
de
...
celle-ci
...
avec
...
ce code
| Bloc de code |
|---|
code *${end_boucle}*. |
Il
...
faut
...
faire
...
très
...
attention
...
aux
...
modifications
...
apportées
...
dans
...
ce
...
module
...
car
...
certaines
...
parties
...
des
...
mails
...
ne
...
doivent
...
pas
...
changer
...
car
...
ce
...
sont
...
des
...
expressions
...
qui
...
sont
...
analysées
...
et
...
traitées
...
par
...
l'application
...
pour
...
donner
...
le
...
rendu
...
final.
...
MySQLIntegrityConstraintViolationException: Duplicate entry
Si l'erreur porte sur les clés lib_nom_pat_usr ou cod_dep_nai, ce sont des clés générées par Hibernate lors de l'init-data.
Elles correspondent à la clé d'unicité sur les champs lib_nom_pat_usr - lib_pr1_usr - lib_pr2_usr - cod_dep_nai - dat_nai_ind - ville_nai_ind d'un individu dans le mapping. Cette clé évite qu'un candidat crée deux fois un dossier dans l'application.
Le problème vient qu'un Individu au sens de l'application est divisé en base de données sur les deux tables OPI_USER et INDIVIDU.
Il faut donc :
- dans la table OPI_USER, supprimer l'index lib_nom_pat_usr
- dans la table INDIVIDU, supprimer l'index cod_dep_nai