2016-05-29 5 views
0

Я развертываю простое веб-приложение в WildFly 10 из NetBeans, чтобы попытаться научить себя Java EE. Тем не менее, я получаю следующее сообщение об ошибке при попытке запустить jpql запрос из NetBeans:javax.persistence.PersistenceException: Отсутствует поставщик Persistence для EntityManager с именем WebApplication1PU

javax.persistence.PersistenceException: No Persistence provider for EntityManager named WebApplication1PU 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:85) 

И это несмотря на то, что я определила поставщика сохраняемости. Это мой persistence.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.1" 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"> 
    <persistence-unit name="WebApplication1PU" transaction-type="JTA"> 
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> 
    <jta-data-source>java:/jboss/db</jta-data-source> 
    <exclude-unlisted-classes>false</exclude-unlisted-classes> 
    <properties> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServer2012Dialect"/> 
     <property name="hibernate.show_sql" value="true"/> 
    </properties> 
    </persistence-unit> 
</persistence>  

Когда я проверить мой источник данных в WildFly это работает:

enter image description here

Мой JPA Подсистема по умолчанию источник данных сконфигурирован как Java:/JBoss/дб

I указали ли он в качестве единицы сохранения в WildFly:

enter image description here

Я использую драйвер JTDS для MS SQL Server и я получаю эту ошибку при запуске сервера, что я не могу избавиться от:

10:33:07,600 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 33) WFLYCTL0013: Operation ("add") failed - address: ([ 
    ("subsystem" => "datasources"), 
    ("jdbc-driver" => "JTDS") 
]) - failure description: "WFLYJCA0041: Failed to load module for driver [net.sourceforge.jtds]" 

Однако, как я уже говорил, тестирование источника данных работ, так что это не имеет значения. Может кто-нибудь мне помочь?

+1

ошибки, что она не может найти/загрузить драйвер MS SQL. Кажется, что вы используете JTDS. Вы можете проверить этот пост и его решение: https://stackoverflow.com/questions/20190703/jtds-module-under-wildfly-jboss – Korgen

ответ

1

В качестве комментария упоминалось, это говорит Wildfly не может найти модуль провайдера.

Загрузить: https://sourceforge.net/projects/jtds/files/jtds/1.3.1/jtds-1.3.1-dist.zip/download - который является драйвером JDBC jtds, и устанавливает его в каталог/modules wildfly.

Вы можете запустить ./jboss-cli.sh для установки модулей.

JTDS module under WildFly (JBoss) Дайте немного больше информации об этом.

Этот URL: http://www.mastertheboss.com/jboss-server/jboss-datasource/configuring-a-datasource-with-postgresql-and-jboss-wildfly

Имеет как установить Postgres драйвер JDBC в wildfly, но это эффективно и тот же процесс для других драйверов JDBC, просто упаковать изменение названия и т.д. указана

+0

Я исправил эту небольшую ошибку, которую я получал, но теперь я получаю 'javax.persistence.PersistenceException: No Поставщик устойчивости для EntityManager с именем WebApplication1PU \t at javax.persistence.Persistence.createEntityManagerFactory (Persistence.java:85) 'пытается выполнить запросы JPQL. Мой менеджер по сохранению, кажется, развертывает, но моя война отмечена как не постоянная. – Ben

+0

Я только начал с нуля, чтобы попытаться заставить его работать, и теперь я попадаю в окно запроса JPQL: 'java.lang.Исключение: вам нужно указать соединение с базой данных или источник данных в файле persistence.xml. Я сделал это, и я очистил и построил файл persistence.xml с правильным источником данных в NetBeans и развернул его. Я могу видеть блок персистентности в WildFly и мой тест на источник данных, но мое .war-развертывание отмечено как не постоянное. – Ben

+0

Ваше местонахождение содержит должно быть/META-INF/проверить, что ваш источник данных привязан к тому же jndi – VeenarM

-1

В живучесть-свойствах объекта вы пропускаете следующий

 <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/mydb"/> 
     <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/> 
     <property name="hibernate.connection.username" value="dbroot"/> 
     <property name="hibernate.connection.password" value="password"/> 
+0

Он делает поиск JNDI на источнике данных, определенном в WildFly, поэтому он не нуждается эти настройки. – Korgen

+0

больше за хранение вашего пользователя/паролей в файлах, которые развертываются с вашим приложением, является проблемой безопасности, и ее всегда следует избегать. – VeenarM

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