Java中的动态Web服务(SOAP)提供程序
我们在组织中共享大量CSV文件,其中包含各种信息。我编写了一个小Java程序来监视某个共享文件夹并读取新的csv文件。我的目标是允许通过soapweb服务读取和更新信息。我的问题是信息结构不是静态的,因此我无法从Java结构(例如使用spring…)创建WSDL文件。我需要创建一个动态WSDL文件 我一直在研究Axis2(),但我仍然觉得我遗漏了一些东西,因为我需要动态地使用WS定义构建java类,然后编译、构建.aar包,然后将文件移动到Axis2文件夹。这似乎有点重 基本上我只需要两种方法:Java中的动态Web服务(SOAP)提供程序,java,web-services,soap,wsdl,axis2,Java,Web Services,Soap,Wsdl,Axis2,我们在组织中共享大量CSV文件,其中包含各种信息。我编写了一个小Java程序来监视某个共享文件夹并读取新的csv文件。我的目标是允许通过soapweb服务读取和更新信息。我的问题是信息结构不是静态的,因此我无法从Java结构(例如使用spring…)创建WSDL文件。我需要创建一个动态WSDL文件 我一直在研究Axis2(),但我仍然觉得我遗漏了一些东西,因为我需要动态地使用WS定义构建java类,然后编译、构建.aar包,然后将文件移动到Axis2文件夹。这似乎有点重 基本上我只需要两种方法:
- find(id)->返回具有指定id的行,如果id为NULL,则返回all
- 更新(id)->更新行,这里我需要动态内容,因为我需要传递应该更新的字段和类型
ID;FirstName;Age;Mail
01;Stephanie;27;sb@somemail.com
这将产生如下结果:
[……]
[……]
有人有更好的方法吗
干杯,
Stephanie使用简单的WS-just with 2操作,使用xml中的主体原始数据
xml必须与WSDL中的外部XSD兼容。在服务器中,您拥有所有XSD,您可以验证输入并使用Jaxb创建一个对象,例如,您可以将其用于CSV上的CRUD操作。所以您建议我自己编写SWDL文件(自己生成)?但是,端点将不知道如何处理“字段”,或者我弄错了吗?您可以在byte[]字段中放入表示输入的xml文件,在另一个字段中放入端点要更新的唯一ID,因此,在服务器中,您可以实现一个工厂模式,该模式为您提供基于唯一ID的端点实现。现在对于端点,您有一个特定的XSD来验证另一个字段(字节[])中的输入,您可以验证并创建正确的对象e make CRUD操作,无论您想在哪里。主ws只是一个知道密钥实现的路由器。所有其他XSD都与客户机在外部共享,而不是WSDL的一部分
<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>