2010-09-20 25 views
0

Je suis en train de déployer une très simple Struts application sur WebLogic 11gR1. L'application a une JSP appelé welcome.jsp et cette JSP contient la balise suivante:Struts <bean:cookie> pauses tag sur WebLogic 11gR1

<bean:cookie name="" id=""/> 

Le taglib associé est importé en haut de la page JSP en utilisant la ligne suivante:

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> 

Lorsque cette balise est à l'intérieur de la JSP, j'ai l'erreur suivante:

Welcome.jsp:11:24: javax.servlet.http.Cookie cannot be resolved 
<body bgcolor="white"><bean:cookie name="" id=""/> 

Mais lorsque je retire cette balise, le welcome.jsp fonctionne très bien.

Le JSP comprend d'autres balises comme:

<bean:message key="welcome.heading"/> 

Ces balises fonctionnent très bien.

Et pour finir, le ActionServlet de Struts fonctionne également et en commençant par l'application.

Je suppose qu'il doit y avoir un problème de classloading mais je ne comprends pas pourquoi les StrutsActionServlet travaille: javax.servlet.http.Cookie et javax.servlet.http.HttpServlet sont déclarés dans le même paquet.

Peut-être, il y a un problème avec l'implémentation Oracle de la classe Cookie dans WebLogic mais c'est très improbable.

Merci.

+0

Avez-vous des exceptions? Si oui, pouvez-vous le fournir ici? –

Répondre

1

javax.servlet.http.Cookie est une interface montrant la structure que ceux qui implémentent l'API Servlet doivent implémenter.

Le problème est peut-être lié à la configuration/libary de WebLogic 11gR1: Je vais expliquer l'utilisation de Tomcat 7.0. Dans Tomcat 7.0, sous le dossier TOMCAT_HOME/lib, il existe un servlet-api.jar. Ce fichier permet à Tomcat de prendre en charge la spécification Java Servlet API (et Cookie.class est inclus dans le répertoire, sous javax/servlet/Cookie).

Votre WebLogic 11gR1 doit disposer d'une bibliothèque de servlet Container conforme à l'API Servlet (comme servlet-api.jar de Tomcat). Je n'ai jamais utilisé WebLogic, mais si vous avez un dossier lib quelque part (apparemment WL_HOME/server/lib), assurez-vous qu'il existe une API de servlet quelque part (je pense que weblogic.jar contient des implémentations d'API de servlet). Vérifiez également que vous n'avez pas de bibliothèque de servlets (par exemple, servlet-api.jar, jarres de servlet eclipse, etc.) dans votre fichier WAR car cela peut entrer en conflit avec la bibliothèque de servlets de WebLogic.

+0

J'ai vérifié que je n'ai pas de bibliothèque de servlet dans mon WAR (portée Maven: fournie). Comme je l'ai dit dans la question, WebLogic fournit une bibliothèque de servlets avec javax.servlet.http.Cookie et javax.servlet.http.HttpServlet, mais cela ne fonctionne pas comme prévu. – etiennepeiniau