Как установить jdni.properties на ireport - PullRequest
0 голосов
/ 12 июля 2010

7.2 с подключением ejbql моя проблема заключается в том, что при тестировании подключения происходит сбой, поскольку не удалось найти источник данных, в журнале говорится:

Причина: org.hibernate.HibernateException: Не удалось найти источник данных

Причина: javax.naming.NoInitialContextException: необходимо указать имя класса в свойстве среды или системы, либо в качестве параметра апплета, либо в файле ресурсов приложения: java.naming.factory.initial

Я думаю, что это могут быть jndi.properties, которые находятся не в том каталоге, я пытался положить в java_home / lib, но не работает

1 Ответ

2 голосов
/ 14 июля 2010

Наконец, после большой работы я установил соединение ejbql с ireport. Выполните следующие шаги, чтобы сделать это!

1) Я использую jboss 4.2.3, поэтому, если вы используете glashfish или другой сервер, найдите библиотеки, которые соответствуют jboss, который я использую

2) Вам необходимо найти в вашем сервере каталогов jboss / default / lib следующие библиотеки:

  • hibernate3.jar
  • зимуют-entitymanager.jar
  • JBoss-common.jar
  • зимуют-annotations.jar
  • ejb3-persistence.jar
  • jboss.jar

3) скопируйте ранее названные библиотеки и скопируйте каталог установки ireport по этому пути \ Jaspersoft \ iReport-3.7.2 \ ireport \ modules \ ext и замените его; обратите внимание, что библиотека вызывает hibernate-common-annotation и jpa. банку нужно стереть с этого пути. Это необходимо сделать, потому что эта библиотека создает конфликты с hibernate-annotations и ejb3-persistence.jar.

4) получите jar вашего проекта и скопируйте его в ваш в этом примере, например, example-core.jar, в каталог установки по пути \ Jaspersoft \ iReport-3.7.2 \ ireport \ libs

5) измените jar файла persistence.xml вашего проекта (в нашем случае «example.jar») и задайте следующие свойства,

<?xml version="1.0" encoding="UTF-8"?><br> <persistence 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_1_0.xsd"<br> version="1.0"><br> <persistence-unit name="example" transaction-type="RESOURCE_LOCAL"><br> <provider>org.hibernate.ejb.HibernatePersistence</provider><br> <non-jta-data-source>/jdbc/example</non-jta-data-source><br> <properties><br> <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/><br> <property name="hibernate.hbm2ddl.auto" value="update"/><br> <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9Dialect"/><br> </properties><br> </persistence-unit><br> </persistence>

6) Зайдите в ireport и добавьте библиотеки в classpath, в инструментах, опции на вкладке classpath

7) перейдите в каталог установки ireport по пути Jaspersoft \ iReport3.7.2 \ ireport \ modules, откройте jar с именем com-jaspersoft-ireport с помощью winrar или другого инструмента и перейдите в META-INF / MANIFEST.INF в часть Class-Path изменяет имя библиотеки "hibernate-common-annotation.jar" (повторно вы стираете эту библиотеку) для "hibernate-annotations.jar"

8) Перейдите в Jboss_home / server / default / deploy и измените источник данных xml вашего проекта и поместите эту конфигурацию (переименуйте в этом примере проект под названием «пример», а источник данных должен называться example-ds.xml )

<datasources><br> <local-tx-datasource><br> <jndi-name>jdbc/example</jndi-name><br> <use-java-context>false</use-java-context><br> <connection-url>jdbc:oracle:thin:@localhost:1521:XE</connection-url><br> <driver-class>oracle.jdbc.driver.OracleDriver</driver-class><br> <user-name>example</user-name><br> <password>example</password><br> <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name><br> <metadata><br> <type-mapping>Oracle9i</type-mapping><br> </metadata><br> </local-tx-datasource><br> </datasources>

Обратите внимание, что свойство usa-java-context в значении false позволяет вам получить доступ к источнику данных вне jboss в нашем случае из ireport

9) перейдите в ireport и добавьте следующие библиотеки в путь к классу ireport

  1. JNP-client.jar
  2. JBoss-client.jar
  3. jbossall-client.jar
  4. драйвер базы данных в моем случае ojdbc.jar (для оракула)
  5. JBoss-ejb3x.jar

10) устанавливает ваши jndi.properties и помещает их в jar hibernate-entitymanager.jar

11) Теперь запустите jboss, перейдите в ireport и создайте соединение ejql, в имени модуля постоянства задается имя, которое помещается в файл persistence.xml файла jar, расположенного в установочном каталоге Jaspersoft \ iReport-3.7.2 \ ireport \ libs, в данном случае имя единицы сохраняемости - "пример" без кавычек

Я надеюсь, что это поможет кому-то или кому-то, я думаю, это довольно сложно, и извините за мой английский, это не мой родной язык

...