2010-12-29 3 views
0

Я развернул webapp (war) в Glassfish v3, и я пытаюсь заставить его читать свойства, определенные в настраиваемом ресурсе.Пользовательские свойства Glassfish Ресурс, не загружаемый из файла

В моем приложении, я определил свойства, как:

@Resource(mappedName = "TestServletProperties") 
private Properties properties; 

и использовать его как это:

protected void doGet(final HttpServletRequest request, 
     final HttpServletResponse response) throws ServletException, 
     java.io.IOException 
{ 
    String propertyOne = properties.getProperty("testServlet.propertyOne"); 
    String propertyTwo = properties.getProperty("propertyTwo"); 

    StringBuffer buffer = new StringBuffer("Properties Retrieved\n"); 
    buffer.append("Property One: " + propertyOne + "\n"); 
    buffer.append("Property Two: " + propertyTwo + "\n"); 

    try 
    { 
     response.getWriter().write(buffer.toString()); 
    } 

    catch (Exception ex) 
    { 
     try 
     { 
      log.warn("Exception thrown", ex); 
      response.getWriter().write(ex.getStackTrace().toString()); 
     } 
     catch (IOException io) 
     { 
      log.warn("IOException thrown", io); 
     } 
    }    
} 

В Glassfish, я создал JNDI пользовательских ресурсов называется TestServletProperties типа java.util.Properties и с использованием фабричного класса org.glassfish.resources.custom.factory.PropertiesFactory. В ресурсе есть одно свойство «fileName» со значением, установленным на абсолютный путь к файлу свойств:

/Program Files/glassfishv3/glassfish/domains/domain1/applications/Test/WEB-INF/classes/TestServlet_lab.properties 

Я также попытался

c:\Program Files\glassfishv3\glassfish\domains\domain1\applications\Test\WEB-INF\classes\TestServlet_lab.properties 

Я подтвердил, что файл существует и содержит ссылочные свойства. К сожалению, я возвращаю «null» для обоих значений в своем ответе.

Любые мысли?

+0

Я создал ошибку для этой проблемы: http://java.net/jira/browse/GLASSFISH-15402 – sdoca

ответ

1

Решение состоит в том, что вы должны использовать полный «org.glassfish.resources.custom.factory.PropertiesFactory.fileName» против всего «FileName».

0

Причина может заключаться в том, что у вас есть файл web.xml с заголовком версии сервлета 2.4 (или старше).

@Resource и другие аннотации обрабатываются только в том случае, если у вас есть хотя бы версия 2.5 в заголовке web.xml. Убедитесь, что вы не просто изменяете версию, а копируете и вставляете новый заголовок откуда-то, поскольку пространство имен отличается.

Надеется, что это помогает