使用 Maven 的 Web 应用程序不会在 Glassfish 中自动创建连接池和 JNDI

Web Application with Maven not create connection pool and JNDI automaticly in Glassfish

当我部署我的 Web 应用程序时 使用 JDBC 连接池 JNDI Netbeans,这两个都是在 Glassfish.

中自动创建的

当我使用 Maven 创建相同的应用程序时, JDBC 连接池和 JNDI 不会自动创建 并显示我这个错误:

错误

Grave: Exception while preparing the app : Invalid resource : moduleJNDI__pm
java.lang.RuntimeException: Invalid resource : moduleJNDI__pm

我知道这个错误的解决方法,我只是手动创建 JNDI

我的问题是:是否有任何解决方案或配置可以像普通应用程序一样在服务器 Glassfish 中自动创建 JNDI,或者这是 Maven 的问题。

N.B

我使用服务器:Glassfish 3.1.2.2Netbeans 8.1

谢谢。

创建一个 glassfish-resources.xml 文件来定义您的数据库连接,并确保它最终位于您的 WEB-INF 文件夹中。你可以把它作为一个静态文件放在那里,但在我从事的大多数项目中,我需要在开发中使用不同的连接。您可以使用 Maven WAR plugin 来处理它(将其作为可过滤资源处理)。例如,在 /src/main/resources_WEB-INF 的项目中创建 glassfish-resources.xml。现在您可以在构建项目时将其放入 WEB-INF 文件夹中。请参阅此 pom.xml 片段:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>2.6</version>
      <configuration>
        <failOnMissingWebXml>false</failOnMissingWebXml>
        <webResources>
          <resource>
            <directory>${basedir}/src/main/resources_WEB-INF</directory>
            <filtering>true</filtering>
            <targetPath>WEB-INF</targetPath>
          </resource>
        </webResources>
      </configuration>
    </plugin>
  </plugins>
</build>

另见