Obwohl yilmazbahadirs Antwort funktioniert - es ist keine wirkliche Lösung. Also habe ich weiter gesucht und folgenden Blog gefunden:byte bohemian
Das Ergebnis ist im Wesentlichen - Sie müssen Ihre gemeinsam genutzten ADF-Bibliotheken mit dem Shared-Classloader laden und nicht einfach in den Ordner tomcat/lib legen, wie die alten Oracle-Blog-Posts sagen. Ich habe jetzt endlich ADF auf einem Tomcat8 zum Laufen gebracht - aber auch auf 6 und 7 mit folgendem Verfahren getestet:
-
Erstellen Sie einen neuen Ordner in Ihrem Tomcat-Verzeichnis (CATALINA_BASE) mit dem Namen
shared-lib
. Bearbeiten Sie die Dateiconfig/catalina.properties
und suchen Sie die Zeile mit shared.loader=... Ändern Sie sie wie folgt:shared.loader="${catalina.base}/shared-lib","${catalina.base}/shared-lib/*.jar","${catalina.home}/shared-lib","${catalina.home}/shared-lib/*.jar"
Dies weist Tomcat an, diese Dateien mit einem separaten Klassenladeprogramm zu laden, und behebt Ihre Probleme, wenn sich alle gemeinsam genutzten Bibliotheken in diesem Ordner befinden. -
Laden Sie ADF-essentials ZIP herunter und entpacken Sie es nach
shared-lib
(man muss sie flach entpacken!!! Also sollten alle JAR-Dateien aus allen Unterverzeichnissen direkt im Ordner ohne Unterverzeichnisse liegen) -
Stellen Sie Ihre ADF-Anwendung mit allen abhängigen Bibliotheken als EAR-Datei bereit und kopieren Sie alle JAR-Dateien aus der EAR-Datei in den Shared-Lib-Ordner.
-
Auf doppelte JARs prüfen - log4j war für mich immer in zwei Versionen vorhanden, wenn Sie Duplikate finden, behalten Sie einfach die neuere.
-
Laden Sie GlassFish Server herunter und kopieren Sie die folgenden Dateien von glassfish/modules in den Ordner shared-lib:
bean-validator.jar javax.mail-1.4.4.jar javax.servlet.jsp.jstl.jar javax.servlet.jsp.jstl-api.jar javax.transaction.jar
-
Fügen Sie ojdbc7.jar zu
tomcat/lib
hinzu (NICHT shared-lib) -
Fügen Sie Tomcat beim Start die folgende Umgebungsoption hinzu (z. B. in setenv.sh/setenv.bat):
CATALINA_OPTS=-Doracle.mds.cache=simple
-
(Optional) Wenn Sie möchten
@PreDestroy
Damit Annotationen fehlerfrei funktionieren und TomCat 7 oder 8 verwendet wird, müssen Sie einen benutzerdefinierten Listener registrieren, der sich um diese Annotationen kümmert, da Oracle versucht, auf die Sitzung in PreDestroy zuzugreifen, während Tomcat an derdummenoffizieller Standard und hat die Sitzung ungültig gemacht, bevor Sie PreDestroy aufrufen:Sie müssen die folgende JAR-Datei (Quelle enthalten) in Ihreshared-lib
kopieren Ordner:adf-predestroy-helper.jar und registrieren Sie es in derWEB_INF/web.xml
jeder ADF-Anwendung so:
<listener>
<listener-class>oracle.adf.PreDestroyHelper</listener-class>
</listener>
Der PreDestroy-Listener wurde von mir geschrieben und veröffentlicht OpenSource unter der CreativeCommons-Lizenz, sodass Sie ihn verwenden können, wie Sie möchten, aber ich würde mich über ein Feedback freuen.
Als Referenz – So sieht mein Shared-Lib-Ordner aus (160 Dateien):
adf-businesseditor-model.jar
adf-businesseditor-objects.jar
adf-businesseditor-settings.jar
adf-controller-api.jar
adf-controller-rt-common.jar
adf-controller-schema.jar
adf-controller-security.jar
adf-controller.jar
adf-customizationset-ui.jar
adf-dt-at-rt-wizards.jar
adf-dt-at-rt.jar
adf-dynamic-faces.jar
adf-faces-changemanager-rt.jar
adf-faces-databinding-dt-core.jar
adf-faces-databinding-rt.jar
adf-faces-registration.jar
adf-faces-templating-dt-core.jar
adf-faces-templating-dtrt.jar
adf-loc.jar
adf-mobile-schema.jar
adf-pageflow-dtrt.jar
adf-pageflow-fwk.jar
adf-pageflow-impl.jar
adf-pageflow-rc.jar
adf-predestroy-helper.jar
adf-richclient-api-11.jar
adf-richclient-automation-11.jar
adf-richclient-bootstrap.jar
adf-richclient-impl-11.jar
adf-richclient-jmx.jar
adf-richclient-skin-editor.jar
adf-richclient-skin-repository.jar
adf-sec-idm-dc.jar
adf-share-base.jar
adf-share-ca.jar
adf-share-glassfish.jar
adf-share-security.jar
adf-share-support.jar
adf-share-web.jar
adf-stringeditor-api.jar
adf-view-databinding-dt-core.jar
adf-view-unified-databinding-dt-core.jar
adf.constants.jar
adfbcsvc-client.jar
adfbcsvc-registration.jar
adfbcsvc-share.jar
adfbcsvc.jar
adfdt_common.jar
adflibfilter.jar
adflibrary.jar
adflogginghandler.jar
adfm-debugger.jar
adfm-sqldc.jar
adfm.jar
adfmportlet.jar
adfmweb.jar
adfsharembean.jar
adftags.jar
adftransactionsdt.jar
batik-anim.jar
batik-awt-util.jar
batik-bridge.jar
batik-codec.jar
batik-css.jar
batik-dom.jar
batik-ext.jar
batik-extension.jar
batik-gui-util.jar
batik-gvt.jar
batik-parser.jar
batik-script.jar
batik-svg-dom.jar
batik-svggen.jar
batik-swing.jar
batik-transcoder.jar
batik-util.jar
batik-xml.jar
bc4j-mbeans.jar
bc4jhtml.jar
bc4jimdomains.jar
bc4jsyscat.jar
bean-validator.jar
bundleresolver.jar
com.bea.core.apache.commons.collections_1.0.0.0_3-2.jar
com.oracle.classloader.pcl_12.1.3.jar
com.oracle.http_client.http_client_12.1.3.jar
com.oracle.jrf.j2ee.web-common-schemas_12.1.3.jar
com.oracle.ojsp.globaltldcache_12.1.3.jar
com.oracle.ojsp.ojsp_12.1.3.jar
com.oracle.ojsp.web-common_12.1.3.jar
com.oracle.webservices.fmw.oc4j-ws-support-impl_12.1.3.jar
commons-el.jar
datatags.jar
db-ca.jar
dms.jar
dvt-as.jar
dvt-basemaps.jar
dvt-databinding-dt-core.jar
dvt-databindings-mds.jar
dvt-databindings.jar
dvt-faces.jar
dvt-facesbindings.jar
dvt-jclient-adf.jar
dvt-jclient.jar
dvt-shared-js.jar
dvt-trinidad.jar
dvt-utils.jar
facesconfigmodel.jar
groovy-all-2.1.6.jar
inspect4.jar
javamodel-rt.jar
javatools-nodeps.jar
javax.mail-1.4.4.jar
javax.servlet.jsp.jstl-api.jar
javax.servlet.jsp.jstl.jar
javax.transaction.jar
jdev-cm.jar
jewt4.jar
jmxdc.jar
jr_dav.jar
jrf-api.jar
jsf-api.jar
jsf-impl.jar
jsp-el-api.jar
mds-dc.jar
mdsrt.jar
mobile-repository.jar
oicons.jar
ojdbc6dms.jar
ojdl.jar
ojdl2.jar
oracle-el.jar
oracle.logging-utils_12.1.3.jar
oracle.xdb_12.1.0.jar
oraclexsql.jar
orai18n-mapping.jar
ordhttp.jar
ordim.jar
org.apache.bcel_5.1.jar
org.apache.commons.beanutils_1.8.3.jar
org.apache.commons.logging_1.1.1.jar
org.apache.http.components.httpclient-4.1.2.jar
org.apache.http.components.httpclient-cache-4.1.2.jar
org.apache.http.components.httpcore-4.1.2.jar
org.apache.http.components.httpmime-4.1.2.jar
prefuse.jar
rcs-adflib-rt.jar
rcsrt.jar
regexp.jar
resourcebundle.jar
share.jar
taglib.jar
trinidad-api.jar
trinidad-impl.jar
velocity-dep-1.4.jar
weld-integration.jar
xml-apis-ext.jar
xmlef.jar
xmlparserv2_sans_jaxp_services.jar
xsqlserializers.jar
Und dies ist der standardmäßige tomcat/lib-Ordner (25 Dateien):
annotations-api.jar
catalina-ant.jar
catalina-ha.jar
catalina-storeconfig.jar
catalina-tribes.jar
catalina.jar
ecj-4.4.2.jar
el-api.jar
jasper-el.jar
jasper.jar
jsp-api.jar
ojdbc7.jar
servlet-api.jar
tomcat-api.jar
tomcat-coyote.jar
tomcat-dbcp.jar
tomcat-i18n-es.jar
tomcat-i18n-fr.jar
tomcat-i18n-ja.jar
tomcat-jdbc.jar
tomcat-jni.jar
tomcat-util-scan.jar
tomcat-util.jar
tomcat-websocket.jar
websocket-api.jar