La fonction createClassFromWsdl de MATLAB présente certaines limitations importantes, telles que la non-prise en charge des attributs. Il me semble que la capacité d'Apache CXF à générer dynamic clients pourrait être un moyen d'accéder à une plus grande variété de points de terminaison SOAP d'une manière relativement conviviale. Ajouter simplement les fichiers JAR appropriés à votre chemin de classe MATLAB vous permet de créer de manière interactive des clients robustes à partir de la ligne de commande MATLAB. Quelqu'un at-il essayé cela? Quelqu'un pourrait-il donner un exemple?Utilisation de Apache CXF depuis MATLAB
0
A
Répondre
1
createclassfromwsdl
a une fonctionnalité vraiment limitée. J'ai donc essayé deux paquets java pour la communication SOAP de Matlab.
- Apache CXF - il y avait quelques problèmes lors de la compilation et donc j'ai utilisé la seconde alternative:
- Axis2: cela a fonctionné assez bien de Matlab, je réalisé les étapes suivantes:
1) Installer Axis2 -1.5.4
2) ./wsdl2java.sh -uri http://webservice:port .. -o outfolder -uw
3) Ensuite, je dû fixer les talons générés afin d'éviter des erreurs lors du savon co mmunication (vous pourriez ne pas avoir besoin): - remplacer occurence de SOAP12Constants
par SOAP11Constants
4) Copile les sources dans le dossier de sortie en utilisant ant
5) Puis, en Matlab-je utiliser la procédure d'initialisation suivante (en supposant que la package.jar est dans matlabpath et le paquet se trouve dans folder_foo)
if isempty(strfind(javaclasspath,'package.jar')) % check whether the jar package is already in javapath
r = matlabpath;
tokens = strtok(r,pathsep);
found = 0;
[p, remain] = strtok(r,pathsep);
while p
if not(isempty(regexp(p, 'folder_foo', 'ignorecase')))
javaaddpath([ p filesep 'package.jar']); % add to dynamic java path
import eu.package.name;
h = StubConstructor(); %instantiate the object
found = 1;
break;
end
p = strtok(remain,r);
end
if not(found)
error('WS client initialization failed')
end
end