Hoewel het antwoord van yilmazbahadirs werkt, is het geen echte oplossing. Dus ik zocht verder en vond de volgende blog:byte bohemian
Het resultaat is in wezen - je moet je gedeelde ADF-bibliotheken laden met de shared-classloader en ze niet alleen in de tomcat/lib-map plaatsen zoals de oude Oracle Blog-Posts zeggen. Ik heb nu eindelijk ADF in gebruik op een Tomcat8 - maar ook getest op 6 en 7 met de volgende procedure:
-
Maak een nieuwe map in uw tomcat-map (CATALINA_BASE) met de naam
shared-lib
. Bewerk het bestandconfig/catalina.properties
en zoek de regel met shared.loader=... Verander het in het volgende:shared.loader="${catalina.base}/shared-lib","${catalina.base}/shared-lib/*.jar","${catalina.home}/shared-lib","${catalina.home}/shared-lib/*.jar"
Dit zal Tomcat vertellen om deze bestanden te laden met een aparte class-loader en zal je problemen oplossen als alle gedeelde bibliotheken in die map staan. -
Download ADF-essentials ZIP en pak het uit naar
shared-lib
(je moet ze plat uitpakken!!! Dus alle JAR-bestanden van alle submappen zouden direct in de map moeten liggen zonder enige submappen) -
Implementeer uw ADF-toepassing met alle afhankelijke bibliotheken als een EAR-bestand en kopieer alle JAR-bestanden van het EAR-bestand naar de gedeelde lib-map.
-
Controleer op dubbele JAR's - log4j was er altijd in twee versies voor mij, als je dubbele JAR's vindt, bewaar dan gewoon de nieuwere.
-
Download GlassFish Server en kopieer de volgende bestanden van glassfish/modules naar de map 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
-
Voeg ojdbc7.jar toe aan
tomcat/lib
(NIET gedeelde-lib) -
Voeg de volgende omgevingsoptie toe aan Tomcat bij opstarten (bijv. in setenv.sh/setenv.bat):
CATALINA_OPTS=-Doracle.mds.cache=simple
-
(Optioneel) Als u
@PreDestroy
. wilt annotaties werken zonder fouten te veroorzaken en TomCat 7 of 8 te gebruiken, moet u een aangepaste luisteraar registreren, die voor deze annotaties zal zorgen, aangezien Oracle probeert toegang te krijgen tot de sessie in PreDestroy, terwijl Tomcat zich houdt aan dedommeofficiële standaard en maakte de sessie ongeldig voordat PreDestroy werd aangeroepen:U moet het volgende JAR-bestand (inclusief bron) kopiëren naar uwshared-lib
map:adf-predestroy-helper.jar en registreer het in deWEB_INF/web.xml
van elke ADF-toepassing als volgt:
<listener>
<listener-class>oracle.adf.PreDestroyHelper</listener-class>
</listener>
De PreDestroy-luisteraar is door mij geschreven en geeft OpenSource vrij onder CreativeCommons-licentie, dus je kunt het gebruiken zoals je wilt, maar ik zou graag wat feedback krijgen.
Ter referentie - Zo ziet mijn gedeelde lib-map eruit (160 bestanden):
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
En dit is de standaard tomcat/lib-map (25 bestanden):
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