Наконец, после большой работы я установил соединение 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
- JNP-client.jar
- JBoss-client.jar
- jbossall-client.jar
- драйвер базы данных в моем случае ojdbc.jar (для оракула)
- JBoss-ejb3x.jar
10) устанавливает ваши jndi.properties и помещает их в jar hibernate-entitymanager.jar
11) Теперь запустите jboss, перейдите в ireport и создайте соединение ejql, в имени модуля постоянства задается имя, которое помещается в файл persistence.xml файла jar, расположенного в установочном каталоге Jaspersoft \ iReport-3.7.2 \ ireport \ libs, в данном случае имя единицы сохраняемости - "пример" без кавычек
Я надеюсь, что это поможет кому-то или кому-то, я думаю, это довольно сложно, и извините за мой английский, это не мой родной язык