java - 用于数据源使用的 Jetty-maven-plugin 配置

标签 java jetty datasource maven-3

我正在尝试运行简单的网络应用程序。我会让消息来源说明一切。

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>WelcomeSite</groupId>
    <artifactId>WelcomeSite</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.1.2.v20140210</version>
                <configuration>
                    <scanIntervalSeconds>5</scanIntervalSeconds>
                    <contextPath>/</contextPath>
                    <stopKey>STOP</stopKey>
                    <stopPort>8005</stopPort>
                    <jettyXml>src/main/webapp/WEB-INF/jetty-env.xml</jettyXml>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>9.1.0.RC2</version>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.3.174</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.2.7.SP1</version>
        </dependency>
        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1.2</version>
        </dependency>
    </dependencies>
</project>

jetty-env.xml

<?xml version="1.0"  encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">

<Configure id ="h2db" class="org.eclipse.jetty.webapp.WebAppContext">
    <New id="h2Datasource" class="org.eclipse.jetty.plus.jndi.Resource">

        <Arg>jdbc/h2db</Arg>
        <Arg>
            <New class="com.mchange.v2.c3p0.ComboPooledDataSource">
                <Set name="driverClass">org.h2.Driver</Set>
                <Set name="jdbcUrl">jdbc:h2:~/temp/testdb</Set>
                <Set name="username">sa</Set>
                <Set name="password"></Set>
            </New>
        </Arg>
    </New>
</Configure>

执行 mvn jetty:run 给我这个:

[INFO] --- jetty-maven-plugin:9.1.2.v20140210:run (default-cli) @ WelcomeSite ---
[INFO] Configuring Jetty for project: WelcomeSite
[INFO] webAppSourceDirectory not set. Trying src/main/webapp
[INFO] Reload Mechanic: automatic
[INFO] Classes = /home/esc/IdeaProjects/WelcomeSite/target/classes
[INFO] Configuring Jetty from xml configuration file = /home/esc/IdeaProjects/WelcomeSite/src/main/webapp/WEB-INF/jetty-env.xml
2014-03-05 12:58:22.762:WARN:oejx.XmlConfiguration:main: Config error at <New id="h2Datasource" class="org.eclipse.jetty.plus.jndi.Resource"><Arg>jdbc/h2db</Arg><Arg>|            <New class="com.mchange.v2.c3p0.ComboPooledDataSource"><Set name="driverClass">org.h2.Driver</Set><Set name="jdbcUrl">jdbc:h2:~/temp/testdb</Set><Set name="username">sa</Set><Set name="password"/></New>|        </Arg></New> java.lang.ClassNotFoundException: com.mchange.v2.c3p0.ComboPooledDataSource in file:/home/esc/IdeaProjects/WelcomeSite/src/main/webapp/WEB-INF/jetty-env.xml
[INFO] Jetty server exiting.

如何解决?我不明白为什么它看不到那个类?

最佳答案

添加 c3p0:c3p0:0.9.1.2 依赖作为 jetty-maven-plugin 的依赖。我认为应该这样做。我认为你需要它,是的——你有一个依赖项,将在你的 WAR 文件中,但另一方面,Jetty 服务器也需要它才能设置数据源。 (基本上,在将实际的 Web 应用程序部署到 Jetty 之前,您需要它,而您当前的设置不会发生这种情况)。

关于java - 用于数据源使用的 Jetty-maven-plugin 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22196215/

相关文章:

java - 如何响应单击 vaadin 中的表行

java - Spring Boot 多个配置文件数据源

java - 如何使用 Java 在 XML 文件中保存加密/散列密码

java - 如何使用 grep 从日志文件捕获 Java 异常,包括堆栈跟踪?

intellij-idea - 使用 IntelliJ 12 部署和调试远程 Jetty

java - Camel Jetty session 在部署到 JAR 时停止工作

java - 动态配置数据源

java - Spring Boot 2.0.0,在自动配置 jar 中找不到 DataSourceBuilder

java - 在线文档编辑器 - 我从哪里开始、从什么开始?

java - Maven 中的空闲堆大小不会增加