Comment puis-je mettre l'auditeur dans web.xml java?
J'ai créé une application web et je voudrais savoir où je dois mettre mes écouteur dans l'web.xml.
<servlet>
<servlet-name>ProcessReg</servlet-name>
<servlet-class>ProcessReg</servlet-class>
<init-param>
<param-name>pract123</param-name>
<param-value>jdbc:odbc:practODBC</param-value>
</init-param>
<listener>
<listener-class>config</listener-class>
</listener>
</servlet>
Le message d'erreur que j'ai reçu est:
cvc-complex-type.2.4.a: Invalid content was found starting with element 'listener'. One of '{"http://java.sun.com/xml/ns/javaee":init-param, "http://java.sun.com/xml/ns/javaee":load-on-startup, "http://java.sun.com/xml/ns/javaee":run-as, "http://java.sun.com/xml/ns/javaee":security-role-ref}' is expected. [17]
Voici mon fichier de config:
public class config implements ServletContextListener {
private static final String ATTRIBUTE_NAME = "config";
private DataSource dataSource;
@Override
public void contextInitialized(ServletContextEvent event) {
ServletContext servletContext = event.getServletContext();
String databaseName = servletContext.getInitParameter("pract123");
try {
dataSource = (DataSource) new InitialContext().lookup("java:/comp /env/jdbc/TestDB");
} catch (NamingException e) {
throw new RuntimeException("Config failed: datasource not found", e);
}}
@Override
public void contextDestroyed(ServletContextEvent event) {
//NOOP.
}
public DataSource getDataSource() {
return dataSource;
}
public static config getInstance(ServletContext servletContext) {
return (config) servletContext.getAttribute(ATTRIBUTE_NAME);
}
}
L'utilisation du nom complet de la listner classe.
OriginalL'auteur Karen Goh | 2013-09-19
Vous devez vous connecter pour publier un commentaire.
Ce que vous faites est vous mélangez la
<servlet>
et<listener>
balises .Ils doivent être séparés.Qui devrait être
ou
Et Dans votre classe
Comme une note de côté:
En Java, les noms de classe commence par une majuscule.
public class config
devrait êtrePas de besoin.C'est ici que vous ne devez pas mélanger jusqu'. 🙂
Grâce Suresh. Je n'ai pas utiliser. Mais maintenant j'ai une autre erreur:Exception de l'envoi de contexte initialisé événement à l'auditeur instance de la classe Config java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.BasicDataSource ne peut pas être lancé à javax.l'activation.Source de données. Comment résoudre cette erreur?
Karen je soupçonne que vous avez une fausse importer dans votre fichier de configuration de source de données de fichier .edit ton post avec la montre des importations.
Ne m'autorise pas à modifier. Voici donc les importations. import javax.l'activation.Source de données; import javax.de nommage.InitialContext; import javax.de nommage.NamingException; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener;
OriginalL'auteur Suresh Atta
Auditeur ne doit pas être dans un
servlet
balise et de fournir le nom completOriginalL'auteur Prasad Kharkar
comme vous le voyez dans le modèle de contenu de wep app:
il est un frère ou une sœur de
servlet
pas un enfant:OriginalL'auteur Philipp Sander
Auditeur tag devraient être définis dans le cadre de la web-app tag.
OriginalL'auteur Deepak
web.xml serait
et com.my.ServletContextClass.java serait
profiter de codage 🙂
OriginalL'auteur insung