MATLAB의 createClassFromWsdl 함수에는 속성을 지원하지 않는 것과 같은 몇 가지 중요한 제한 사항이 있습니다. dynamic clients을 생성하는 Apache CXF의 기능은 상대적으로 사용자 친화적 인 방법으로 다양한 종류의 SOAP 끝점에 액세스하는 방법이 될 수 있습니다. 적절한 JAR 파일을 MATLAB 클래스 경로에 추가하기 만하면 MATLAB 명령 행에서 강력한 클라이언트를 대화식으로 생성 할 수 있습니다. 아무도 이것을 시도 했습니까? 누군가 예제를 제공해 주시겠습니까?MATLAB에서 Apache CXF 사용
0
A
답변
1
createclassfromwsdl
은 실제로 기능이 제한되어 있습니다. 따라서 Matlab에서 SOAP 통신을위한 두 개의 Java 패키지를 시도했다.
- 아파치 CXF는 - 컴파일하는 동안 몇 가지 문제가 있었다 때문에 나는 두 번째 대안 사용 :
- Axis2를 :이, matlab에에서 아주 잘 작동 내가 다음 단계를 수행 :
1)를 설치 Axis2를을 -1.5.4
2) ./wsdl2java.sh -uri http://webservice:port .. -o outfolder -uw
3) 그런 다음 비누 공동 동안 일부 오류를 방지하기 위해 생성 된 스텁을 해결했다 mmunication (당신이 그것을 필요로하지 않을 수도 있습니다) : 는 - 나는 다음 초기화 절차가합니다 (가정 사용하십시오 매트랩 다음)
5 개미
를 사용하여 출력 폴더에있는 소스 copileSOAP11Constants
4)에 의해 SOAP12Constants
의 선두로부터 교체 package.jar은 matlabpath에 있으며 패키지는 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