使用glass-fish部署项目时报资源无效:java.lang.RuntimeException: Invalid resource : myDataSource__pm

问题描述:

  在开发工具中部署运行构建生成的ear文件,与IDE一起工作的glassfish是没有问题的,然而当我试图将ear 单独部署在glassfish服务环境中,就出现无尽的噩梦了,

java.lang.RuntimeException: Invalid resource : myDatasource__pm 

       事实上我创建的数据源自始至终只有myDataSource 这一个JNDI,glassfish 似乎搞错了对象,后来想想,也许是它找不到myDatasource,所以尝试myDatasource__pm?

解决方法:

  将 resources.xml 文件中连接池jdbc资源复制到 glassfish-4.1glassfishdomainsdomain1configdomain.xml 

  

<jdbc-connection-pool datasource-classname="oracle.jdbc.pool.OracleDataSource" name="connectionPool" wrap-jdbc-objects="false" connection-validation-method="auto-commit" res-type="javax.sql.DataSource">
      <property name="URL" value="jdbc:oracle:thin:@localhost:1521:orcl"></property>
      <property name="User" value="user"></property>
      <property name="Password" value="123456"></property>
    </jdbc-connection-pool>
    <jdbc-resource pool-name="connectionPool" jndi-name="jdbc/myDatasource"></jdbc-resource>
 <resource-ref ref="jdbc/myDatasource"></resource-ref>

  随后重新启动glassfish,在localhost:4848中能够查看到刚才配置好的资源和连接池:

 

再次部署 ear,已经不是什么问题了

原文地址:https://www.cnblogs.com/hcklqy/p/13043821.html