Jstl + oc4j

Tenho uma aplicação web rodando no Tomcat com JSTL e preciso rodar ela no oc4j

meu ambiente é o seguinte :

oc4j 10.1.3.3.0 Standard
JSTL : standard-1.1.2.jar / jstl-1.2.jar
jsp-api-2.1.jar
servlet-api-2.5.jar

A minha aplicação myapp-0.1 foi disponibilizada em OC4J_MEUCONTEXTO

Já fiz várias configurações entre elas copiar os arquivos jstl-1.2.jar e jsp-api-2.1.jar para as seguintes pastas :

/ORACLE_HOME/OraHome_1/j2ee/home/applib
/ORACLE_HOME/OraHome_1/j2ee/OC4J_MEUCONTEXTO/applib
/ORACLE_HOME/OraHome_1/j2ee/home/jsp/lib/taglib
/ORACLE_HOME/OraHome_1/j2ee/OC4J_MEUCONTEXTO/applications/myapp-0.1/myapp-0.1/WEB-INF/lib

Em todas as vezes q copiei os jars paras as pastas eu reinicei o serviço

ao acessar a primeira jsp q tem alguma tag do JSTL eu recebo o seguinte erro no log :

JspServlet: unable to dispatch to requested page: Exception:oracle.jsp.parse.JspParseException: /index.jsp: Line # 6, <c:redirect url=“Teste/teste.action”></c:redirect>
Error: Unable to instantiate tag: c:redirect (class: null) Make sure that the tag class is available and that the tag library containing the class is not excluded from this application

Quando você vai disponibilizar sua aplicação no OC4J existe uma configuração de classLoader que faz o container buscar as libs primeiramente na sua aplicação para então ir em outros lugares, “ignorando” as versões desta mesma lib em outros classloaders superiores, mas o OC4J tem essa “mania boba” de as vezes nao achar nossas libs, entao mantenha as libs do JSTL apenas no sua APP e ative essa opção na edição do seu plano de disponibilização.

Você tambem pode configurá-la como uma sharedLib porém tem haver o registro destas em um xml, (Esqueci o nome dele mas uma busca no google acha em 2 tempos)

Dê uma olhada no Google sobre essa opção de configuração. esse Link é um bom kick-off.

Muito boa sorte com o OC4J, hehehe!

a minha aplicação já possui um arquivo chamado orion-web.xml em WEB-INF com o seguinte conteúdo:

<?xml version="1.0" ?>
<orion-web-app>
	<web-app-class-loader search-local-classes-first="true" />
	<web-app />
</orion-web-app>

Eu já tenho o arquivo /ORACLE_HOME/OraHome_1/j2ee/OC4J_MEUCONTEXTO/config/server.xml com :

<shared-library name="global.tag.libraries" version="1.0" library-compatible="true"> <code-source path="../../home/lib/jstl-1.2.jar"/> <code-source path="../../home/lib/standard-1.1.2.jar"/>

Seu JSP importou a TagLib ?

Ela Está Configurada no web.xml ?

O Caminho do TLD está correto ?

:shock:

na jsp:

eu não declarei no web.xml, apenas adicionei os dois jars : jstl-1.2.jar e standard-1.1.2.jar no WEB-INF/lib da minha aplicação

essa mesma aplicação roda normalmente no Tomcat

Bem, este deve ser o problema:

Declare a Taglib no web.xml o OC4J é bem rígido com isso, o Tomcat deve “deixar passar batido” esse detalhe.

flws

Como resolveu isso? Estou com o mesmo problema… Pode me ajudar?

Sim sim, declare as tlds no web.xml e coloque os arquivos das tlds no diretório WEB-INF, só não lembro de onde baixei os arquivos na época, também dá pra extrair direto do jar mesmo …
Eu não tenho mais esse código pra te mostrar como fica o web.xml direto com as declarações e as tlds tb, se não eu mandava pra vc por email
[]s

não sabe como exemplo declara os tlds no web.xml? Pq precisa fazer isso? Putz que servidor de aplicação horrivel…

mytags WEB-INF/taglib.tld

daí vc pode chamar ela :
<%@ taglib uri="/mytags" prefix=“x” %>