Здравствуйте,
в веб приложении (java) на странице список заполняется из бд. БД-в postgres, сервер -glassfish
Создала jdbc connection pool "CP_ISS" (ресурс-"jdbc/ISS") - пинг срабатывает. Вроде все прописала как в документации, но связи с бд нет. Отладка тоже не срабатывает, выдает ошибку, не могу найти в чем дело (org.netbeans.api.debugger.jpda.DebuggerStartException: Connection refused: connect). Я так думаю обе проблемы взаимосвязаны. Может я что то неправильно все таи пишу:( Помогите, пожалуйста
JDBC.java
import......
public class JDBC {
private static final Logger log=Logger.getLogger(JDBC.class.getName());
private DataSource dataSource;
public JDBC(){
}
public void init(String dataSourceName){
try{
InitialContext initContext = new InitialContext();
dataSource=(DataSource) initContext.lookup(dataSourceName);
} catch (NamingException e){
log.log(Level.SEVERE, "JNDIException: {0}", e.getMessage());
}
}
public Connection getConnection() throws SQLException {
if (dataSource == null) {
throw new SQLException("DataSource is null.");
}
return dataSource.getConnection();
}
}
DataAccessfactory.java
public class DataAccessFactory {
private static final DataAccessFactory instance = new DataAccessFactory();
private JDBC jdbcUtil;
private DataAccessFactory() {
}
public static DataAccessFactory getInstance() {
return instance;
}
private JDBC prepareJDBCUtils() {
if (jdbcUtil == null) {
jdbcUtil = new JDBC();
jdbcUtil.init("jdbc/ISS");
}
return jdbcUtil;
}
public static synchronized JDBC getJDBCUtils() {
return getInstance().prepareJDBCUtils();
}
}
ConnectToDB.java
import....
public class ConnectToDB {
private static final JDBC jdbc = DataAccessFactory.getJDBCUtils();
public static List<String> getData(String param1, String param2) throws Exception {
List<String> data = new ArrayList<String>();
Connection connection = null;
PreparedStatement ps = null;
try {
Class.forName("org.postgresql.Driver");
System.out.println("Драйвер подключен");
connection = jdbc.getConnection();
System.out.println("Соединение установлено");
ps = connection.prepareStatement("SELECT "+ param1 +" FROM "+ param2);
ResultSet result = ps.executeQuery();
ResultSetMetaData md = result.getMetaData();
int cnt = md.getColumnCount(); // получаем кол-во колонок (1..cnt)
while (result.next()) {
for (int i = 1; i <= cnt; i++) {
String name = md.getColumnName(i); // получим имя колонки
data.add(result.getString(i)); // получаем значение
}
}
} catch (Exception ex) {
//выводим наиболее значимые сообщения
Logger.getLogger(CheckboxView.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if (connection != null) {
try {
connection.close();
} catch (SQLException ex) {
Logger.getLogger(CheckboxView.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
return data;
}
}
CheckboxView.java
import.....
public class CheckboxView {
private String[] selectedCities;
private ConnectToDB cities;
private String[] selectedModesOfTransport;
private List<String> modesOfTransport;
private String[] selectedRoute;
private List<String> route;
private String[] selectedOffense;
private List<String> offense;
private String cart;
private List<String> tableCity;
public void init() throws Exception {
cities = new ConnectToDB();
modesOfTransport = new ArrayList<String>();
route = new ArrayList<String>();
offense = new ArrayList<String>();
this.cart = "http://www.openstreetmap.org/export/embed.html?bbox=54.12689208984376%2C53.075877572693564%2C57.19207763671876%2C54.06583577161281&layer=mapnik";
cities.getData("*", "city");
}
public String cart() {
this.cart = "http://www.openstreetmap.org/#map=9/54.0279/53.4677";
return cart;
}
public String[] getSelectedCities() {
return selectedCities;
}
public void setSelectedCities(String[] selectedCities) {
this.selectedCities = selectedCities;
}
public ConnectToDB getCities() {
return cities;
}
[
.........
]
public String getCart() {
return cart;
}
public void setCart(String cart) {
this.cart = cart;
}
}
index.xhtml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<f:view contentType="text/html">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
<link rel="stylesheet" type="text/css" href="style.css"></link>
</h:head>
<h:body>
<div class="block">
<!--Заголовок-->
<div class="header" align="center">Система информационного обеспечения органов государственной власти </div>
<!--Меню навигации-->
<ul class="css-menu-3">
<li><a href="index.xhtml" class="selected">Текущая обстановка</a></li>
<li><a href="directory.xhtml">Справочники</a></li>
<li><a href="reports.xhtml">Отчеты</a></li>
<li><a href="offense.xhtml">Нарушения</a></li>
<li><a href="#">Еще раздел</a></li>
</ul>
<div class="content">
<!--Карта-->
<h:form>
<div id="cart" >
<iframe src="#{checkboxView.cart}"></iframe>
</div>
</h:form>
<!--Параметры-->
<div class="left">
<p:accordionPanel>
<p:tab title="Районы и города">
<p:selectManyCheckbox id="grid2" value="#{checkboxView.selectedCities}" layout="grid" columns="2" style="text-align: left">
<f:selectItems value="#{checkboxView.cities}"/>
</p:selectManyCheckbox>
</p:tab>
[
.........
]
</p:accordionPanel>
<p:commandButton id="clean" value="Очистить" > </p:commandButton>
</div>
</div>
<div class="clear"></div>
<!--Подвал - Footer-->
<div class="footer">
<p>Главная | <a href="#">О нас</a> | <a href="#">Техническая поддержка</a></p>
</div>
</div>
</h:body>
</f:view>
</html>
web.xml
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/ISS</res-ref-name>
<res-type>javax.sql.ConnectionPoolDataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>