Jstl + oc4j

9 respostas
ericomtx

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

9 Respostas

LeoMarola

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!

ericomtx

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"/>

LeoMarola

Seu JSP importou a TagLib ?

Ela Está Configurada no web.xml ?

O Caminho do TLD está correto ?

:shock:

ericomtx

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

LeoMarola

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

R

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

ericomtx

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

R

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

ericomtx
mytags WEB-INF/taglib.tld

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

Criado 5 de fevereiro de 2009
Ultima resposta 1 de jul. de 2010
Respostas 9
Participantes 3