Дополнительная информация в определении JNDI - PullRequest
1 голос
/ 16 февраля 2011

Я занимаюсь разработкой веб-приложения, и оно должно быть развернуто на Apache Tomcat 6.0. Приложение будет соединять множество баз данных (почти 25), поэтому для управления Connection s я использую файл context.xml, расположенный в META-INF . Пока все хорошо, и вот как выглядит определение ресурса:

<Resource 
  name="jdbc/XX"
  auth="Container"
  type="javax.sql.DataSource"
  username="XXX"
  password="XXX"
  driverClassName="oracle.jdbc.driver.OracleDriver"
  url="jdbc:oracle:thin:XXXX"
  maxActive="8"
  maxIdle="4"/>

Учитывая это определение, объект Connection создан правильно.

Что я хотел бы знать, так это , если я смогу добавить дополнительную информацию в этом определении , например projectName, , и получить ее из контекста (или где-то еще еще). Примерно так:

<Resource 
  name="jdbc/XX"
  auth="Container"
  type="javax.sql.DataSource"
  username="XXX"
  password="XXX"
  driverClassName="oracle.jdbc.driver.OracleDriver"
  url="jdbc:oracle:thin:XXXX"
  maxActive="8"
  maxIdle="4"
  projectName="Cool Project"/>

Любая помощь приветствуется ..

1 Ответ

1 голос
/ 16 февраля 2011

Нет, но вы можете определить соглашение об именах и добавить элемент Environment для каждого вашего ресурса:

<Environment name="XX_projectName" 
             value="Cool Project"
             type="java.lang.String" 
             override="false"/>

В вашем коде вы получите к нему доступ через

Context ctx = new InitialContext();
String projectName = (String) ctx.lookup("java:comp/env/XX_projectName");

Подробнее см. http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Environment%20Entries.

...