類為 run.class
包:package localJava.client.dynamic
類內要求:
import org.apache.wsif.WSIFMessage;
<!-- frame contents --> <!-- /frame contents -->import org.apache.wsif.WSIFException;
import org.apache.wsif.WSIFOperation;
import org.apache.wsif.WSIFPort;
import org.apache.wsif.WSIFService;
import org.apache.wsif.WSIFServiceFactory;
classpath設置的相對路徑:libwsif.jar;……;(假如當時設成絕對路徑,也會避免很多不應該的麻煩,所以盡量使用絕對路徑,這裡為了幫助自己記憶問題,所以使用相對路徑)lib在c:wsif裡
要求導入的類都在wsif.jar裡,另外在C:wsif-2.0uildclassesorgapachewsif裡有解壓的class文件
run.class類的實際位置:c:wsifuildsampleslocaljavaclientdynamic
在目錄:c:wsifuildsamples下運行java localjava.client.dynamic.Run samples/localjava/AddressBook.wsdl
報錯:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/wsif/WSIFException
這是因為classpath使用相對路徑,導致java時無法找到jar文件,所以有三種方法解決:
1、設置classpath為絕對路徑
2、在lib(classpath設置的目錄)所在的目錄下(C:WSIF )使用下列命令-CP參數運行:java -cp %CLASSPATH%;buildsamples; localjava.client.dynamic.Run samples/localjava/AddressBook.wsdl 其中的buildsamples指定了RUN類所在的路徑。
(其中路徑也可以采用絕對路徑寫法,相對路徑寫法中,“.”代表當前路徑,“..”代表父節點路徑,比如上面的路徑也可以寫成“.uildsamples;”或者“..wsifuildsamples”)。因為包指定到localjava,所以路徑應該設置到包的上層目錄samples,這樣就能在該目錄下沿包路徑找到run.class類了。
3、在c:wsifuildsamples路徑下運行java -cp [路徑] localjava.client.dynamic.Run samples/localjava/AddressBook.wsdl 其中路徑包括了所有需要的類路徑。
這個方法比較麻煩。
總是配置系統變量也比較輕易混亂,所以可以采用編輯一個批處理文件的方法,裡面的java 命令指定了所有類路徑。