我们在组织中共享许多CSV文件,其中包含各种信息。我写了一个小型Java程序来监视某个共享文件夹并读取新的csv文件。我的目标是允许通过 SOAP Web 服务读取和更新信息。我的问题是信息结构不是静态的,所以我无法从我的 Java 结构创建 WSDL 文件(例如使用 spring...我需要创建一个动态的 WSDL 文件。
我正在研究 Axis2 (http://axis.apache.org/axis2/java/core/),但我仍然觉得我错过了一些东西,因为我需要动态构建带有 WS 定义的 java 类,然后编译,构建 .aar 包,然后将文件移动到 axis2 文件夹。这似乎有点沉重。
基本上我只需要两种方法:
- find(id) -> 返回具有指定 ID 的行,如果 ID 为 NULL 则返回所有
- update(id) -> 更新行,在这里我需要动态内容,因为我需要传递应该更新的字段和类型。
例如,我有一个用户.csv:
ID;FirstName;Age;Mail
01;Stephanie;27;sb@somemail.com
应该生成这样的东西:
[...]
<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>
[...]
有没有人有更好的方法来做到这一点?
干杯 斯蒂芬妮
使用一个简单的 WS,只需 2 个操作,在 xml 中对主体进行原始操作。
XML 必须与 WSDL 中的外部 XSD 兼容。在服务器中,您拥有所有 XSD,您可以验证输入并使用 Jaxb 创建一个对象,例如,您可以将其用于 CSV 上的 CRUD 操作。