Я разрабатываю службу JAX-RS, развернутую в IBM Websphere 8.5. Я пытаюсь ввести ServletContext, используя следующий код (в настоящее время на уровне поля в классе, но я также пытался передать его в качестве параметра в методе службы, но у меня возникла та же проблема).
@Context
private ServletContext servletContext = null;
Когда я вызываю метод службы, переменная servletContext имеет значение null.
Мой файл web.xml настроен следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>MyServices</servlet-name>
<servlet-class>com.ibm.websphere.jaxrs.server.IBMRestServlet</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.mycompany.ApplicationConfig</param-value>
</init-param>
<init-param>
<param-name>myParam</param-name>
<param-value>myValue</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MyServices</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Then in the code I am using the servletContext to get an init-param, for example:
String myParam = servletContext.getInitParameter("myParam");
У меня есть предоставленный IBM файл j2ee.jar (для Java 6, который работает) в качестве зависимости, поставляемой с файлом WAR.
Итак, мой вопрос: это ошибка с реализацией Websphere JAX-RS, или я что-то здесь упускаю?
Я нашел несколько руководств о том, как писать приложения JAX-RS для Websphere, но ни в одном из них не упоминается внедрение ServletContext. В информационном центре IBM Websphere 8.5 также нет ссылки на то, как это сделать (по крайней мере, я вижу).