Как использовать @WebInitParam, который вложен в аннотацию @WebServlet в Scala? - PullRequest
2 голосов
/ 25 апреля 2011

Я играю со Scala и сервлетами и пытаюсь использовать аннотации JEE6 для настройки сервлетов, написанных на Scala.У меня проблема с вложенными аннотациями.Код java будет выглядеть примерно так:

@WebServlet(name = "ExampleServlet", urlPatterns = {"/example"},
initParams = {@WebInitParam(name="param1", value="value1"), 
              @WebInitParam(name="param2", value="value2")}
)
public class ExampleServlet extends HttpServlet {

}

код, который я пытаюсь использовать, выглядит так:

@WebServlet(name = "ExampleServlet", urlPatterns = Array("/example"), 
initParams = Array(@WebInitParam(name="param1", value="value1", 
                   @WebInitParam(name="param2", value="value2")))
class ExampleServlet extends HttpServlet {

}

, но когда я пытаюсь его скомпилировать, я получаю следующее:

[ОШИБКА] /Users/brian/workspace/dsg-scalatra/src/main/scala/org/mbari/dsg/RotatorServlet.scala:15: ошибка: недопустимое начало простого выражения

[INFO] initParams = Array (@WebInitParam (name = "imageDirectory", value = "/ assets / images / rotator")))

с ошибкой, указывающей на аннотацию @WebInitParam.

Есть ли какие-либо предложения по использованию @WebInitParam, вложенного в аннотацию @WebServlet в Scala?

1 Ответ

4 голосов
/ 25 апреля 2011

Вы должны использовать ключевое слово new для создания экземпляров любых аннотаций внутри другой аннотации:

@WebServlet(name = "ExampleServlet", urlPatterns = Array("/example"), 
            initParams = Array(new WebInitParam(name="param1", value="value1"), 
                               new WebInitParam(name="param2", value="value2")))
class ExampleServlet extends HttpServlet {

}
...