1 votes

Déploiement d'un jar dans Jboss

J'ai quelques fichiers .jspf qui sont des fragments que j'inclus dans un nouveau fichier .jsp. La raison pour laquelle il s'agit de fragments est qu'ils sont réutilisés dans plusieurs jsp avec quelques composants supplémentaires.

Mon problème est que je veux utiliser ces .jsps dans deux fichiers .war différents.

J'ai donc créé un nouveau fichier .jar qui inclut ces jspf. J'essaie maintenant de déployer ce jar afin de l'importer dans mon nouveau jsp qui se trouve dans l'une des deux guerres.

Je ne parviens pas à déployer le jar avec succès dans Jboss 4.2. J'utilise Eclipse ide. Avez-vous des idées à ce sujet ? S'il existe une autre approche, j'apprécierais toute idée.


Merci pour cette suggestion, j'ai suivi cette idée et déployé mon war1 qui contient mes fichiers .jspf.

Donc dans mon war2 sur un jsp je fais :

    <c:import context="/sharedComponents" url="/easyPayNamePaymentOption.jspf" var="easyPayName"/>

<%@ include file="easyPayNamePaymentOption.jspf" %>

Cependant, je ne suis pas en mesure de rendre cette page avec le fragment inclus, je ne suis pas sûr de savoir comment aborder le jspf importé. J'ai essayé plusieurs méthodes différentes comme :

<%@ include file="/sharedComponents/easyPayNamePaymentOption.jspf" %>

et aussi en utilisant le nom de var comme :

<%@ include file="#{easyPayName}" %>

Cependant, il continue à regarder à l'intérieur de la guerre actuelle. Comment puis-je lui dire d'inclure le fragment nouvellement importé et de l'afficher ?

Merci d'avance.

3voto

skaffman Points 197885

Je peux voir ce que vous essayez de faire, mais cela ne va pas fonctionner avec un fichier JAR. Tous les fichiers JSP (y compris JSPF) doivent se trouver dans un WAR, pas dans un JAR.

La solution la plus simple consiste à mettre des copies des fichiers JSPF dans chaque WAR qui doit les utiliser. Si vous ne voulez pas faire cela, il existe une alternative, appelée un contexte croisé WAR.

Par défaut, JBoss permet à ses applications web de demander des ressources les unes aux autres. Par exemple, disons que webapp1 (chemin du contexte /app1 ) veut importer JSPF /my.jspf from webapp2 (context path /app2 ). Vous pouvez utiliser JSTL pour faire cela, depuis l'intérieur de webapp1 :

<c:import context="/app2" url="/my.jspf"/>

Ainsi, si vous créez un fichier WAR "partagé" contenant vos fichiers JSPF et que vous le déployez sur JBoss, vos autres applications Web pourront utiliser la technique ci-dessus pour inclure le contenu des JSPF dans leurs propres JSP.


éditer : J'ai lu votre question mise à jour, et je ne comprends pas pourquoi vous avez ajouté var="easyPayName" au <c:import> étiquette. Tout ce que cela fait est d'importer le contenu de easyPayNamePaymentOption.jspf et le stocker dans une variable appelée easyPayName ce qui semble complètement inutile.

Je pense que vous associez peut-être <c:import> avec un java import ? Si oui, ne le faites pas - ils sont complètement différents. <c:import> aurait dû s'appeler <c:include> parce que c'est ce qu'il fait.

Il suffit de faire simple, de supprimer l'attribut, et d'avoir simplement

<c:import context="/sharedComponents" url="/easyPayNamePaymentOption.jspf"/>

C'est tout ce que vous devez faire - cela inclura le contenu de easyPayNamePaymentOption.jspf directement dans la JSP.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X