J'ai une applet qui doit appeler JAXP, en particulier SAXParserFactory. Maintenant, comme vous pouvez le voir sur la Javadoc, celui-ci utilise en interne le mécanisme du fournisseur de services tel que documenté here:Comment tromper l'API Java Service Provider (jaxp)
Plus précisément, si elle ne trouve pas un fichier dans l'un de mes JARs application appelée META-INF/services/javax.xml.parsers.SAXParserFactory
il va essayer de chercher dans mon base de code d'application. Si j'ai mon applet déployée comme suit:
<applet code="com.example.applets.MyApplet"
codebase="http://www.example.com/myapp/" archive="myapp.jar, dom4j.jar">
Ensuite, il va essayer de faire une requête HTTP à http://www.example.com/myapp/META-INF/services/javax.xml.parsers.SAXParserFactory
Je préfère ne pas le faire, en particulier parce que mon applet est signé et cette HTTP supplémentaire appel déclenche un avertissement à propos de unsigned code. Maintenant, la solution évidente est de simplement placer le fichier META-INF/services dans mon application JAR comme il le dit, mais comment faire pour l'obtenir tout en utilisant l'implémentation JRE par défaut de JAXP? Alternativement, y at-il un moyen de convaincre l'exécution de l'applet pour regarder seulement dans mes fichiers JAR et non dans le codebase
pour ce fichier?
Note: Je sais que je pourrais également déployer ma propre copie de JAXP-RI mais c'est assez lourd pour une applet.
Cela semble prometteur. Je vais essayer ça et poster une mise à jour! – Dan
Cela a fonctionné. Réponse acceptée. – Dan
Ça marche aussi pour moi. Je vous remercie! –