当我向Web服务方法发出请求时,如何在java代码中使用一些所需的参数

时间:2013-08-16 12:30:11

标签: java eclipse wsdl

我是在wsdl文件上使用eclipse选项“Generate Client”编写的java代码。 之后,我正在尝试使用生成的代码创建对Web服务器的请求。 但是在这一步中存在一个小问题:请求需要4个参数,其中2个参数是可选的。如果将theese参数的值设置为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>

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

P.S。抱歉我的英语不好:)

0 个答案:

没有答案