Non, il n'y a pas d'API. Le paramètre est interne à Tomcat, il ne l'expose pas directement au monde extérieur. (Vous pouvez, comme vous l'avez dit, analyser le web.xml - puisque c'est XML, il serait simple d'écrire un XQuery pour le retirer).
Je pense que vous semblez aussi être confus quant à exactement comment cela est censé fonctionner. Vous fournissez un URI à Tomcat qu'il utilisera pour servir le corps HTML d'une réponse 404. Il devra être capable de résoudre cette URI en une ressource réelle comme si elle était fournie dans une requête. Ainsi, dans de nombreux cas, vous n'avez pas besoin d'une servlet pour détecter si la ressource existe - vous avez besoin d'une servlet pour contenir la ressource à servir. L'exception est si vous utilisez Tomcat pour fournir des données de système de fichiers statiques pour certaines URL, ce que je crois est possible bien que rarement utilisé.
Si vous avez un Tomcat mis en place sans servlets, qu'attendez-vous pour servir de toute façon? Où diable voulez-vous obtenir votre page error.jsp
? Comment voulez-vous qu'il le sache? Ce que vous devez faire est d'ajouter au moins un servlet Tomcat (contenant le fichier error.jsp
), et assurez-vous que l'URL web.xml cartes /error/error.jsp
à cette servlet (et que la ressource est placée dans le sous-répertoire d'erreur dans le servlet) .
Une fois que cela est fait, vous devriez être capable de passer manuellement à, par exemple. http://localhost:8080/<context>/error/error.jsp
et avoir la réponse servie (éventuellement avec un contenu étrange car il n'y a pas d'exception réelle mais le fichier doit être trouvé). De même, si vous avez correctement configuré la directive error-page dans le fichier web.xml, vous devez afficher votre page d'erreur sous la forme d'une URL umapped (par exemple http://localhost:8080/<context>/asdfghjasgh
).
fournissent peut-être un peu plus d'informations pour que nous puissions résoudre le problème lui-même. Parce que connaître la page d'erreur pourrait ne pas aider. – Bozho