У меня было приложение, работающее с JSF, и я вручную открыл соединение, но теперь мне нужно его изменить и открыть все соединения из источника данных, поэтому у меня есть .xml-файл в каталог (Jboss 7)NameNotFoundException при открытии соединения из Datasource, JNDI
<?xml version="1.0" encoding="UTF-8"?>
<datasources xmlns="http://www.jboss.org/ironjacamar/schema">
<datasource
jndi-name="java:jboss/datasources/MyForum"
enabled="true"
use-java-context="true"
pool-name="MyForum">
<connection-url>jdbc:hsqldb:hsql://localhost</connection-url>
<driver>hsqldb.jar</driver>
<pool></pool>
<security>
<user-name>sa</user-name>
<password></password>
</security>
</datasource>
</datasources>
Тогда у меня есть код, чтобы Acces имя JNDI в классе «JdbcHelper»
public Connection createConnection() {
try {
String jndiKey = getProperty("JNDI_DATASOURCE");
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup(jndiKey);
return ds.getConnection();
} catch (NamingException e) {
throw new RuntimeException("Can't open JDBC conection from JNDI", e);
} catch (SQLException e) {
throw new RuntimeException("Can't open JDBC conection", e);
}
}
линия, которая запускает исключение это один DataSource ds = (DataSource) ctx.lookup(jndiKey);
я не знайте, нужна ли вам дополнительная информация, но если вам нужно так же, как и к, я действительно нужно сделать это, и я не могу найти решение :(
Update, вот деталь-сообщение исключения
datasources/MyForum -- service jboss.naming.context.java.jboss.datasources.MyForum
Спасибо вам так много заранее. :)
Убедитесь, что ваш сервер JBoss начинается без предупреждения/ошибки. Затем отмените свое приложение и проверьте, что значение 'jndiKey' -' java: jboss/datasources/MyForum'. – eternay
Alredy сделал, и да, значение кажется правильным. Я обновил подробное сообщение об исключении, возможно, это поможет вам понять, что не так. Спасибо вам все равно – Santanor