Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hibernate+Tomcat их конфигурация, Учусь конфигурировать Hibernate. 
:(
    Опции темы
Saboteur
Дата 5.12.2007, 02:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 16.8.2007
Где: Минск

Репутация: нет
Всего: нет



 Начал изучение Хибернейт.  
Делаю простейший пример. Используя пул соединений, пытаюсь  провести простейшую транзакцию.
Получаю , что не находится датасорс: 
Цитата

Could not find datasource: java:/quickstart

Вся проблема  ,я считаю, в том ,что я не знаю как мне его правильно описать в конфигах.
 Использую Eclipse+ tomcat + MySql. 

 Шаг первый: добавляю обьявление ресурса в server.xml:
Код

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">

  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
  <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>

  <GlobalNamingResources>

    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>

    <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>

<!-- Начало  -->

    <Context path="/quickstart" docBase="quickstart">
     <Resource name="/quickstart" scope="Shareable" type="javax.sql.DataSource"/>
      <ResourceParams name="/quickstart">
        <parameter>
            <name>factory</name>
            <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
        </parameter>

        <!-- DBCP database connection settings -->
        <parameter>
            <name>url</name>
            <value>jdbc:mySql://localhost/quickstart</value>
        </parameter>
        <parameter>
            <name>driverClassName</name><value>org.gjt.mm.mysql.Driver</value>
        </parameter>
        <parameter>
            <name>username</name>
            <value>quickstart</value>
        </parameter>
        <parameter>
            <name>password</name>
            <value>secret</value>
        </parameter>

        <!-- DBCP connection pooling options -->
        <parameter>
            <name>maxWait</name>
            <value>3000</value>
        </parameter>
        <parameter>
            <name>maxIdle</name>
            <value>100</value>
        </parameter>
        <parameter>
            <name>maxActive</name>
            <value>10</value>
        </parameter>
      </ResourceParams>
    </Context>

<!-- Конец вставки-->
    
  </GlobalNamingResources>

  <Service name="Catalina">

    <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="8080" redirectPort="8443"/>
  
    <Connector enableLookups="false" port="8009" protocol="AJP/1.3" redirectPort="8443"/>
         
    <Engine defaultHost="localhost" name="Catalina">

    
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      
      <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
       
      </Host>

    </Engine>

  </Service>

</Server>



 ШАг второй: 
 Настраиваю Хибернейт для использования пула соединений.

Код

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration
    PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">

<hibernate-configuration>

    <session-factory>

        <property name="connection.datasource">java:/quickstart</property>  <!-- Тут ошибка? Тут!-->
        <property name="show_sql">false</property>
        <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>

        <!-- Mapping files -->
        <mapping resource="Cat.hbm.xml"/>

    </session-factory>

</hibernate-configuration>


Шаг третий :
Создаю класс, замэпливаю его.
Тут пример кода не нужен т.к. всё кристально ясно.

Пишу утилитный класс для создания экземляра сессии:
Код

import net.sf.hibernate.*;
import net.sf.hibernate.cfg.*;

public class HibernateUtil {
    
    private static final SessionFactory sessionFactory;

    static {
        try {
            // Create the SessionFactory
            sessionFactory = new Configuration().configure().buildSessionFactory();
        } catch (HibernateException ex) {
            throw new RuntimeException("Configuration problem: "
                    + ex.getMessage(), ex);
        }
    }

    public static final ThreadLocal session = new ThreadLocal();

    public static Session currentSession() throws HibernateException {
        Session s = (Session) session.get();
        // Open a new Session, if this Thread has none yet
        if (s == null) {
            s = sessionFactory.openSession();
            session.set(s);
        }
        return s;
    }

    public static void closeSession() throws HibernateException {
        Session s = (Session) session.get();
        session.set(null);
        if (s != null)
            s.close();
    }
}



И собственно класс который Это всё пытается использовать:
Код

import net.sf.hibernate.*;


public class SampleTransaction {    
    
    public static void main(String[] args) {
                
        try {
            
        Session session = HibernateUtil.currentSession();        

        Transaction tx= session.beginTransaction();
    
        Cat princess = new Cat();
        
        princess.setName("Princess");
        
        princess.setSex('F');
        
        princess.setWeight(7.4f);

        session.save(princess);
        
        tx.commit();

        HibernateUtil.closeSession();
        
        } catch (HibernateException e) {
            
            e.printStackTrace();
        }
    }

}



Ну и собственно на консоль падает следующее:
Код

05.12.2007 1:05:23 net.sf.hibernate.cfg.Environment <clinit>
INFO: Hibernate 2.1.8
05.12.2007 1:05:23 net.sf.hibernate.cfg.Environment <clinit>
INFO: hibernate.properties not found
05.12.2007 1:05:23 net.sf.hibernate.cfg.Environment <clinit>
INFO: using CGLIB reflection optimizer
05.12.2007 1:05:23 net.sf.hibernate.cfg.Environment <clinit>
INFO: using JDK 1.4 java.sql.Timestamp handling
05.12.2007 1:05:23 net.sf.hibernate.cfg.Configuration configure
INFO: configuring from resource: /hibernate.cfg.xml
05.12.2007 1:05:23 net.sf.hibernate.cfg.Configuration getConfigurationInputStream
INFO: Configuration resource: /hibernate.cfg.xml
05.12.2007 1:05:23 net.sf.hibernate.cfg.Configuration addResource
INFO: Mapping resource: Cat.hbm.xml
05.12.2007 1:05:23 net.sf.hibernate.cfg.Binder bindRootClass
INFO: Mapping class: Cat -> CAT
05.12.2007 1:05:24 net.sf.hibernate.cfg.Configuration doConfigure
INFO: Configured SessionFactory: null
05.12.2007 1:05:24 net.sf.hibernate.cfg.Configuration secondPassCompile
INFO: processing one-to-many association mappings
05.12.2007 1:05:24 net.sf.hibernate.cfg.Configuration secondPassCompile
INFO: processing one-to-one association property references
05.12.2007 1:05:24 net.sf.hibernate.cfg.Configuration secondPassCompile
INFO: processing foreign key constraints
05.12.2007 1:05:24 net.sf.hibernate.dialect.Dialect <init>
INFO: Using dialect: net.sf.hibernate.dialect.MySQLDialect
05.12.2007 1:05:24 net.sf.hibernate.cfg.SettingsFactory buildSettings
INFO: Maximim outer join fetch depth: 2
05.12.2007 1:05:24 net.sf.hibernate.cfg.SettingsFactory buildSettings
INFO: Use outer join fetching: true
05.12.2007 1:05:24 net.sf.hibernate.util.NamingHelper getInitialContext
INFO: JNDI InitialContext properties:{}
05.12.2007 1:05:24 net.sf.hibernate.connection.DatasourceConnectionProvider configure
SEVERE: Could not find datasource: java:/quickstart
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
    at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
    at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
    at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
    at javax.naming.InitialContext.lookup(Unknown Source)
    at net.sf.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:44)
    at net.sf.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:83)
    at net.sf.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:76)
    at net.sf.hibernate.cfg.Configuration.buildSettings(Configuration.java:1172)
    at net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:803)
    at HibernateUtil.<clinit>(HibernateUtil.java:11)
    at SampleTransaction.main(SampleTransaction.java:10)
Exception in thread "main" java.lang.ExceptionInInitializerError
    at SampleTransaction.main(SampleTransaction.java:10)
Caused by: java.lang.RuntimeException: Configuration problem: Could not find datasource
    at HibernateUtil.<clinit>(HibernateUtil.java:13)
    ... 1 more
Caused by: net.sf.hibernate.HibernateException: Could not find datasource
    at net.sf.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:48)
    at net.sf.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:83)
    at net.sf.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:76)
    at net.sf.hibernate.cfg.Configuration.buildSettings(Configuration.java:1172)
    at net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:803)
    at HibernateUtil.<clinit>(HibernateUtil.java:11)
    ... 1 more
Caused by: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
    at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
    at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
    at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
    at javax.naming.InitialContext.lookup(Unknown Source)
    at net.sf.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:44)
    ... 6 more

 Всё это описано в пособии которое  вроде бы ранее находилось на hibernate.ru, но по данной ссылке сейчас ничего нет. :(
Как правильно настроить пул? И datasourse?
PM MAIL ICQ   Вверх
ecologist
Дата 5.12.2007, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 452
Регистрация: 28.2.2007

Репутация: нет
Всего: 9



DataSource прописывал не в server.xml, а в файле context.xml, который лежит в папке META-INF моего проекта.

Кстати есть пример в "отделе кадров" от AntonSaburov - http://antonsaburov.narod.ru/students/part9.html

Там правда не Hibernate, но принцип тот же - разве что JNDI прописывается не в коде, а конфигураторе Hibernate.
И похоже там ошибочка у AntonSaburov - надо будет ему написать - пусть исправит.

Это сообщение отредактировал(а) ecologist - 5.12.2007, 08:46
PM MAIL   Вверх
ivg
Дата 5.12.2007, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 4
Всего: 81



Попробуйте в описании JNDI ресурса
Код

<Resource name="quickstart" scope="Shareable" type="javax.sql.DataSource"/>

а в конфиге Hibernate:
Код

<property name="connection.datasource">java:/comp/env/quickstart</property>

java:/comp/env/ - это по видимому специфично для Tomcat
Почитать можно здесь
И ещё: В файле web.xml ссылка на ресурс прописана?
PM MAIL   Вверх
Saboteur
Дата 5.12.2007, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 16.8.2007
Где: Минск

Репутация: нет
Всего: нет



  Поменял файл web.xml , добавил ссылку на ресурс 
Код
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>SampleDBHibernate</display-name>
    
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
    
    <resource-ref>
      <res-ref-name>jdbc/quickstart</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
    </resource-ref>
</web-app>


Создал Context.xml и положил его в ту же папку гдк лежит у меня web.xml .
Код

<?xml version="1.0" encoding="UTF-8"?>

<Context path="/quickstart" docBase="quickstart">
     <Resource name="quickstart" scope="Shareable" type="javax.sql.DataSource"/>
      <ResourceParams name="quickstart">
        <parameter>
            <name>factory</name>
            <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
        </parameter>

        <!-- DBCP database connection settings -->
        <parameter>
            <name>url</name>
            <value>jdbc:mySql://localhost/quickstart</value>
        </parameter>
        <parameter>
            <name>driverClassName</name><value>org.gjt.mm.mysql.Driver</value>
        </parameter>
        <parameter>
            <name>username</name>
            <value>root</value>
        </parameter>
        <parameter>
            <name>password</name>
            <value>vfczyzlehf</value>
        </parameter>

        <!-- DBCP connection pooling options -->
        <parameter>
            <name>maxWait</name>
            <value>3000</value>
        </parameter>
        <parameter>
            <name>maxIdle</name>
            <value>100</value>
        </parameter>
        <parameter>
            <name>maxActive</name>
            <value>10</value>
        </parameter>
      </ResourceParams>
    </Context>

2ivg сделал как ты и показал.

2ecologist Какая ошибка?
З.Ы, Так мне server.xml вообще не трогать?
З.З.Ы покажите ваши server.xml , Context.xml, web.xml and hibernate.cfg.xml  smile 

PM MAIL ICQ   Вверх
ivg
Дата 5.12.2007, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 4
Всего: 81



Я в первый раз просмотрел, но в первом посте у вас файл server.xml по моему не корректный. Тег <context>...</context>(т. е. то что у вас между комментариями <!-- Начало  --> и <!-- Конец вставки-->) должен располагаться внутри <host>...</host>. Внутри тега <GlobalNamingResources>...</GlobalNamingResources> располагаются описания глобальных ресурсов, т. е. ресурсов которые доступны всем приложениям на этом сервере. Плюс само содержимое <Resource>...</Resource> так по моему описывалось для старых версий Tomcat. Вообще по той ссылке, что я привел всё достаточно доступно расписано.  smile
Итак 3 варианта:
1. Глобальный ресурс:
server.xml
Код

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
  <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
  <GlobalNamingResources>
    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
    <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>

     <Resource name="jdbc/quickstart"
       auth="Container"
       type="javax.sql.DataSource"
       factory="org.apache.commons.dbcp.BasicDataSourceFactory"
       url="jdbc:mySql://localhost/quickstart"
       driverClassName="org.gjt.mm.mysql.Driver"
       username="quickstart"
       password="secret"
       maxWait="3000"
       maxIdle"100"
       maxActive="10"
     />
    
  </GlobalNamingResources>
  <Service name="Catalina">
    <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="8080" redirectPort="8443"/>
  
    <Connector enableLookups="false" port="8009" protocol="AJP/1.3" redirectPort="8443"/>
         
    <Engine defaultHost="localhost" name="Catalina">
    
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      
      <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
        <context path="/quickstart" />
      </Host>
    </Engine>
  </Service>
</Server>


2. Ресурс приложения, определён в server.xml:
Код

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
  <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
  <GlobalNamingResources>
    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
    <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
  </GlobalNamingResources>
  <Service name="Catalina">
    <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="8080" redirectPort="8443"/>
  
    <Connector enableLookups="false" port="8009" protocol="AJP/1.3" redirectPort="8443"/>
         
    <Engine defaultHost="localhost" name="Catalina">
    
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      
      <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
        <context path="/quickstart">
          <Resource name="jdbc/quickstart" 
            auth="Container"
            type="javax.sql.DataSource"
            factory="org.apache.commons.dbcp.BasicDataSourceFactory"
            url="jdbc:mySql://localhost/quickstart"
            driverClassName="org.gjt.mm.mysql.Driver"
            username="quickstart"
            password="secret"
            maxWait="3000"
            maxIdle"100"
            maxActive="10"
          />
        </context>
      </Host>
    </Engine>
  </Service>
</Server>


3. Ресурс приложения, определен в файле context.xml:
Код

<?xml version="1.0" encoding="UTF-8"?>
<Context>
  <Resource name="jdbc/quickstart"
    auth="Container"
    type="javax.sql.DataSource"
    factory="org.apache.commons.dbcp.BasicDataSourceFactory"
    url="jdbc:mySql://localhost/quickstart"
    driverClassName="org.gjt.mm.mysql.Driver"
    username="quickstart"
    password="secret"
    maxWait="3000"
    maxIdle"100"
    maxActive="10"
  />
</Context>

Ничего не могу сказать по поводу атрибута factory, у меня его нет нигде, работает без него.
Цитата(Saboteur @  5.12.2007,  16:13 Найти цитируемый пост)
Создал Context.xml и положил его в ту же папку гдк лежит у меня web.xml

файл context.xml у меня находится в папке META-INF, она в свою очередь в корне приложения (т. е. на одном уровне с WEB-INF)

Для всех трёх вариантов содержимое web.xml одинаково (вы его уже указали), по крайней мере там, где ссылка на ресурс:
Код

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>SampleDBHibernate</display-name>
    
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
    
    <resource-ref>
      <res-ref-name>jdbc/quickstart</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
    </resource-ref>
</web-app>

Содержимое ссылки <res-ref-name>...</res-ref-name> должно совпадать с именем ресурса, определённого по одному из трёх указанных методов, в данном случае jdbc/quickstart

Не знаю как точно в Hibernate должно определяться JNDI имя DataSource, но предполагаю, что Hibernate не должен знать ничего о том окружении в котором он работает (имеется ввиду сервер приложения), поэтому скорей всего, JNDI имя DataSource в файле конфига Hibernate должно быть специфичным для конкретного контейнера то бишь для Tomcat файл Hibernate.cfg.xml выглядит примерно так:
Код

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration
    PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="connection.datasource">java:/comp/env/jdbc/quickstart</property>  <!-- Пробуйте -->
        <property name="show_sql">false</property>
        <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
        <!-- Mapping files -->
        <mapping resource="Cat.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

Исправил java:/quickstart на java:/comp/env/jdbc/quickstart
Ну вот вроде бы и всё, разбирайтесь, пробуйте. Прошу поправить, если где ошибся.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java tools & IDE's | Следующая тема »


 




[ Время генерации скрипта: 0.0520 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.