Java 如何为TomEE&x2B;

Java 如何为TomEE&x2B;,java,netbeans,ejb,mariadb,apache-tomee,Java,Netbeans,Ejb,Mariadb,Apache Tomee,我一直在试图弄清楚如何设置NetBeans(v8.1)和TomEE+(v1.7.4)来使用EJB访问数据 我一直在跟踪(和蔼可亲的Bean应用程序),我一直坚持下去。按照教程的说明进行了所有编辑,并在运行时出错 亲和豆日志: build-impl.xml:1045: The module has not been deployed. See the server log for details. Apache TomEE+1.7.4日志: Jun 15, 2016 8:26:14 AM org

我一直在试图弄清楚如何设置NetBeans(v8.1)和TomEE+(v1.7.4)来使用EJB访问数据

我一直在跟踪(和蔼可亲的Bean应用程序),我一直坚持下去。按照教程的说明进行了所有编辑,并在运行时出错

亲和豆日志:

build-impl.xml:1045: The module has not been deployed.
See the server log for details.
Apache TomEE+1.7.4日志:

Jun 15, 2016 8:26:14 AM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet ControllerServlet as unavailable
Jun 15, 2016 8:26:14 AM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet [ControllerServlet] in web application [/AffableBean] threw load() exception
javax.naming.NameNotFoundException: Name [controller.ControllerServlet/categoryFacade] is not bound in this Context. Unable to find [controller.ControllerServlet].
Apache TomEE+1.7.4:

INFO: Configuring PersistenceUnit(name=AffableBeanPU)
Jun 15, 2016 8:26:11 AM org.apache.openejb.config.AutoConfig deploy
WARNING: Found matching datasource: web/connpool but this one is not a JTA datasource
Jun 15, 2016 8:26:11 AM org.apache.openejb.config.AutoConfig deploy
WARNING: Found matching datasource: web/connpool but this one is not a JTA datasource
Jun 15, 2016 8:26:11 AM org.apache.tomee.catalina.TomcatWebAppBuilder startInternal
SEVERE: Unable to deploy collapsed ear in war StandardEngine[Catalina].StandardHost[localhost].StandardContext[/AffableBean]
org.apache.openejb.OpenEJBException: PeristenceUnit AffableBeanPU <jta-data-source> points to a non jta managed Resource.  Update Resource "connpool" to "JtaManaged=true", use a different Resource, or delete the <jta-data-source> element and a default will be supplied if possible.
INFO:配置PersistenceUnit(name=afablebeanpu)
2016年6月15日上午8:26:11 org.apache.openejb.config.AutoConfig部署
警告:找到匹配的数据源:web/connpool,但此数据源不是JTA数据源
2016年6月15日上午8:26:11 org.apache.openejb.config.AutoConfig部署
警告:找到匹配的数据源:web/connpool,但此数据源不是JTA数据源
2016年6月15日上午8:26:11 org.apache.tomee.catalina.TomcatWebAppBuilder startInternal
严重:无法在war中部署崩溃的ear标准引擎[Catalina]。标准主机[localhost]。标准上下文[/AffableBean]
org.apache.openejb.OpenEJBException:PeristenceUnit AffableBeanPU指向非jta管理的资源。将资源“connpool”更新为“jtmanaged=true”,使用其他资源,或删除元素,如果可能,将提供默认值。
我的persistence.xml代码与教程一致,即:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
  <persistence-unit name="AffableBeanPU" transaction-type="JTA">
    <jta-data-source>connpool</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties/>
        <property name="eclipselink.logging.level" value="FINEST"/>
  </persistence-unit>
</persistence>

康普
假的
所以我的问题是,如何在IDE中设置DataSource/EJB,以便它可以在我的服务器上运行?无需理会Netbeans电子商务教程


已编辑:坚持使用。

您可以将数据源定义为全局数据源(适用于所有WEB应用程序),在$TOMEE/conf/TOMEE.xml文件中定义,或在$webapp/WEB-INF/resources.xml文件中特定于您的WEB应用程序,如下所示

webapp的src/META-INF目录中的persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence
    version="2.0"
    xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="xyz">
        <jta-data-source>xyz</jta-data-source>
        <properties>
            <property
                name="openjpa.jdbc.DBDictionary"
                value="org.apache.openjpa.jdbc.sql.OracleDictionary" />
            <property
                name="openjpa.jdbc.DBDictionary"
                value="oracle(maxEmbeddedBlobSize=-1,maxEmbeddedClobSize=-1)" />
            <property
                name="openjpa.jdbc.SynchronizeMappings"
                value="buildSchema(ForeignKeys=true)" />
        </properties>
    </persistence-unit>
</persistence>

xyz
以及在$WEBAPP/WEB-INF/resource.xml中定义的数据源

<?xml version="1.0" encoding="UTF-8"?>
<tomee>
    <Resource
        id="xyz"
        type="DataSource">
        JdbcDriver oracle.jdbc.OracleDriver
        JdbcUrl jdbc:oracle:thin:@localhost:1521:XE
        UserName myuser
        Password mypass
        JtaManaged true
        TestOnBorrow false
        MaxActive 20        
    </Resource>    
</tomee>

JdbcDriver oracle.jdbc.OracleDriver
JdbcUrl jdbc:oracle:thin:@localhost:1521:XE
用户名myuser
密码mypass
真的吗
TESTONBROW false
MaxActive 20

请参阅和

谢谢您提供的代码和链接。我稍后会测试。本教程使用$WEBAPP/src/conf/persistence.xml中定义的数据源。您知道TomEE是否要求它位于$WEBAPP/WEB-INF/resource.xml中吗?不,TomEE不需要
$WEBAPP/src/conf/persistence.xml
$WEBAPP/WEB-INF/resource.xml
。这些当然有效,但会创建不可移植的WAR文件。在
$TOMEE/TOMEE.xml
文件中放入相同的行,配置将保存在容器中。Hello@Leo。在resource.xml文件中对您的建议进行了一些修改。生成失败。从服务器日志:
严重:失败。。。ProductFacade:缺少PersistenceContext引用“em”到单元“AffableBeanPU”所需的persistence.xml
。至少在本教程中,persistence.xml文件中需要它。我会进一步调查并报告,如果我发现的话。我很感激你给我指出了正确的方向,所以谢谢!你好@JonathanS.Fisher。谢谢你的回复。根据教程的设置方式,按照您的建议将其放在容器中有什么好处?我想还有一件事需要研究。当你在不同的环境(桌面、开发、质量控制、测试、产品)之间移动应用程序时,你的数据库主机名可能会改变。将其放在环境中而不是应用程序中可以使部署更加容易