Jasper Reports-Ausnahme "Paket net.sf.jasperreports.engine ist nicht vorhanden" in JDeveloper 11.1 mit WebLogic nur in der EAR-Webseite

Ich verwende JDeveloper 11.1, Oracle 11 und TIBCO JasperReports 6.0.1.

Ich habe Probleme beim Versuch, Jasper-Berichte von meiner Webseite (ViewController) zu generieren, während ich ein ApplicationModule (Model - EJB) dafür verwende. Am Ende muss die PDF-Datei per E-Mail gesendet werden, deshalb lasse ich sie in das Model-Projekt.

Wenn ich das ApplicationModule ausführe, funktioniert es einwandfrei, ohne Ausnahmen, das PDF wird sehr gut generiert und gesendet.

Wenn ich jedoch die Client-Methode seit einer Webseite ausführe, erhalte ich diese Ausnahme:

net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file:
C:\Users\rodmar\AppData\Roaming\JDeveloper\system11.1.1.7.40.64.93\DefaultDomain\Simple_Blue_1429546047623_56582.java:4: package net.sf.jasperreports.engine does not exist
import net.sf.jasperreports.engine.*;
^
C:\Users\rodmar\AppData\Roaming\JDeveloper\system11.1.1.7.40.64.93\DefaultDomain\Simple_Blue_1429546047623_56582.java:5: package net.sf.jasperreports.engine.fill does not exist
import net.sf.jasperreports.engine.fill.*;
^
C:\Users\rodmar\AppData\Roaming\JDeveloper\system11.1.1.7.40.64.93\DefaultDomain\Simple_Blue_1429546047623_56582.java:18: cannot find symbol
symbol: class JREvaluator
public class Simple_Blue_1429546047623_56582 extends JREvaluator
                                                     ^
C:\Users\rodmar\AppData\Roaming\JDeveloper\system11.1.1.7.40.64.93\DefaultDomain\Simple_Blue_1429546047623_56582.java:25: cannot find symbol
symbol  : class JRFillParameter
location: class Simple_Blue_1429546047623_56582
    private JRFillParameter parameter_REPORT_LOCALE = null;
            ^
C:\Users\rodmar\AppData\Roaming\JDeveloper\system11.1.1.7.40.64.93\DefaultDomain\Simple_Blue_1429546047623_56582.java:26: cannot find symbol
symbol  : class JRFillParameter
location: class Simple_Blue_1429546047623_56582
    private JRFillParameter parameter_Description = null;
            ^
C:\Users\rodmar\AppData\Roaming\JDeveloper\system11.1.1.7.40.64.93\DefaultDomain\Simple_Blue_1429546047623_56582.java:27: cannot find symbol
symbol  : class JRFillParameter
location: class Simple_Blue_1429546047623_56582
    private JRFillParameter parameter_JASPER_REPORT = null;
            ^
C:\Users\rodmar\AppData\Roaming\JDeveloper\system11.1.1.7.40.64.93\DefaultDomain\Simple_Blue_1429546047623_56582.java:28: cannot find symbol
symbol  : class JRFillParameter
location: class Simple_Blue_1429546047623_56582
    private JRFillParameter parameter_REPORT_VIRTUALIZER = null;
            ^

Ich füge nur ein Fragment ein.

Ich verwende andere .jars als POI, um .xlsx-Dateien zu lesen und dann in die Datenbank einzufügen, damit ich nicht weiß, warum ich problemlos auf POI zugreifen kann, aber gleichzeitig keine Jasper-Berichte zur Verfügung habe.

Ich habe bereits nach Lösungen im Web gesucht, aber nichts löst meine Probleme. Ich bekomme Informationen über jdt-compiler aber ich finde es nicht in JasperReports Suite. Mein Projekt ist wirklich ein Chaos mit all diesen Bibliotheken, vielleicht fehle ich oder füge ich zu viele hinzu?

Mein EAR-Projekt sieht im Moment so aus:

The EAR \ lib:

Dies ist eine Art Problem für die Einstellungen von Gläsern oder so ähnlich. Ich hatte diese Seite bereits gefunden, aber es ist wirklich seltsam. Ich glaube nicht, dass mein Problem so kompliziert ist.

http: //docs.oracle.com/cd/E25178_01/fusionapps.1111/e15524/adv_wls_e.ht

EDIT 1:

Ich habe versucht, mit folgendem Code auf meinen Klassenpfad zuzugreifen:

ClassLoader cl = ClassLoader.getSystemClassLoader();
URL[] urls = ((URLClassLoader)cl).getURLs();
for (URL url: urls) {
    logger.info(String.format("Classpath: %s.", url.toString()));
}

Und ich bekomme diese Ausgabe. POI ist nicht hier, aber warum, ich benutze es ohne Probleme, obwohl ich JasperReports nicht verwenden kann?

1) Wird POI.jar standardmäßig in der Grundinstallation von WebLogic 10.3 verwendet?NEI

EDIT 2:

Ich habe das in @ entdec WebLogic ist notwendig um auf @ zuzugreif weblogic.utils.classloaders.GenericClassLoader sendet mir alle Bibliotheken, die zu dieser EAR-Anwendung gehören. Damit sind Jasper Reports verfügbar, aber ich weiß nicht, wie ich erfolgreich darauf zugreifen soll ...

GenericClassLoader jre = (GenericClassLoader) JREvaluator.class.getClassLoader();
logger.info(String.format("jre: %s, s.", jre, jre.getClassPath()));

Vielen Dank

Antworten auf die Frage(6)

Ihre Antwort auf die Frage