1

我正在使用 wsdl 文件上的 eclipse 选项“生成客户端”来生成 java 代码。之后,我尝试使用生成的代码创建对 Web 服务器的请求。但是这一步有一个小问题:请求需要4个参数,其中2个参数是可选的。如果将这些参数的值设置为 NULL,则会出现错误。如果简单的话,请求具有以下格式:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://ossj.org/xml/Inventory/v1-2" xmlns:v11="http://ossj.org/xml/Common/v1-5">
   <soapenv:Header/>
   <soapenv:Body>
      <v1:getEntityByKeyRequest>
         <v1:entityKey>
            <!--Optional:-->
            <v11:applicationContext>
               <!--Optional:-->
               <v11:factoryClass>?</v11:factoryClass>
               <!--Optional:-->
               <v11:URL>?</v11:URL>
               <!--Optional:-->
               <v11:systemProperties>
                  <!--Zero or more repetitions:-->
                  <v11:property>
                     <v11:name>?</v11:name>
                     <v11:value>?</v11:value>
                  </v11:property>
               </v11:systemProperties>
            </v11:applicationContext>
            <!--Optional:-->
            <v11:applicationDN>?</v11:applicationDN>
            <v11:type>?</v11:type>
            <!--Optional:-->
            <v11:primaryKey>?</v11:primaryKey>
         </v1:entityKey>
         <v1:attrNames>
            <!--Zero or more repetitions:-->
            <v11:item>?</v11:item>
         </v1:attrNames>
      </v1:getEntityByKeyRequest>
   </soapenv:Body>
</soapenv:Envelope>

我需要发送这种形式的 XML:

<v1:getEntityByKeyRequest xmlns:v1="http://ossj.org/xml/Inventory/v1-2" xmlns:v12="http://ossj.org/xml/Common-CBEResource/v1-5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v11="http://ossj.org/xml/Common/v1-5">
      <v1:entityKey xsi:type="v12:ResourceKey">
        <v11:type xsi:type="xs:string">resourceKey</v11:type>
        <v11:primaryKey xsi:type="xs:string">9135950291913240207</v11:primaryKey>
      </v1:entityKey>
<attrNames>
    <v1:item>9132441843113500508</v1:item>
</attrNames>
</v1:getEntityByKeyRequest>

但是,使用生成的 java 代码,Web 服务会以这种形式接收 XML

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://ossj.org/xml/Inventory/v1-2" xmlns:v11="http://ossj.org/xml/Common/v1-5">
   <soapenv:Header/>
   <soapenv:Body>
      <v1:getEntityByKeyRequest>
         <v1:entityKey>
            <v11:applicationContext>
               <v11:factoryClass></v11:factoryClass>
               <v11:URL></v11:URL>
               <v11:systemProperties>
                  <v11:property>
                     <v11:name></v11:name>
                     <v11:value></v11:value>
                  </v11:property>
               </v11:systemProperties>
            </v11:applicationContext>
            <v11:applicationDN></v11:applicationDN>
            <v11:type>resourceKey</v11:type>
            <v11:primaryKey>9135950291913240207</v11:primaryKey>
         </v1:entityKey>
         <v1:attrNames>
            <v11:item></v11:item>
         </v1:attrNames>
      </v1:getEntityByKeyRequest>
   </soapenv:Body>
</soapenv:Envelope>

那么,如何使用只有 4 个参数中的 2 个的 java 代码请求 Web 服务呢?

PS对不起我的英语不好:)

4

0 回答 0