powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Tomcat 4.1.31 JNDI и лог через Log4j, есть проблемы...
2 сообщений из 2, страница 1 из 1
Tomcat 4.1.31 JNDI и лог через Log4j, есть проблемы...
    #33313981
galisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго всем дня!

Все эти темы освещались, все проделано с учетом замечаний на форуме и HOW-TO, но не помогло.

Исходные данные: W2000Pro, JDK 1.4.2_06 Sun, Tomcat 4.1.31. В common/lib родные библиотеки dbcp & pool лежат, также и JDBC в виде jar файлов.

Две проблемы:
1. Подключение из JSP получается нормально, а из класса нет, вылетает исключение:
Код: plaintext
javax.naming.NameNotFoundException: Name Bprt is not bound in this Context
. Вот как такое может быть ? Может кто сталкивался ?
2. Запись лога не получилась вообще. Файл образуется в момент старта сервлета (сделано согласно доки), но он нулевой длины. Ерунда какая то.

Вот исходные данные подробнее:

1. Conf XML приложения:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
<Context path="" docBase="">
 <Logger className="org.apache.catalina.logger.FileLogger"
         directory="D:/..../www/logs" prefix="prt."
         suffix=".log" timestamp="true"/>

 <Resource auth="Container" name="jdbc/BPrt" type="javax.sql.DataSource"/>
  <ResourceParams name="jdbc/BPrt">
	<parameter>
		<name>factory</name>
		<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
	</parameter> 
	<parameter>
		<name>driverClassName</name>
		<value>oracle.jdbc.driver.OracleDriver</value>
	</parameter> 
	<parameter>
		<name>url</name>
		<value>jdbc:oracle:thin:@ 127 . 0 . 0 . 1 : 1521 :ORA1</value>
	</parameter>
	<parameter>
		<name>username</name>
		<value>prt</value>
	</parameter>
	<parameter>
		<name>password</name>
		<value>prt</value>
	</parameter> 
	<parameter>
		<name>maxActive</name>
		<value> 30 </value>
	</parameter> 
	<parameter>
		<name>maxIdle</name>
		<value> 10 </value>
	</parameter> 
	<parameter>
		<name>maxWait</name>
		<value> 10000 </value>
	</parameter> 
 </ResourceParams>

</Context>
web.xml
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
     PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<resource-ref>
 <description>Connect to schema PRT</description>
 <res-ref-name>jdbc/BPrt</res-ref-name>
 <res-type>javax.sql.DataSource</res-type>
 <res-auth>Container</res-auth>
</resource-ref> 
</web-app>
JDBC пробовал и от 8.1.7 и от 9.0.2. Результат тот же.
Вот кусок кода из JSP
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
private Context    initContext   = null;
private Context    envContext    = null;
private DataSource dataSource    = null;
private Connection connection    = null;
...
initContext = new InitialContext();
envContext = (Context) initContext.lookup("java:comp/env");
dataSource = (DataSource) envContext.lookup("jdbc/BPrt");
connection = dataSource.getConnection();
Вот кусок кода из класса, который вызывется из сервлета
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
  private Context        ic  = null;
  private Context        ec  = null;
  private DataSource dsbe    = null;
...
     try 
     {
        ic    = new InitialContext();
        ec    = (Context)ic.lookup("java:comp/env");        
        dsbe  = (DataSource) ec.lookup("jdbc/Bprt");
     }catch (Exception e){e.printStackTrace();}
Вот на строчке: ec.lookup("jdbc/Bprt") в классе и вываливается исключение. В JSP еще раз скажу - все Ок.

2. Кусок web.xml
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 <servlet>
  <servlet-name>initLog4j</servlet-name>
  <servlet-class>ru.....initLog4j</servlet-class>

  <init-param>
   <param-name>log4j-init-file</param-name>
   <param-value>WEB-INF/classes/log4j.lcf</param-value>
  </init-param>

  <load-on-startup> 1 </load-on-startup>
 </servlet>
Кусок стартап-сервлета:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
  public void init() {
    String prefix =  getServletContext().getRealPath("/");
    String file = getInitParameter("log4j-init-file");
    // if the log4j-init-file is not set, then no point in trying
    if(file != null) {
      PropertyConfigurator.configure(prefix+file);
    }
  }
Вот само проперти
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
log4j.defaultInitOverride = true

log4j.rootLogger=debug, ConsApp

#log4j.logger.org.apache=error 

log4j.logger.com.ru.....portal=ALL, FileApp

#ConsApp
log4j.appender.ConsApp=org.apache.log4j.ConsoleAppender
log4j.appender.ConsApp.layout=org.apache.log4j.PatternLayout
log4j.appender.ConsApp.layout.ConversionPattern=%d{HH\:mm\:ss,SSS} %-5p %c - %m%n
# FileApp
log4j.appender.FileApp=org.apache.log4j.RollingFileAppender
log4j.appender.FileApp.File=D:/...../logs/Portal.log
log4j.appender.FileApp.MaxFileSize=100KB
log4j.appender.FileApp.MaxBackupIndex= 1 
log4j.appender.FileApp.layout=org.apache.log4j.PatternLayout
log4j.appender.FileApp.layout.ConversionPattern=-- %d [%t] %-5p %c - %m%n

Уважаемые спецы, может в Tomcat 4.1.xx это вообще неразрешимо, и надо на него забить и на 5 перейти ?
Или я какой-то хитрости не понял ?

Заранее спасибо
...
Рейтинг: 0 / 0
Tomcat 4.1.31 JNDI и лог через Log4j, есть проблемы...
    #33315071
galisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так никто и не знает как все это победить ?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Tomcat 4.1.31 JNDI и лог через Log4j, есть проблемы...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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