Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Передача конкретной реализации функции DataSource
- источник данных, собранный в tomcat, обеспечивает доступ к username
, url
и т. д. (подробности см. в DataSource ):
if (dataSource instanceof org.apache.tomcat.jdbc.pool.DataSource) {
org.apache.tomcat.jdbc.pool.DataSource tcDataSource = (org.apache.tomcat.jdbc.pool.DataSource)dataSource;
logger.info(tcDataSource.getUrl());
logger.info(tcDataSource.getUsername());
...
}
Я не думаю, что вы могли бы это сделать, поскольку DataSource является просто абстракцией и реализуется поставщиком драйверов, просто фабрикой соединений. Вы должны попытаться получить параметры в другом месте, например, файл свойств конфигурации или такой