2013-10-08 3 views
0

J'essaie d'utiliser une ressource binaire dans mon application. J'en ai besoin pour les mots de passe crypt/decript. Le fichier se trouve dans le dossier "classes" de mon oreille, tout comme les fichiers de propriétés auxquels l'application accède sans problème.weblogic classloading binary resource

Quoi qu'il en soit, je charge les fichiers comme suit. Mais dans le cas du fichier binaire, le InputStream résultant est nul.

La question est, pourquoi cela fonctionne avec les fichiers de propriétés et non avec un fichier binaire? Que puis-je faire pour charger une ressource binaire?

Cordialement.

Répondre

0
  1. Assurez-vous que le fichier est disponible sur le chemin d'accès aux classes.
  2. Utilisez à la place le chargeur de classe de contexte - cela garantira que le code essayant de rechercher le fichier peut également résider dans une bibliothèque partagée.

Quelque chose sur les lignes de:

Thread.currentThread().getContextClassLoader().getResourceAsStream(..) 

espoir qui aide.

+0

Attend une bonne idée. Je vais essayer demain au bureau. Mais, pourquoi travaille avec les fichiers de propriétés et ne fonctionne pas avec un fichier binaire? – cape

+0

Je suis utiliser le code suivant pour le chargement de la ressource:.. InputStream est = Thread.currentThread() getContextClassLoader() getResourceAsStream (/myBinaryFile.bin) Le problème est maintenant que weblogic ne retourne pas un InputStrem , retourne un objet propagé nommé "SafeZipFileInputStream" – cape

+0

Si vous faites un javap sur le SafeZipFileInputStream, vous remarquerez que cette classe s'étend de java.io.FilterInputStream qui s'étend à son tour de java.io.InputStream Donc, aussi longtemps que vous travaillez avec les classes de base, cela ne devrait pas faire de différence sur le type de flux. Y a-t-il un problème si vous l'utilisez uniquement comme InputStream? –

0

Au lieu de ClassLoader utiliser le nom de classe où vous êtes actuellement.

YourClass.class.getResourceAsStrem(/file.xxxx);