powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по Struts+DBCP.
15 сообщений из 15, страница 1 из 1
Вопрос по Struts+DBCP.
    #33195296
svby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос по Struts+DBCP.
Пытаюсь создать соединение с базой данных. В задании у меня написано "использовать обращение и конфигурацию доступа к базе данных средствами Struts (commons-dbcp) и JDBC".

В Struts есть готовый пустой шаблон для начала разработки "struts-blank".
В него в папку lib добавил файл драйвер mysql-connector-java-3.1.7-bin.jar и в файл struts-config.xml такой текст:
<data-sources>
<data-source type="org.apache.commons.dbcp.BasicDataSource">
<set-property
property="driverClassName"
value="org.gjt.mm.mysql.Driver" />
<set-property
property="url"
value="jdbc:mysql://localhost/test_task" />
<set-property
property="username"
value="" />
<set-property
property="password"
value="" />
<set-property
property="maxActive"
value="10" />
<set-property
property="maxWait"
value="5000" />
<set-property
property="defaultAutoCommit"
value="false" />
<set-property
property="defaultReadOnly"
value="false" />
<set-property
property="validationQuery"
value="SELECT COUNT(*) FROM users" />
</data-source>
</data-sources>


При запуске Tomcat выдаёт что "Cannot load jdbc driver class org.gjt.mm.mysql.Driver".
Если обращаюсь к Базе данных так:
Class.forName( "org.gjt.mm.mysql.Driver" );
connection = DriverManager.getConnection("jdbc:mysql://localhost/test_task" );

то всё работает.

Что не так? Где можна взять готовый ПРОСТОЙ пример по Struts+DBCP. Если можно на ящик svby@tut.by.
Заранее, спасиба.
...
Рейтинг: 0 / 0
Вопрос по Struts+DBCP.
    #33195346
боц
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще-то, в mysql-connector-java-3.1.7-bin.jar обычно находится драйвер "com.mysql.jdbc.Driver", а не "org.gjt.mm.mysql.Driver".
...
Рейтинг: 0 / 0
Вопрос по Struts+DBCP.
    #33195351
svby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
боцВообще-то, в mysql-connector-java-3.1.7-bin.jar обычно находится драйвер "com.mysql.jdbc.Driver", а не "org.gjt.mm.mysql.Driver".
Ошибка остаётся и так и так. Может добавить какие небудь jar нужно ещё в lib?
...
Рейтинг: 0 / 0
Вопрос по Struts+DBCP.
    #33195405
livan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя DBCP by Struts. Около года назад в конференции Struts
говорилось, что он глючный. Лучше всего перенести его в Tomcat
или другой сервер. Вот тебе пример Tomcat 5.5.9. Работает без проблем
Настрой web.xml и скопируй jar mysql в common/lib.

<Context path="/app" docBase="/app" debug="5" reloadable="true" crossContext="true">

<Resource name="ORAPOOL"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:SID"
username="usr"
password="pwd"
maxActive="80"
maxIdle="40"
maxWait="-1"
removeAbandoned="true"
removeAbandonedTimeout="60"
logAbandoned="true" />

</Context>
...
Рейтинг: 0 / 0
Вопрос по Struts+DBCP.
    #33195406
livan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соответственно измени параметры Oracle под MySQL.
Почитай

http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-resources-howto.html
...
Рейтинг: 0 / 0
Вопрос по Struts+DBCP.
    #33195800
Фотография Кувалдин Роман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у тебя драйвер MySQL точно в TOMCAT_HOME/common/lib лежит?
...
Рейтинг: 0 / 0
Вопрос по Struts+DBCP.
    #33197939
svby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Заработа когда положил в папку lib commons-dbcp.jar и commons-pool.jar.
Подскажате пожалуйста.

Как получить соединение c БД в javaBeans c учётом того что у меня используеся Struts (commons-dbcp) ?
В (dbcp+Tomcat+без Struts) это делается так:
InitialContext initCtx=new InitialContext();
DataSource dataSource=(DataSource)initCtx.lookup("java:comp/env/jdbc/WroxTC41");
connection =dataSource.getConnection();


Как это сделать точно такое же в Struts(commons-dbcp)? ведь в файле конфигурации struts-config.xml

мы не задавали никаких имен ресурсов типа "jdbc/WroxTC41".
...
Рейтинг: 0 / 0
Вопрос по Struts+DBCP.
    #33197958
livan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Посмотри в архиве Struts. Craig McClanahan призывал уходить от пула в struts-config.xml. Еще раз советую тебе сделать тоже самое.
2. Struts к соединению с базой данных не имеет отношение в этом случае.
Он позволяет разделить структурно Model - action - JSP. Поэтому , как
ты получал соединение раньше, так и получаешь его сейчас.
Ориентировочно:

final static String JAVA_COMPONENT_ENV = "java:comp/env";
final static String JNDI_DATASOURCE_NAME = "jndi-datasource-name";
Context ic = new InitialContext();
Context env = (Context) ic.lookup(Constants.JAVA_COMPONENT_ENV);
String dsName = (String) env.lookup(Constants.JNDI_DATASOURCE_NAME);
DataSource ds = (DataSource) env.lookup(dsName);

3. Сделай конфигурацию action-model-dao и т.д. Каждая структура отвечает за свою функциональность. Конфигураций может быть много, но в частном случае из action вызываеш model с параметрами или без, в модели получаешь соединение, DAO - данные и записываеш их или в bean или в List и т.д.

web.xml -
<resource-ref>
<description>Database Reference</description>
<res-ref-name>ORAPOOL</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
<env-entry>
<env-entry-name>jndi-datasource-name</env-entry-name>
<env-entry-value>ORAPOOL</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>

Остался server.xml. Раньше я тебе писал как он должен выглядеть.
Сделай class connect и получай себе в модели соединение.
...
Рейтинг: 0 / 0
Вопрос по Struts+DBCP.
    #33197961
livan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если хочеш сделать проще и быстрее - делай одну модель.
Если правильнее - посмотри ссылку
http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html
Она мелькала сегодня. или сначала 1 модель, потом запусти DAO.
Посмотри на очень хороший framework - iBatis.
http://ibatis.apache.org
Большое кол-во java китов сидят на нем. Он изначально ориентирован на
DAO.
...
Рейтинг: 0 / 0
Вопрос по Struts+DBCP.
    #33197964
svby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
livan1. Посмотри в архиве Struts. Craig McClanahan призывал уходить от пула в struts-config.xml. Еще раз советую тебе сделать тоже самое.

Спасибо за помощь. Только У меня в задании написано "использовать обращение и конфигурацию доступа к базе данных средствами Struts (commons-dbcp) и JDBC".
Я в этом фигово ориентируюсь, толко как я понял это нужно настаривать через struts-config.xml.
...
Рейтинг: 0 / 0
Вопрос по Struts+DBCP.
    #33197988
livan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это абсолютно разные вещи. Речь идет о том, что в стандарте
J2EE работа с данными организована через пул соединений. Посмотри
на содержимое commons-dbcp.jar. Там и намека на struts нет и не может быть.
Вот некоторые строки
org/apache/commons/dbcp/PoolableConnection.class
org/apache/commons/dbcp/cpdsadapter/DriverAdapterCPDS.class
org/apache/commons/dbcp/cpdsadapter/ConnectionImpl.class
org/apache/commons/dbcp/cpdsadapter/PooledConnectionImpl$PStmtKey.class
org/apache/commons/dbcp/cpdsadapter/PooledConnectionImpl.class
org/apache/commons/dbcp/cpdsadapter/PoolablePreparedStatementStub.class

Если ты будеш открывать и держать открытым соединение как в 2 уров. тогда на большом кол-ве твой сайт ляжет и никогда не встанет ...

Struts - это пакет org.apache.struts.action ... и т.д.
Ты можеш через struts и не работать, но dbcp использовать.
Ты всегда можеш съехать с темы показав письмо автора Struts. :)
В крайнем случае зайди на конференцию struts и задай там вопрос. Посмотриш что тебе ответят. Потом покажеш заказчику.
...
Рейтинг: 0 / 0
Вопрос по Struts+DBCP.
    #33198000
svby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
livanЭто абсолютно разные вещи. Речь идет о том, что в стандарте
J2EE работа с данными организована через пул соединений. Посмотри
на содержимое commons-dbcp.jar. Там и намека на struts нет и не может быть.
Вот некоторые строки
org/apache/commons/dbcp/PoolableConnection.class
org/apache/commons/dbcp/cpdsadapter/DriverAdapterCPDS.class
org/apache/commons/dbcp/cpdsadapter/ConnectionImpl.class
org/apache/commons/dbcp/cpdsadapter/PooledConnectionImpl$PStmtKey.class
org/apache/commons/dbcp/cpdsadapter/PooledConnectionImpl.class
org/apache/commons/dbcp/cpdsadapter/PoolablePreparedStatementStub.class

Если ты будеш открывать и держать открытым соединение как в 2 уров. тогда на большом кол-ве твой сайт ляжет и никогда не встанет ...

Struts - это пакет org.apache.struts.action ... и т.д.
Ты можеш через struts и не работать, но dbcp использовать.
Ты всегда можеш съехать с темы показав письмо автора Struts. :)
В крайнем случае зайди на конференцию struts и задай там вопрос. Посмотриш что тебе ответят. Потом покажеш заказчику.
Большое спасибо.
...
Рейтинг: 0 / 0
Вопрос по Struts+DBCP.
    #33199111
svby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Значит нужно редоктировать файл server.xml и web.xml.
Как производиться доставка приложения? Создал war, а как доставить server.xml? У меня написано в задании ".В качестве результата вашей деятельности должен быть представлен war архив самого приложения и файл конфигурации доступа к базе данных.". Что такое файл конфигурации доступа к базе данных?
...
Рейтинг: 0 / 0
Вопрос по Struts+DBCP.
    #33199349
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... Что такое файл конфигурации доступа к базе данных?
Пускай в твоем случае это будет server.xml
...
Рейтинг: 0 / 0
Вопрос по Struts+DBCP.
    #33200570
livan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Доставка приложения или .war файла это перемещение в подкаталог
webapps и распаковка. В случае Rational 6.0 пакет может быть перемещен полностью, или только class файлы если jar не надо. Можеш просто скопировать war в подкаталог и настроить server.xml на автоматический deploy.
Если у тебя Tomcat - посмотри на строку server.xml
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
unpackWARs="true - это оно.
2. server.xml не доставляется. Это файл конфигурации. Он находится в подкаталоге conf/ .
3. server.xml должен содержать строки.
<Context path="/app" docBase="/app" debug="5" reloadable="true" crossContext="true">

<Resource name="ORAPOOL"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:SID"
username="usr"
password="pwd"
maxActive="80"
maxIdle="40"
maxWait="-1"
removeAbandoned="true"
removeAbandonedTimeout="60"
logAbandoned="true" />

</Context>

Это и есть конфигурация соединения.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по Struts+DBCP.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]