2017-05-22 3 views
0

Après la mise à niveau Domino à 9.0.1 FP8 Je reçois l'erreur suivante en essayant d'appeler le consommateur WebService CXF de XPage:Erreur lors de l'appel webservice de XPage sur Domino 9.0.1 FP8

MASM0001: fichier de configuration par défaut [JAXWS -tubes-default.xml] n'a pas été trouvé

Le même code fonctionne correctement sur Domino 9.0.1 FP7. Le stub est importé en tant que jar et autorisations: RuntimePermission "setContextClassLoader" et ReflectPermission "suppressAccessChecks" sont accordés.

Cela ressemble à un problème de sécurité puisque l'octroi de toutes les permissions (inacceptable pour le serveur de production) m'a permis d'exécuter le code sur le FP8 9.0.1.

Est-ce que quelqu'un a connu la même chose ou connaît la raison de ce comportement?

MASM0001: Default configuration file [ jaxws-tubes-default.xml ] was not found. For more detailed information, please consult error-log-0.xml located in /usr/notes/domino/workspace/logs 
java.lang.IllegalStateException: MASM0001: Default configuration file [ jaxws-tubes-default.xml ] was not found 
    at com.sun.xml.internal.ws.assembler.MetroConfigLoader.init(MetroConfigLoader.java:139) 
    at com.sun.xml.internal.ws.assembler.MetroConfigLoader.<init>(MetroConfigLoader.java:116) 
    at com.sun.xml.internal.ws.assembler.TubelineAssemblyController.getTubeCreators(TubelineAssemblyController.java:90) 
    at com.sun.xml.internal.ws.assembler.MetroTubelineAssembler.createClient(MetroTubelineAssembler.java:115) 
    at com.sun.xml.internal.ws.client.Stub.createPipeline(Stub.java:340) 
    at com.sun.xml.internal.ws.client.Stub.<init>(Stub.java:307) 
    at com.sun.xml.internal.ws.client.Stub.<init>(Stub.java:240) 
    at com.sun.xml.internal.ws.client.Stub.<init>(Stub.java:255) 
    at com.sun.xml.internal.ws.client.sei.SEIStub.<init>(SEIStub.java:96) 
    at com.sun.xml.internal.ws.client.WSServiceDelegate.getStubHandler(WSServiceDelegate.java:827) 
    at com.sun.xml.internal.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:816) 
    at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:449) 
    at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:417) 
    at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:399) 
    at javax.xml.ws.Service.getPort(Service.java:130) 
    at eu.europa.ec.taxud.vies.services.checkvat.CheckVatService.getCheckVatPort(CheckVatService.java:56) 
+0

Ce n'est pas une erreur d'autorisation. Il est arrivé à mon sur l'un des 2 serveurs que j'ai mis à jour au FP8. J'ai passé un peu de temps à essayer de le réparer et j'ai alors décidé d'abandonner le service web - c'était juste 1 - et de le remplacer par autre chose. Cela signifie que je n'ai pas résolu le problème. J'ai pensé à effectuer une installation propre ou ouvrir un pmr avec IBM, mais finalement aucun de ceux – shillem

+0

j'ai découvert qu'il est possible d'exécuter mon webservice de Xpage sur le serveur FP8 en utilisant le code de consommation java exporté de la base de données selon le manuel fourni: lien] (http://www.xpagedeveloper.com/2014/calling-web-services-from-xpages). – TomSta

Répondre

0

Vérifiez le fichier java.policy ou java.pol sur le serveur FP7 qui fonctionne. Les mises à niveau remplacent régulièrement java.policy et, à l'occasion, ont été connues pour supprimer ce fichier. Si c'est lié à la sécurité, la politique Java du serveur doit être différente.

+0

Je ne modifie jamais les paramètres java.policy d'origine. Le contenu java.pol est le même sur les deux serveurs. Je suppose qu'il existe une implémentation différente de JAX-WS sur 9.0.1 FP8. – TomSta

0

Je me suis heurté hier à un autre problème lié à la sécurité liée à Java qui pourrait également être la cause de votre problème. J'utilise GSON pour faire l'analyse syntaxique JSON, mais après une mise à jour FP8 il a cessé de travailler et a jeté une erreur de sécurité:

Agent Manager: Agent error: java.security.AccessControlException: 
    Access denied ("java.lang.RuntimePermission" "accessDeclaredMembers") 

Depuis la FP8 mise à niveau als mises à niveau de la machine virtuelle Java Java 8, apparemment quelque chose a changé dans la sécurité modèle. La solution a été d'ajouter cette autorisation supplémentaire à mon dossier java.pol:

grant { 
    permission java.lang.RuntimePermission "accessDeclaredMembers"; 
}; 
+0

Je l'ai eu avec du code en utilisant Gson dans une NSF, lors du test de Watson Work Services Java SDK, mais je n'ai jamais testé avec moins de FP7 ou lorsque le code était dans un plugin. Pour WWS Java SDK, j'ai aussi dû ajouter 'permission java.lang.RuntimePermission" accessDeclaredMembers ";' –

0

J'ai obtenu la même erreur d'accès à un service Web à partir d'un agent Java. En FP8 + une autre subvention semble être nécessaire dans le fichier java.policy ou java.pol:

permission java.io.FilePermission "${java.home}/lib/-", "read"; 

Le fichier jaxws-tubes-default.xml se trouve dans le fichier resources.jar dans le dossier lib.

Pour mon service Web pour être accessible à partir d'un agent Java sur le serveur Domino j'ai maintenant un fichier java.pol ce qui suit:

grant { 
    permission java.lang.RuntimePermission "getClassLoader"; 
    permission java.lang.RuntimePermission "setContextClassLoader"; 
    permission java.lang.reflect.ReflectPermission "suppressAccessChecks"; 
    permission java.io.FilePermission "${java.home}/lib/-", "read"; 
};