Social Icons

.

понедельник, 23 ноября 2009 г.

Получение пути к серверу JBoss

Метод getRealPath("") контекста сервлета возвращает выражение вида C:\\Sun\\jboss-4.2.2.GA\\server\\default\\.\\tmp\\deploy\\tmp61304wnrDBInterface-exp.war


В этом выражении:
  • «C:\\Sun\\jboss-4.2.2.GA» - это путь к установленному серверу JBoss в операционной системе,
  • «\\server\\default» - это путь к конфигурации из которой запущен проект.
  • «\\tmp\\deploy\\tmp61304wnrDBInterface-exp.war» - это путь к реально продеплоенному приложени.
 Предположим, что нам хочется разместить свой конфигурационный файл среди файлов в JBoss. Он, понятное дело, должен расположиться где-то в C:\\Sun\\jboss-4.2.2.GA\\server\\default\\conf. Причем имя файла не плохо бы  настраивать в проекте.

Выглядеть это будет примерно так:
public void init(ServletConfig config) throws ServletException {
        try{
            m_theServletConfig = config;
            super.init(m_theServletConfig);

            String szServer = m_theServletConfig.getServletContext().getRealPath("");
            if(szServer != null){
                int nPoint = szServer.indexOf("\.\");
                if(nPoint != -1) szServer = szServer.substring(0, nPoint+1);
                log.info( "Определен путь к серверу приложений " + szServer );
            }
            else{
                log.error("Путь к серверу приложений не определен" );
                return;
            }
            String szName = szServer + m_theServletConfig.getInitParameter( "DBStruct" );
            log.info( "Прочитан путь к файлу структуры базы." + szName );

            ...

        }
               catch(Exception ex) { ex.printStackTrace(); }
    }

При этом значение DBStruct извлекается из файла web.xml
...
 <servlet>
    <description>Основной сервлет, осуществляющий разбор запроса и формирование ответа</description>
    <display-name>DBIGateServlet</display-name>
    <servlet-name>DBIGateServlet</servlet-name>
    <servlet-class>webclient.servlet.DBIGateServlet</servlet-class>
  <init-param>
   <param-name>DBStruct</param-name>
   <param-value>conf\wnrDBStruct.xml</param-value>
  </init-param>   
  </servlet>
...

Таким образом, в переменной szName в приведенном примере, оказывается значение 
C:\Sun\jboss-4.2.2.GA\server\default\conf\wnrDBStruct.xml

Комментариев нет:

Отправить комментарий

 

Так говорил Учитель:

У хорошо написанной программы есть свой собственный рай, у плохо написанной — свой собственный ад.

Russian Developer

Взгляд его светел, усилия праведны, старания бесплодны, дело безнадежно ...