使用NetBeans 8.0.1忽略glassfish-resources.xml?

时间:2014-09-23 12:18:11

标签: java-ee netbeans glassfish

我刚刚将NetBeans 8.0.1和GlassFish 4.1用于2个与NetBeans 8.0和GlassFish 4.0配合良好的旧项目。

现在(使用NetBeans 8.0.1)在部署项目期间出现错误“tInvalid resource:jdbc / nameOfTheSource__pm”。

JDBC资源和连接池由glassfish-resources.xml定义(当我使用“创建持久单元”和“新数据源”选项定义新实体时由NetBeans生成)。

如果我通过命令add-resource of asadmin直接使用glassfish-resources,那么一切正常:创建了连接池和JDBC资源。所以这个问题不是来自这个文件。

就好像在部署期间忽略了glassfish-resources.xml一样。

有人有同样的问题(并有解释)?

我的环境: NetBeans 8.0.1, GlassFish 4.1, Java DB 10.10.1.2 - (1495037)(来自Java 8.0)。

相关问题:部署期间如何使用glassfish-resources?它不包含在EAR或WAR文件中。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

这是GlassFish的错误:https://netbeans.org/bugzilla/show_bug.cgi?id=243034

我通过@DatasourceDefinition而不是使用glassfish-resources.xml在应用程序中定义我的数据源,但它只是一种数据源的解决方法,而不是其他类型的资源。

答案 1 :(得分:0)

这是由于https://www.youtube.com/watch?v=Z7ufbRuG9gY&list=PLgCYzUzKIBE-G0tuxjKGkl_keIW2FFwKX造成的,但似乎他们没有。作为解决方案,我最终也完全放弃了glassfish-resources.xml并改用了@DataSourceDefinition注释。

我的配置为DataSourceBean.java使用了单独的@DataSourceDefinition文件:

@Singleton
@Startup
@DataSourceDefinition(name="java:global/jdbc/myDataSource",
    className="com.microsoft.sqlserver.jdbc.SQLServerDataSource",
    url="jdbc:sqlserver://127.0.0.1:1433;databaseName=myDB",
    user="myuser",
    password="mypassword"
)
public class DataSourceBean {
}

persistence.xml看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
             version="2.1">
    <persistence-unit name="myUnit" transaction-type="JTA">
        <jta-data-source>java:global/jdbc/myDataSource</jta-data-source>
        <properties>
            <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
        </properties>
    </persistence-unit>
</persistence>