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

标签 java maven jdbc netbeans glassfish

当我部署使用 JDBC 连接池JNDI 以及 Netbeans 的 Web 应用程序时,这两者都会在 Glassfish< 中自动创建/strong>.

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

错误

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

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

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

注意

我使用的服务器: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>

另请参阅

关于java - 使用 Maven 的 Web 应用程序不会在 Glassfish 中自动创建连接池和 JNDI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39117377/

相关文章:

java - 关于服务器中的 JDBC 连接

java-如何检查JSP页面中是否存在值?

java - 方法可以调用它自己的类吗?

Java Socket/Serversocket WAN 连接

java - 在新窗口中弹出警报

java - 自定义规则,规定不能有以字符串 "master-"开头的项目版本或依赖项版本

java - 如何在 Maven 构建中访问包保护类?

java - 这段代码不是线程安全的吗?

java - 桌面 GUI 工具,用于浏览新的 jar 并将其安装到本地 Maven 仓库

java - 结果集分页