Я развернул веб-приложение (war) в Glassfish v3 и пытаюсь заставить его читать его из свойств, определенных в пользовательском ресурсе.
В моем приложении я определил свойства как:
@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" для обоих значений.
Есть мысли?