如何使用嵌套在Scala中@WebServlet注释中的@WebInitParam?

时间:2011-04-25 03:56:29

标签: scala servlets java-ee-6

我正在使用Scala和servlet,我正在尝试使用JEE6注释来配置用Scala编写的servlet。我遇到了嵌套注释的问题。 java代码看起来像:

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

}

我正在尝试的scala代码就像:

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

}

但是当我尝试编译它时,我得到以下内容:

  

[ERROR] /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注释。

有关如何使用嵌套在Scala中@WebServlet注释中的@WebInitParam的任何建议吗?

1 个答案:

答案 0 :(得分:4)

您必须使用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 {

}