Jakarta ee 嵌入JUnit用于EJB测试的Glassfish

Jakarta ee 嵌入JUnit用于EJB测试的Glassfish,jakarta-ee,jdbc,junit4,ejb-3.1,glassfish-embedded,Jakarta Ee,Jdbc,Junit4,Ejb 3.1,Glassfish Embedded,我遇到了一个我无法解决的大问题 我试图用JavaEE6和EJB编写一个小应用程序。我想用嵌入式EJBContainer和Glassfish设置测试环境 这个项目是通过Maven创建的,但是EJBContainer是由测试类本身启动的,因为我看到它比从Maven启动更容易、更常见 我根据src/test/GlassFish域文件夹中的一些文章创建了一个GlassFish域(在正确的结构中,见下文) 如果my domains.xml不包含我定义用于测试应用程序的JDBC资源,则GF embedded

我遇到了一个我无法解决的大问题

我试图用JavaEE6和EJB编写一个小应用程序。我想用嵌入式EJBContainer和Glassfish设置测试环境

这个项目是通过Maven创建的,但是EJBContainer是由测试类本身启动的,因为我看到它比从Maven启动更容易、更常见

我根据src/test/GlassFish域文件夹中的一些文章创建了一个GlassFish域(在正确的结构中,见下文)

如果my domains.xml不包含我定义用于测试应用程序的JDBC资源,则GF embedded将正确启动。但是当我定义所需的JDBC资源时,我得到了一个没有解释的NullPointerException

谁能告诉我,我做错了什么

域配置代码段:

 <resources>
    <!-- [...] -->
    <jdbc-resource pool-name="bookshelf" jdni-name="jdbc/bookshelf" />
    <jdbc-connection-pool driver-classname="" datasource-classname="org.apache.derby.jdbc.ClientDataSource" res-type="javax.sql.DataSource" description="" name="bookshelf">
      <property name="User" value="APP"></property>
      <property name="DatabaseName" value="bookshelf-db"></property>
      <property name="RetrieveMessageText" value="true"></property>
      <property name="Password" value="APP"></property>
      <property name="ServerName" value="localhost"></property>
      <property name="Ssl" value="off"></property>
      <property name="SecurityMechanism" value="4"></property>
      <property name="ConnectionAttributes" value=";create=true"></property>
      <property name="TraceFileAppend" value="false"></property>
      <property name="TraceLevel" value="-1"></property>
      <property name="PortNumber" value="1527"></property>
      <property name="LoginTimeout" value="0"></property>
    </jdbc-connection-pool>
  </resources>
  <servers>
    <server name="server" config-ref="server-config">
      <!-- [...] -->
      <resource-ref ref="jdbc/bookshelf" />
    </server>

glassfish文件夹必须有一个库

结构是这样的

lib
+install
++aplications
哪个有

jaxr-ra
jmsra
__cp_jdbc_ra
__dm_jdbc_ra
__ds_jdbc_ra
__xa_jdbc_ra

更新:我发现了第一个错误,一个配置错误(jdni vs jndi),但还有另一个问题:警告:RAR8035:创建jdbc连接池[bookshelf]时出现异常:,com.sun.appserv.connectors.internal.api.ConnectorRuntimeException:找不到模块的位置:u ds_jdbc_raHey,我也在与该错误作斗争,无法找到模块的位置。。。问题是放在测试文件夹中的glassfish文件夹结构错误。我有src/test/glassfish/lib/applications/\uuu ds\ujdbc\ura。我缺少lib下的install文件夹,所以正确的结构是src/test/glassfish/lib/install/applications/\uuu ds\u jdbc\u ra,它为我解决了这个问题。有时间我会尝试一下。谢谢你的提示。对不起,这是一个2年前的线程,我没有应用程序的来源了。这是一个游乐场项目,几个月前我迁移到新笔记本电脑时删除了它。不管怎样,谢谢你的回复。我也遇到了同样的问题,建议的解决方案对我有效。非常感谢。
jaxr-ra
jmsra
__cp_jdbc_ra
__dm_jdbc_ra
__ds_jdbc_ra
__xa_jdbc_ra