2010-07-28 2 views
0

MATLAB의 createClassFromWsdl 함수에는 속성을 지원하지 않는 것과 같은 몇 가지 중요한 제한 사항이 있습니다. dynamic clients을 생성하는 Apache CXF의 기능은 상대적으로 사용자 친화적 인 방법으로 다양한 종류의 SOAP 끝점에 액세스하는 방법이 될 수 있습니다. 적절한 JAR 파일을 MATLAB 클래스 경로에 추가하기 만하면 MATLAB 명령 행에서 강력한 클라이언트를 대화식으로 생성 할 수 있습니다. 아무도 이것을 시도 했습니까? 누군가 예제를 제공해 주시겠습니까?MATLAB에서 Apache CXF 사용

답변

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 개미

를 사용하여 출력 폴더에있는 소스 copile SOAP11Constants

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