Tomcat v7.0 Charge Exception - Marquage servlet ssi comme indisponible
Nouvelle installation de Tomcat v7.0 et Eclipse. Tentative de chargement de SSI Servlet de soutien. Avez modifié context.xml et web.xml comme par Tomcat instructions.
Context.xml (fragments):
<Context reloadable="true" privileged="true">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
web.xml (fragments):
<servlet>
<servlet-name>ssi</servlet-name>
<servlet-class>
org.apache.catalina.ssi.SSIServlet
</servlet-class>
<init-param>
<param-name>buffered</param-name>
<param-value>1</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>expires</param-name>
<param-value>666</param-value>
</init-param>
<init-param>
<param-name>isVirtualWebappRelative</param-name>
<param-value>0</param-value>
</init-param>
<load-on-startup>4</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ssi</servlet-name>
<url-pattern>*.shtml</url-pattern>
</servlet-mapping>
Mais je suis encore en train de la Charge suivante Exception:
Mar 23, 2012 12:06:00 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet threw load() exception
java.lang.SecurityException: Restricted class org.apache.catalina.ssi.SSIServlet
at
org.apache.catalina.core.DefaultInstanceManager.checkAccess(DefaultInstanceManager.java:548)
at org.apache.catalina.core.DefaultInstanceManager.checkAccess(DefaultInstanceManager.java:539)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:124)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1136)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5001)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5289)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1525)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1515)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Mar 23, 2012 12:06:00 PM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet ssi as unavailable
J'ai essayé tout ce que je peux penser. Quelqu'un peut vous conseiller sur la façon de résoudre ce problème?
merci!
OriginalL'auteur Binko Caruso | 2012-03-23
Vous devez vous connecter pour publier un commentaire.
J'ai ajouté le
privileged="true"
attribut à l'élément de contexte, dans lecontext.xml
fichier à la racine. Il a résolu l'exception de sécurité pour les CGI pour moi.J'ai trouvé que par ce site.
OriginalL'auteur Ben
J'ai eu le même problème avec un autre package: cgi au lieu de ssi. Je vais marcher à travers la solution que j'ai trouvé pour obtenir le passé de l'erreur.
Comme avec l'OP, j'ai eu une nouvelle installation de Tomcat 7.0.27. J'ai été le tester CGI. De travail à travers la configuration initiale j'ai continué à obtenir le suivant:
qui est à peu près identique à l'OP, sauf pour la classe impliquée.
J'ai cherché "Tomcat Restreint DefaultInstanceManager" et situé à [ce code source java] [1]:
Les Propriétés de la classe (qui peut être un hyperlien à partir de la page de code de référence) a indiqué que le code était le plus susceptible de lire un .fichier de propriétés. J'ai donc été en mesure de zéro dans catalina.propriétés et catalina.politique. Après une lecture attentive de la documentation dans ces deux fichiers, plus de référence à la [Tomcat SecurityManager Doc][2] j'ai réalisé que je devais ajouter une subvention de déclaration à la catalina.la politique de fichier:
(Mes ajouts en gras)
Après le redémarrage de Tomcat l'erreur a disparu.
NOTE: j'ai réalisé l'ensemble de ce problème doit être guidée par les questions de sécurité de l'exploitation de certains modules sur Tomcat. Mon utilisation est purement pour effectuer des tests sur une seule machine, et la production de no est prévu dans ce mode.
[1] http://grepcode.com/file/repo1.maven.org/maven2/org.apache.tomcat/tomcat-catalina/7.0.0/org/apache/catalina/core/DefaultInstanceManager.java#DefaultInstanceManager.checkAccess%28java.lang.Class%29
[2] http://tomcat.apache.org/tomcat-7.0-doc/security-manager-howto.html#Configuring_Tomcat_With_A_SecurityManager
OriginalL'auteur KTys
Donc, juste pour confirmer (ce qui fonctionne pour moi):
Ajouté un simple ssi.shtml page de ${TOMCAT_HOME}/webapps/accueil-gestionnaire:
<!--#printenv -->
Commencé Tomcat, pas d'erreurs, http://localhost:8080/host-manager/ssi.shtml fonctionne comme prévu
Enfin - édition de l'context.xml de l'application web, pas la web.xml dans ${TOMCAT_HOME}/dossier conf - je suppose que votre exemple a la WatchedResource élément
OriginalL'auteur Chris White