Je cherche une suggestion dans la mise en place du projet Web Maven Maven Maven. Une des classes sous SRC / Main / Java doit utiliser un fichier image. Mon problème est, si je mettez un fichier image sous SRC / Main / WebApp / Images ainsi que sous SRC / Main / Ressources / Images, Application Server ne trouve que le chemin d'exécution (où la myeclipse peut) car les archives de guerre n'ont pas de chemin spécifié "SRC / Main / WebApp / Images".
Ma question est où dois-je placer le fichier image que mon projet peut le trouver sans demander une erreur ou une exception. P>
J'utilise p>
Actuellement, j'ai à la suite de la structure de la Dir P>
Structure du répertoire de projet EM> P> private static String PATH_TITLE_IMAGE = "Images/myImage.png";
URL url = MyClass.class.getResource(PATH_TITLE_IMAGE);
com.itextpdf.text.Image bckGrndImage = com.itextpdf.text.Image.getInstance(url);
3 Réponses :
Le répertoire de ressources par défaut pour tous les projets Maven est
src / main / ressources code> strong> qui finira par cible / classes et dans Web-Inf / Classes dans la guerre. La structure de répertoire sera préservée dans le processus. p>
. |-- pom.xml `-- src `-- main |-- java | `-- com | `-- example | `-- projects | `-- SampleAction.java |-- resources | `-- images | `-- sampleimage.jpg `-- webapp |-- WEB-INF | `-- web.xml |-- index.jsp `-- jsp `-- websource.jsp
Il semble que votre problème soit la façon dont vous lisez l'image. Vous ne pouvez (ou ne devrait pas) lire l'image d'un chemin. Le chemin pourrait changer sur chaque système.
Vous devez lire l'image de la classe de classe, comme: p> ou p> pour que cela fonctionne, Le dossier d'image doit être sur la classe de classe. Maven mettra tout dans la classe de classe, qui est sous Main / Ressources. Donc c'est là où votre dossier d'image devrait être. P> p>
J'ai changé de code sur myclass.class.getresource ("images / myImage.png"); Mais il est toujours incapable de trouver un chemin ou une URL.
Pourriez-vous indiquer comment le fichier de guerre a look la structure du répertoire / des fichiers)? Vous pouvez modifier votre question pour insérer ces informations.
J'ai essayé les deux et dans les deux cas, l'application ne trouve pas de fichier image et jette une exception avec le message "ProjectPath / myProject / images / myImage.png" introuvable.
Veuillez afficher le contenu de votre fichier de guerre et le code source exact pour charger l'image dans la question, je pense que nous nous mal compris les uns les autres :)
Vous pouvez utiliser quelque chose comme ça p> EDIT: strong>
Basé sur votre commentaire ci-dessous, je pense que ce dont vous avez besoin est un fichier de propriétés où vous maintenez un chemin d'accès au dossier Ressources. Ce chemin sera un chemin absolu. En fonction de votre déploiement, vous modifiez ce chemin dans le fichier de propriétés. p> p> maven-ressources-plugin code> pour copier des éléments à l'emplacement souhaité.
Avec cette suggestion, je peux faire une image de SRC / Main / Ressources / Images en Guerre / Images. Mais pouvez-vous s'il vous plaît spécifier comment puis-je y accéder si je veux exécuter une myclass via un test d'unité. Je veux dire comment puis-je accéder à cette image si j'aime exécuter une application dans Myeclipse au lieu d'exécuter sur Application Server. Merci
Comment obtenez-vous / trouvez-vous l'image dans votre programme?
Si j'exécute une application sur Myeclipse, MyClass a une propriété de chemin I.e. chemin = "src / main / webapp / images / myImage.png"