Webservice復雜對象傳輸基本原理:
1、客戶端將對象模型mashal成符合定義好的xsd的XML串
2、將XML串以String參數傳遞給服務器
3、服務器接受字符串,服務器端將XML串umashal成對象模型
4、完成參數傳遞,反之,如果服務器需要傳遞給客戶端復雜的數據結構的數據,原理相同。
castor 代碼生成使用指南:
下載castor release,目前最新版本是0.9.7,到apache的XML項目中下載xerces.jar
將如下幾個jar放入classpath:
castor-0.9.7.jar castor-0.9.7-srcgen-ant-task.jar castor-0.9.7-XML.jar commons-logging.jar xerces.jar
編寫sourceGen.bat
@echo off
REM $Id: sourceGen.bat,v 1.1.1.1 2003/03/03 07:07:36 kvisco Exp $
set Java=%JAVA_HOME%binJava
set cp=%CLASSPATH%
for %%i in (lib*.jar) do call cp.bat %%i
set cp=%cp%;.
echo %CP%
%Java% -classpath %CP% org.exolab.castor.builder.SourceGenerator %1 %2 %3 %4 %5 %6 %7 %8 %9
最後調用sourceGen -i yourxsd.xsd -package com.test
將生成一系列對象,對象中提供兩個關鍵方法:一個靜態方法umarshal用於將xml串解析成對象模型,並且提供xml串的合法性驗證,另一個非靜態方法mashal,負責將對象模型組裝成XML串。