2010-07-28 140 views
0

MATLAB中的函數createClassFromWsdl有一些重要的限制,比如不支持屬性。在我看來,Apache CXF生成dynamic clients的能力可能是一種以相對用戶友好的方式訪問各種各樣的SOAP端點的方法。只需將相應的JAR文件添加到MATLAB類路徑中,就可以使用MATLAB命令行交互式地創建健壯的客戶端。有沒有人試過這個?請有人提供一個例子嗎?在MATLAB中使用Apache CXF

回答

1

createclassfromwsdl功能非常有限。所以我嘗試了兩個用於Matlab通信的java包。

  • 阿帕奇CXF - 有編譯期間的一些問題,因此,我使用的第二替代:
  • Axis2的:這相當奏效從MATLAB,我執行以下步驟:

1)安裝的Axis2 -1.5.4

2)./wsdl2java.sh -uri http://webservice:port .. -o outfolder -uw

3)然後,我不得不修復所產生的存根以避免在肥皂共一些錯誤mmunication(你可能不需要它): - 由SOAP11Constants

4)copile輸出文件夾中的資源利用螞蟻

5在Matlab取代SOAP12Constants occurence)然後我用下面的初始化程序(假設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