Maven Jetty插件中的Jetty JNDI错误

我正在尝试配置可以从Maven Jetty插件的调用中使用的JNDI数据源。 我试图在WAR文件外部执行此操作,以便稍后可能使用Jetty部署我们的webapp的任何人都不必编辑WAR的WEB-INF目录中的配置文件。 我创建了一个jetty.xml文件,如下所示:

     jdbc/myDataSource   .......     

然后我在Maven插件中引用了这个文件,如下所示:

   org.mortbay.jetty maven-jetty-plugin  config/jetty.xml   

但是,当我尝试通过mvn jetty运行webapp时:run-war我收到以下错误:

 Embedded error: Object is not of type class org.mortbay.jetty.webapp.WebAppContext 

如果我省略顶级元素并尝试直接通过以下方式创建新的JNDI资源:

  

然后我得到一个类似的错误:

 Embedded error: Object is not of type class org.mortbay.jetty.plus.naming.Resource 

是什么赋予了?

除了Pascal Thivent的答案之外,你的jetty.xml实际上看起来像jetty-env.xml ,所以你可以配置maven-jetty-plugin与一起使用:

  org.mortbay.jetty maven-jetty-plugin  config/jetty.xml   

根据文档 , jetty.xml中声明的命名条目应该是jvmServer作用域:

如您所见,用于声明每个范围的命名条目的最自然的配置文件是:

  • jetty.xml – jvm或服务器范围
  • WEB-INF / jetty-env.xml或上下文xml文件 – webapp范围

所以你的jetty.xml应该包含这样的东西:

      jdbc/myDataSource   .......