Въпреки че отговорът на yilmazbahadirs работи - това не е истинско решение. Така че потърсих по-нататък и намерих следния блог:byte bohemian
Резултатът е по същество - трябва да заредите вашите споделени ADF-библиотеки от споделеното зареждане на класове, а не просто да ги поставите в папката tomcat/lib, както казват старите блогове на Oracle. Сега най-накрая стартирах ADF на Tomcat8 - но също така тествах на 6 и 7 със следната процедура:
-
Създайте нова папка във вашата Tomcat директория (CATALINA_BASE), наречена
shared-lib
. Редактирайте файлаconfig/catalina.properties
и потърсете реда с shared.loader=... Променете го на следното:shared.loader="${catalina.base}/shared-lib","${catalina.base}/shared-lib/*.jar","${catalina.home}/shared-lib","${catalina.home}/shared-lib/*.jar"
Това ще каже на Tomcat да зареди тези файлове с отделен зареждане на класове и ще реши проблемите ви, когато всички споделени библиотеки са в тази папка. -
Изтеглете ADF-essentials ZIP и го разопаковайте в
shared-lib
(трябва да ги разопаковате плоски!!! Така че всички JAR файлове от всички поддиректории трябва да лежат директно в папката без никакви поддиректории) -
Разположете вашето ADF-приложение с всички зависими библиотеки като EAR файл и копирайте всички JAR файлове от EAR файла в папката споделена библиотека.
-
Проверете за дублиращи се JAR файлове - log4j винаги беше там в две версии за мен, ако намерите дубликати, просто запазете по-новата.
-
Изтеглете GlassFish Server и копирайте следните файлове от glassfish/modules в папката 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
-
Добавете ojdbc7.jar към
tomcat/lib
(НЕ споделена библиотека) -
Добавете следната опция за среда към Tomcat при стартиране (напр. в setenv.sh/setenv.bat):
CATALINA_OPTS=-Doracle.mds.cache=simple
-
(По избор) Ако искате
@PreDestroy
анотациите, за да работят без повдигане на грешки и да използвате TomCat 7 или 8, трябва да регистрирате персонализиран слушател, който ще се погрижи за тези пояснения, тъй като Oracle се опитва да получи достъп до сесията в PreDestroy, докато Tomcat се придържа къмглупавитеофициален стандарт и обезсили сесията, преди да извикате PreDestroy:Ще трябва да копирате следния JAR-файл (включен източник) във вашатаshared-lib
папка:adf-predestroy-helper.jar и я регистрирайте вWEB_INF/web.xml
на всяко ADF приложение като това:
<listener>
<listener-class>oracle.adf.PreDestroyHelper</listener-class>
</listener>
Слушателят PreDestroy е написан от мен и пуска OpenSource под лиценз CreativeCommons, така че можете да го използвате, както искате, но ще се радвам на някои отзиви.
За справка – Ето как изглежда моята споделена библиотека папка (160 файла):
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
И това е стандартната папка tomcat/lib (25 файла):
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