Je suis très confus pourquoi cela ne fonctionne pas. L'environnement est une instance de Liferay 6.1 avec Tomcat 7 et la base de données n'est PAS la base de données par défaut de Liferay. C'est un serveur secondaire utilisé pour les données. Donc, je ne suis pas sûr si cela compte avec Liferay ou non.Configuration de JNDI avec un environnement Tomcat 7 en utilisant Liferay 6.1
web.xml (situé dans webapps/conf dans Tomcat)
<web-app>...
<resource-ref>
<description>My database</description>
<res-ref-name>jdbc/xxx</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
server.xml (situé dans webapps/conf dans Tomcat)
<GlobalNamingResources>
<Resource name="jdbc/xxx" auth="Container" type="javax.sql.DataSource" username="a" password="y" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/xxx"
maxActive="200" maxIdle="25" />
</GlobalNamingResources>
context.xml (situé dans webapps/conf dans Tomcat)
<context>
<ResourceLink global="jdbc/xxx" name="jdbc/xxx" type="javax.sql.DataSource" />
</context>
code:
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/xxx");
Connection conn = ds.getConnection();
Erreur:
2016-12-21 19:13:04 FATAL asdasdsd:128 - Exception thrown in (removed):
javax.naming.NameNotFoundException: Name [java:comp/env/jdbc/xxx] is not bound in this Context. Unable to find [java:comp].
at org.apache.naming.NamingContext.lookup(NamingContext.java:820)
at org.apache.naming.NamingContext.lookup(NamingContext.java:168)
Qu'est-ce que je manque?
Modifier:
également confirmé ce qui suit:
- connecteur mysql est dans le chemin
- même pot est dans le classpath du portlet
Second Edition:
J'ai créé un tout nouveau projet d'application web dynamique avec la même configuration et la même couche DAO et cela a fonctionné à 100%. J'ai le sentiment que c'est lié à Liferay maintenant. Malheureusement ..
Troisième Edition:
tout Essayé, y compris cet article: http://www.journaldev.com/2513/tomcat-datasource-jndi-example-java
Cela ne fonctionne pas non plus. Même exception Le manque d'information sur ce sujet sur le site Liferay est incroyable pour moi. La documentation semble faire cruellement défaut.
Avez-vous essayé sans donner java: comp/env /? –
@RajkannanIyyappan Le 'java: comp/env /' est absolument nécessaire. –
Je suppose que vous voulez dire tomcat/conf, pas webapps/conf. –