0
我們在我們的組織中共享了很多CSV文件,其中包含各種信息。我編寫了一個小型Java程序來監視某個共享文件夾並讀取新的csv文件。我的目標是允許通過SOAP Web服務讀取和更新信息。我的問題是信息結構不是靜態的,所以我不能從我的Java結構創建一個WSDL文件(例如使用spring ...)。我需要創建一個動態的WSDL文件。我正在研究Axis2(http://axis.apache.org/axis2/java/core/),但我仍然覺得我錯過了一些東西,因爲我需要用動態生成的WS定義構建java類,然後編譯,構建.aar包,然後移動該文件到axis2文件夾。這似乎有點沉重。Java中的動態Web服務(SOAP)提供程序
基本上我只需要兩個方法:
- 發現(ID) - >返回與指定ID行,如果ID爲NULL,則返回所有
- 更新(ID) - >更新行,在這裏我需要動態內容,因爲我需要傳遞字段和應該更新的類型。
比如我有一個user.csv:
ID;FirstName;Age;Mail
01;Stephanie;27;[email protected]
應該產生這樣的:
[...]
<xsd:element name="delete">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="id" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="insert">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="id" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="0" name="FirstName" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="0" name="Age" type="xsd:integer" />
<xsd:element maxOccurs="1" minOccurs="0" name="Mail" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
[...]
有沒有人有更好的方式做到這一點?
乾杯, 斯蒂芬妮
所以你建議我自己編寫SWDL文件(自己生成它)?但是終點不知道如何處理這些「田野」,還是我誤解了? – Stephanie
你可以在一個byte []字段中輸入一個xml文件來表示一個輸入,在另一個字段中爲另一個字段添加一個唯一的ID以供端點更新,所以在服務器中你可以實現一個工廠模式,這個工廠模式爲你提供一個基於唯一ID的端點實現。現在對於端點你有一個特定的XSD來驗證其他字段中的輸入(字節[]),你可以驗證並創建正確的對象。無論你想要什麼,都可以進行CRUD操作。主ws只是一個知道密鑰實現的路由器。所有其他XSD都與客戶端外部共享,而不是WSDL的一部分 –