Jetty配置:MySQL JNDI的问题

时间:2015-04-15 14:24:22

标签: mysql xml gradle jetty embedded-jetty

Jetty嵌入式有一个用于配置的jetty.xml。这个配置有一个mysql jndi-connection。

当我使用gradle运行jetty时,会引发异常:

Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource
at org.eclipse.jetty.util.Loader.loadClass(Loader.java:86)
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.nodeClass(XmlConfiguration.java:364)
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:754)
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.itemValue(XmlConfiguration.java:1125)
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.value(XmlConfiguration.java:1030)
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:775)
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:423)
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:298)
at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:248)
at org.eclipse.jetty.xml.XmlConfiguration$configure.call(Unknown Source)
at com.sahlbach.gradle.plugins.jettyEclipse.JettyEclipseRun.applyJettyXml(JettyEclipseRun.groovy:533)
at com.sahlbach.gradle.plugins.jettyEclipse.JettyEclipseRun.startJetty(JettyEclipseRun.groovy:318)

这是抛出异常的jetty.xml行:

<New id="relevante" class="org.eclipse.jetty.plus.jndi.Resource">
    <Arg></Arg>
    <Arg>jdbc/Relevante</Arg>
    <Arg>
        <New id="relevanteDataSource" class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
           <Set name="url">jdbc:mysql://localhost:3306/xxxx</Set>
           <Set name="user">xxxx</Set>
           <Set name="password">xxxx</Set>
        </New>
     </Arg>
</New>

MySQL连接器是gradle的依赖项,我不知道是否需要将连接器放入本地地址(除了作为gradle中的依赖项)。

jettyEclipse {
     additionalRuntimeJars = files( new File("$rootDir/src/main/webapp/WEB-INF/lib/mysql-connector-java-5.0.8-bin.jar") )
     warFile = file("$rootDir/build/libs/relevanteme.war")  
     jettyConfig = file("$rootDir/jetty.xml")
     contextPath = ""
     automaticReload = "true"
     scanIntervalInSeconds = 5
     webDefaultXml = file("$rootDir/webdefault.xml")
}

谢谢!

2 个答案:

答案 0 :(得分:0)

运行码头的任务是什么?你知道是否有一个单独的配置,它是否从编译扩展?

答案 1 :(得分:0)

该解决方案有两个用于服务器配置的xml文件。这两个文件中的一个将是jetty.xml,它将具有所有服务器配置。另一个文件是jetty-env.xml,其中包含webApp配置和与数据库的连接(该文件必须在webapp / WEB-INF /)中。

this repository中的更多信息。