發表文章

目前顯示的是 2013的文章

使用 java axis 呼叫 .net web service 全記錄

圖片
由於手邊的某個案子需要用 java 去 call .net 的 web service, 上網 google 了半天之後得到一個 workable 的做法 ... 種類 1 - String HelloWorld(String param1) :  String wsSoapAction = "http://tempuri.org/"; Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(wsUrl); call.setUseSOAPAction(true); call.setOperationName(new QName(wsSoapAction, "HelloWorld")); // 設置要調用哪個方法 // 設置要傳遞的參數 call.addParameter( new QName(wsSoapAction, "param1"), org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN); call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING); // 標準字串 call.setUseSOAPAction(true); call.setSOAPActionURI(wsSoapAction + "HelloWorld"); String sRtn = (String) call.invoke(new Object[] { "this is a param" }); // 調用方法並傳遞參數 種類 2 - DataSet HelloWorld(String param1) : 這回傳的居然是 .net vb 直接 select database 的 dataSet, 它是以 xml 格式呈現, 同上面只是把 returnType 改成 : ... call.setReturn

DOS script 裡迴圈的神奇語法

原本在 linux 上跑得好好的 shell, 突然因為需要得搬到 windows server 上跑 只好把它改成 .bat 一個很 ez 的迴圈 assign classpath 的動作 在 dos 上居然怎麻跑都不對勁, 剛改完的 .bat : @echo off set CLASSPATH=.;c:\tomcat\webapps\abc\WEB-INF\classes set MYDIR=d:\tmp\cd for %%x in (%MYDIR%\*.jar) do (   echo %%x   set CLASSPATH=!CLASSPATH!;%%x   echo %CLASSPATH% ) echo %CLASSPATH% 執行結果 : E:\tmp>test.bat d:\tmp\cd\common-lib1.jar .;c:\tomcat\webapps\abc\WEB-INF\classes d:\tmp\cd\common-lib2.jar .;c:\tomcat\webapps\abc\WEB-INF\classes d:\tmp\cd\common-lib3.jar .;c:\tomcat\webapps\abc\WEB-INF\classes !CLASSPATH!;d:\tmp\cd\common-lib3.jar 感覺只有最後一次迴圈的 assign 有作用, google 了半天, 發現這個東東 ... setlocal enabledelayedexpansion 一加上去馬上 work, 至於解釋, 看嘸, 也懶得看了 >__< @echo off setlocal enabledelayedexpansion set CLASSPATH=.;c:\tomcat\webapps\abc\WEB-INF\classes set MYDIR=d:\tmp\cd for %%x in (%MYDIR%\*.jar) do (   echo %%x   set CLASSPATH=!CLASSPATH!;%%x   echo %CLASSPATH% ) echo %CLASSPATH% 執行結果 : E:\tmp>test.bat d:\tmp\cd\comm