Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的动态Web服务(SOAP)提供程序_Java_Web Services_Soap_Wsdl_Axis2 - Fatal编程技术网

Java中的动态Web服务(SOAP)提供程序

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文件夹。这似乎有点重 基本上我只需要两种方法:

我们在组织中共享大量CSV文件,其中包含各种信息。我编写了一个小Java程序来监视某个共享文件夹并读取新的csv文件。我的目标是允许通过soapweb服务读取和更新信息。我的问题是信息结构不是静态的,因此我无法从Java结构(例如使用spring…)创建WSDL文件。我需要创建一个动态WSDL文件

我一直在研究Axis2(),但我仍然觉得我遗漏了一些东西,因为我需要动态地使用WS定义构建java类,然后编译、构建.aar包,然后将文件移动到Axis2文件夹。这似乎有点重

基本上我只需要两种方法:

  • find(id)->返回具有指定id的行,如果id为NULL,则返回all
  • 更新(id)->更新行,这里我需要动态内容,因为我需要传递应该更新的字段和类型
例如,我有一个user.csv:

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>