2010-11-02 4 views
2

J'ai un jar signé empaqueté dans une oreille qui cherche un fichier de configuration hors du classpath. Le fichier de configuration se trouve dans le manifeste de l'oreille et se trouve à la racine de l'oreille. Le jar signé n'a pas de manifeste et je ne peux pas en ajouter un, alors comment ajouter ce fichier au classpath du jar? Je construis l'oreille avec la fourmi, et la déploie dans JBoss. Qu'est-ce qui se passe est que lorsque j'utilise le pot d'un de mes services sar, le fichier spécifié dans le manifeste de l'oreille semble ne pas être sur le chemin de classe. Lorsque le fichier jar est getresource(), il renvoie null. Peut-être le problème est que le pot lui-même utilise le mauvais classloader? Quel classloader devrait-il utiliser?dépendances de jar sans manifeste dans l'oreille (déploiement de JBoss)

+0

Quelle version de JBoss? (http://community.jboss.org/wiki/JBossClassLoaderHistory) – fglez

Répondre

1

Avez-vous essayé de placer le fichier de configuration lui-même dans un pot et de le référencer dans le manifeste de l'oreille? C'est à dire. -

  1. Mettre le fichier de configuration dans un bocal
  2. mettre le pot quelque part dans le .ear par exemple /config.jar
  3. Modifier le manifeste de l'oreille située à /META-INF/MANIFEST.MF, ajoutez une entrée de classe chemin:

    Class-Path: config.jar

espoir que travaux.

0

Vous pouvez essayer de le placer dans META-INF/classes à l'intérieur du JAR, mais si vous ne pouvez pas ajouter de manifeste, vous ne pourrez peut-être pas le faire. Êtes-vous en mesure d'ajouter des fichiers au JAR?

+0

On m'a remis un pot signé, je ne peux pas le changer, ce qui est mon problème. À moins qu'il y ait un moyen que je peux obtenir au manifeste sans l'invalider? – insipid

+0

Yikes c'est dur ... une solution pourrait être de placer le fichier de configuration dans le répertoire '/ lib' de n'importe quel serveur/conteneur que vous déployez. Je sais que cela fonctionne souvent pour les pots/dépendances ... –

Questions connexes