2016-06-15 3 views
1

Я пытался выяснить, как настроить NetBeans (v8.1) и TomEE + (v1.7.4) на доступ к данным с помощью EJB.Как настроить DataSource для TomEE +

Я слежу за The NetBeans E-commerce Tutorial (приложение Affable Bean), и я застрял на Accessing Data with EJBs. Сделали ли все изменения как учебное пособие и получили ошибку при запуске.

AffableBean журнала:

build-impl.xml:1045: The module has not been deployed. 
See the server log for details. 

Apache TomEE + 1.7.4 Log:

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. 

Мои коды для 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> 

Итак, мой вопрос в том, как я могу настроить DataSource/EJB в своей среде IDE, чтобы его можно было запускать на моем сервере? Независимо от учебника по электронной коммерции Netbeans.

EDITed: застрял на Accessing Data with EJBs.

ответ

1

Вы можете определить свой источник данных как глобальный источник данных (для всех webapps), определяющий файл $ TOMEE/conf/tomee.xml или определенный для вашего webapp файла $ WEBAPP/WEB-INF/resources.xml так же, как это

persistence.xml на WebAPP в SRC/META-INF реж источника

<?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> 

и данные определены в $ 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> 

см http://tomee.apache.org/datasource-config.html и http://tomee.apache.org/common-datasource-configurations.html

+0

благодарит за код и ссылки. Я буду тестировать позже. Учебник использует источники данных, определенные в $ WEBAPP/src/conf/persistence.xml. Знаете ли вы, что TomEE требует, чтобы он находился в $ WEBAPP/WEB-INF/resource.xml? – CarlosFMeneses

+0

Нет, TomEE не требует '$ WEBAPP/src/conf/persistence.xml', а не' $ WEBAPP/WEB-INF/resource.xml'. Они, безусловно, работают, но создают непереносимые файлы WAR. Поместите те же строки в файл '$ TOMEE/tomee.xml', и конфигурация будет жить в контейнере. –

+0

Здравствуйте @Leo. Некоторые играли с вашим предложением в файле resource.xml. Сбой сборки. Из журнала сервера: 'SEVERE: FAIL ... ProductFacade: Отсутствует необходимый persistence.xml для PersistenceContext ref" em "для единицы" AffableBeanPU "'. Предположим, что это необходимо в файле persistence.xml., По крайней мере для этого урока. Будут расследовать дальше и отчитаться, если я это выясню. Я ценю, что вы указываете мне в правильном направлении, хотя, спасибо! – CarlosFMeneses

Смежные вопросы