Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Tentando implantar o aplicativo Oracle-ADF no Tomcat 7


Embora a resposta yilmazbahadirs funcione - não é uma solução real. Então pesquisei mais e encontrei o seguinte Blog:byte bohemian

O resultado é essencialmente - você tem que carregar suas bibliotecas ADF compartilhadas pelo shared-classloader e não apenas colocá-las na pasta tomcat/lib como dizem os antigos Oracle Blog-Posts. Agora finalmente instalei e executei o ADF em um Tomcat8 - mas também testei em 6 e 7 com o seguinte procedimento:

  1. Crie uma nova pasta em seu diretório tomcat (CATALINA_BASE) chamada shared-lib . Edite o arquivo config/catalina.properties e pesquise a linha com shared.loader=... Altere para o seguinte:shared.loader="${catalina.base}/shared-lib","${catalina.base}/shared-lib/*.jar","${catalina.home}/shared-lib","${catalina.home}/shared-lib/*.jar" Isso dirá ao Tomcat para carregar esses arquivos com um carregador de classes separado e corrigirá seus problemas, quando todas as bibliotecas compartilhadas estiverem nessa pasta.

  2. Baixe o ADF-essentials ZIP e descompacte-o em shared-lib (você precisa descompactá-los de forma plana!!! Portanto, todos os arquivos JAR de todos os subdiretórios devem estar diretamente na pasta sem subdiretórios)

  3. Implemente seu aplicativo ADF com todas as bibliotecas dependentes como um arquivo EAR e copie todos os arquivos JAR do arquivo EAR para a pasta shared-lib.

  4. Verifique se há JARs duplicados - o log4j sempre esteve lá em duas versões para mim, se você encontrar duplicatas, apenas mantenha a mais nova.

  5. Baixe o GlassFish Server e copie os seguintes arquivos do glassfish/modules para a pasta 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. Adicione ojdbc7.jar ao tomcat/lib (NÃO biblioteca compartilhada)

  7. Adicione a seguinte opção de ambiente ao Tomcat na inicialização (por exemplo, em setenv.sh/setenv.bat):CATALINA_OPTS=-Doracle.mds.cache=simple

  8. (Opcional) Se você quiser @PreDestroy para que as anotações funcionem sem gerar erros e usem o TomCat 7 ou 8, é preciso cadastrar um listener personalizado, que cuidará dessas Anotações, pois o Oracle tenta acessar a Sessão no PreDestroy, enquanto o Tomcat adere ao estúpido s> padrão oficial e invalidou a sessão antes de chamar PreDestroy:Você terá que copiar o seguinte arquivo JAR (fonte incluída) para sua shared-lib pasta:adf-predestroy-helper.jar e registre-o no WEB_INF/web.xml de cada aplicativo ADF como este:

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

O ouvinte PreDestroy foi escrito por mim e lançado OpenSource sob licença CreativeCommons, para que você possa usá-lo como quiser, mas ficaria feliz com alguns comentários.

Para referência - É assim que minha pasta shared-lib se parece (160 arquivos):

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

E esta é a pasta padrão tomcat/lib (25 arquivos):

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