Ik loop al een hele tijd te zoeken, maar het is me niet duidelijk hoe ik vanuit mijn Java webservice kan werken met bestanden die ik mee heb gegeven in mijn gedeployde WAR. Ik werk met Eclipse en WTP en mijn WAR heeft de volgende structuur:
-META-INF
-WEB-INF
--MijnService
--Scripts
--classes
--lib
--web.xml
--server-config.wsdd
-wsdl
Ik heb een eenvoudige klasse geschreven met een paar methoden die als webservice beschikbaar worden gesteld. Het aanroepen van de webservice op zich gaat prima, alleen niet het stuk code waarmee ik een bestand (mijnscript.txt) server-side wil inlezen.
Naar ik heb begrepen zijn de bestanden in WEB-INF niet zomaar benaderbaar van "buitenaf", alles wat daarboven staat (WebContent) is dat wel. In de map "Scripts" zitten bestanden die ik wil lezen vanuit mijn webservice. Helaas krijg ik het niet voor elkaar. Ik heb het al geprobeerd met:
Maar dit geeft een null terug. Misschien zit ik op het verkeerde pad. Ik kom ook dingen tegen zoals de ServletContext die ik zou moeten gebruiken om een bestand te lezen. Maar ik zie dan weer alleen voorbeelden waarbij ik mijn webservice als servlet moet implementeren en dan gaat ook Eclipse/WTP zeuren dat ik rare dingen aan het doen ben.
Dus de vraag: hoe kan ik binnen mijn webservice bestanden lezen die ik meegedeployed heb?
-META-INF
-WEB-INF
--MijnService
--Scripts
--classes
--lib
--web.xml
--server-config.wsdd
-wsdl
Ik heb een eenvoudige klasse geschreven met een paar methoden die als webservice beschikbaar worden gesteld. Het aanroepen van de webservice op zich gaat prima, alleen niet het stuk code waarmee ik een bestand (mijnscript.txt) server-side wil inlezen.
Naar ik heb begrepen zijn de bestanden in WEB-INF niet zomaar benaderbaar van "buitenaf", alles wat daarboven staat (WebContent) is dat wel. In de map "Scripts" zitten bestanden die ik wil lezen vanuit mijn webservice. Helaas krijg ik het niet voor elkaar. Ik heb het al geprobeerd met:
Java:
1
2
| InputStream is = this.getClass().getResourceAsStream("/WEB-INF/Scripts/mijnscript.txt"); System.err.println("Geeft: " + is); |
Maar dit geeft een null terug. Misschien zit ik op het verkeerde pad. Ik kom ook dingen tegen zoals de ServletContext die ik zou moeten gebruiken om een bestand te lezen. Maar ik zie dan weer alleen voorbeelden waarbij ik mijn webservice als servlet moet implementeren en dan gaat ook Eclipse/WTP zeuren dat ik rare dingen aan het doen ben.
Dus de vraag: hoe kan ik binnen mijn webservice bestanden lezen die ik meegedeployed heb?
[ Voor 12% gewijzigd door Tjeerd op 26-11-2008 14:19 ]
www.tjeerd.net - To repeat what others have said, requires education, to challenge it, requires brains.