sql >> Base de Datos >  >> RDS >> Oracle

Intentando implementar la aplicación Oracle-ADF en Tomcat 7

Aunque la respuesta de yilmazbahadir funciona, no es una solución real. Así que busqué más y encontré el siguiente Blog:byte bohemian

El resultado es esencialmente:debe cargar sus bibliotecas ADF compartidas mediante el cargador de clases compartidas y no solo colocarlas en la carpeta tomcat/lib como dicen las antiguas publicaciones de blog de Oracle. Ahora finalmente tengo ADF en funcionamiento en un Tomcat8, pero también probé en 6 y 7 con el siguiente procedimiento:

  1. Cree una nueva carpeta en su directorio tomcat (CATALINA_BASE) llamada shared-lib . Edite el archivo config/catalina.properties y busque la línea con shared.loader=... Cámbielo a lo siguiente:shared.loader="${catalina.base}/shared-lib","${catalina.base}/shared-lib/*.jar","${catalina.home}/shared-lib","${catalina.home}/shared-lib/*.jar" Esto le indicará a Tomcat que cargue estos archivos con un cargador de clases separado y solucionará sus problemas, cuando todas las bibliotecas compartidas estén en esa carpeta.

  2. Descargue ADF-essentials ZIP y descomprímalo en shared-lib (¡tienes que descomprimirlos completamente! Por lo tanto, todos los archivos JAR de todos los subdirectorios deben estar directamente en la carpeta sin ningún subdirectorio)

  3. Implemente su aplicación ADF con todas las bibliotecas dependientes como un archivo EAR y copie todos los archivos JAR del archivo EAR a la carpeta shared-lib.

  4. Verifique si hay JAR duplicados:log4j siempre estuvo allí en dos versiones para mí, si encuentra duplicados, simplemente quédese con el más nuevo.

  5. Descargue GlassFish Server y copie los siguientes archivos de glassfish/modules en la carpeta 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

  6. Agregue ojdbc7.jar a tomcat/lib (NO biblioteca compartida)

  7. Agregue la siguiente opción de entorno a Tomcat al iniciar (por ejemplo, en setenv.sh/setenv.bat):CATALINA_OPTS=-Doracle.mds.cache=simple

  8. (Opcional) Si quieres @PreDestroy para que las anotaciones funcionen sin generar errores y use TomCat 7 u 8, debe registrar un oyente personalizado, que se encargará de estas anotaciones, ya que Oracle intenta acceder a la sesión en PreDestroy, mientras que Tomcat se adhiere al estúpido estándar oficial e invalidó la sesión antes de llamar a PreDestroy:tendrá que copiar el siguiente archivo JAR (fuente incluida) en su shared-lib carpeta:adf-predestroy-helper.jar y regístrelo en el WEB_INF/web.xml de cada aplicación ADF como esta:

<listener> <listener-class>oracle.adf.PreDestroyHelper</listener-class> </listener>

El oyente de PreDestroy está escrito por mí y lanza OpenSource bajo la licencia CreativeCommons, por lo que puede usarlo como quiera, pero me encantaría recibir algunos comentarios.

Para referencia:así es como se ve mi carpeta de biblioteca compartida (160 archivos):

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

Y esta es la carpeta tomcat/lib estándar (25 archivos):

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