Bonjour,

Je souhaite développer ma propre Valve sous Tomcat. Je n'arrive pas à la déclarer correctement. J'ai modifié le fichier mbeans-descriptor.xml du jar catalina.jar, en y ajoutant un élément relatif à ma valve:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<mbean 	 name="FormBasedLoginValve"
  		 className="org.apache.catalina.mbeans.ClassNameMBean"
  		 description="Valve de module d'authentification"
  		 domain="Catalina"
  		 group="Valve"
  		 type="com.monappli.web.FormBasedLoginValve">
 
  		 <attribute name="className"
		            description="Fully qualified class name of the managed object"
		            type="java.lang.String"
               		    writeable="false"/> 
 
                  <attribute   name="debug"
			    description="The debugging detail level for this component"
                            type="int"/>
  </mbean>
et j'ai ajouté la déclaration de la valve dans le context de mon appli web

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<Valve classeName="com.monappli.web.FormBasedLoginValve" />
et lorsque je lance Tomcat, j'ai l'exception suivante qui est levée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
ServerLifecycleListener: processContainerAddChild: Throwable
javax.management.MalformedObjectNameException: Cannot create mbean for non-contained valve com.casa.module_identification.web.CAFormBasedLoginValve@4de3fe
 at org.apache.catalina.mbeans.MBeanUtils.createObjectName(MBeanUtils.java:1609)
 at org.apache.catalina.mbeans.MBeanUtils.createMBean(MBeanUtils.java:770)
 at org.apache.catalina.mbeans.ServerLifecycleListener.createMBeans(ServerLifecycleListener.java:436)
 at org.apache.catalina.mbeans.ServerLifecycleListener.processContainerAddChild(ServerLifecycleListener.java:1311)
 at org.apache.catalina.mbeans.ServerLifecycleListener.containerEvent(ServerLifecycleListener.java:142)
 at org.apache.catalina.core.ContainerBase.fireContainerEvent(ContainerBase.java:1357)
 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:782)
 at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:760)
 at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:548)
 at org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDeployer.java:653)
 ......
Quelqu'un peut me dire d'où vient le problème et comment faire pour correctement déclarer sa propre valve ?
Merci.