groovy

2011-04-19 16 views
6

का उपयोग करके SOAP अनुरोध मैंने BI प्रकाशक वेब सेवा का आह्वान करने के लिए निम्न groovy प्रोग्राम test.groovy बनाया है। मैं साबुन प्रतिक्रिया प्राप्त करने में सक्षम हूँ। क्या कोई मुझे कृपया पीडीएफ फ़ाइल में साबुनस्पॉन्स (लिफाफा.बॉडी.रुनरपोर्टपोर्टस्पॉन्स.रुनरपोर्टपोर्ट.रपोर्टबाइट्स) लिखने में मदद कर सकता है।groovy

----------------------- test.groovy ------------------------------------ 

String username = "Administrator" 
String password = "Administrator" 
String attributeFormat = "pdf" 
String attributeLocale = "en-US" 
String reportAbsolutePath = "/WebserviceTest/eodnoticeofdormancy/eodnoticeofdormancy.xdo" 
String attributeTemplate = "Notice" 
String p_reportdate = "2011-04-08" 

def soapRequest = """<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pub="http://xmlns.oracle.com/oxp/service/PublicReportService"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <pub:runReport> 
     <pub:reportRequest> 
      <pub:attributeFormat>${attributeFormat}</pub:attributeFormat> 
      <pub:attributeLocale>${attributeLocale}</pub:attributeLocale> 
      <pub:attributeTemplate>${attributeTemplate}</pub:attributeTemplate> 
      <pub:flattenXML>true</pub:flattenXML> 
      <pub:parameterNameValues> 
       <!--Zero or more repetitions:--> 
       <pub:item> 
        <pub:multiValuesAllowed>false</pub:multiValuesAllowed> 
        <pub:name>p_reportdate</pub:name> 
        <pub:values> 
        <pub:item>${p_reportdate}</pub:item> 
        </pub:values> 
       </pub:item> 
      </pub:parameterNameValues> 
      <pub:reportAbsolutePath>${reportAbsolutePath}</pub:reportAbsolutePath> 
     <pub:sizeOfDataChunkDownload>1024</pub:sizeOfDataChunkDownload> 
     </pub:reportRequest> 
     <pub:userID>Administrator</pub:userID> 
     <pub:password>Administrator</pub:password> 
     </pub:runReport> 
    </soapenv:Body> 
</soapenv:Envelope>""" 

try { 
    def soapUrl = new URL("http://localhost/xmlpserver/services/PublicReportService") 
    def connection = soapUrl.openConnection() 
    connection.setRequestMethod("POST") 
    connection.setRequestProperty("Content-Type" ,"text/html") 
    connection.setRequestProperty("SOAPAction", "") 
    connection.doOutput = true 

    Writer writer = new OutputStreamWriter(connection.outputStream) 
    writer.write(soapRequest) 
    writer.flush() 
    writer.close() 
    connection.connect() 


    def soapResponse = connection.content.text 
    def Envelope = new XmlSlurper().parseText(soapResponse) 

    println soapResponse 

    String reportBytes = Envelope.Body.runReportResponse.runReportReturn.reportBytes 
    String reportContentType = Envelope.Body.runReportResponse.runReportReturn.reportContentType 

} catch (Exception e) { 
    println "Error occurred" 
    println "--------------" 
    println e 
    e.printStackTrace(); 
} 

कार्यक्रम के --------------------- साबुन प्रतिक्रिया इस प्रकार है ------------- - JVBERi0xLjQNCjUgMCBvYmoNCjw8DQovVHlwZSAvWE9iamVjdA0KL1N1YnR5cGUgL0ltYWdlDQovRmlsdGVyIC9EQ1REZWNvZGUNCi9MZW5ndGggNDM3NTINCi9XaWR0aCAxNDU3DQovSGVpZ2h0IDIyNA0KL0JpdHNQZXJDb21wb25lbnQgOA0KL0NvbG9yU3BhY2UgL0RldmljZVJHQg0KPj4NCnN0cmVhbQ0K/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCADgBbEDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0 RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4 + Tl5ufo6erx8vP09fb3 + PN6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3 + PN6/9oADAMBAAIRAxEAPwDkf + GgPHH/AD00/wD8Bv8A69H/AA0B44/56af/AOA3/wBevLaKAPUv + GgPHH/पीटीटी // आग/+ वी.आर./w0B44/56af8A + A3/ANevLaKAPpP4PfFDxH428W3em6u1qbeKxedfJh2HcJI1HOemGNe2V8wfs4/8lD1D/SFSF + jYq + n6ACiiigArH1/xRo/hm3EuqXixMw/dxL80kn + 6o5/HpXNeKfHhgubjStCeJrm3Xde3z4aKyTcAxx/Gw3D5RnHvyK8sfULq5jur7T5NqbSl5rmoHc0jlGRo4 + PusDkIFLDrkAcb06Lesg == आवेदन/pdfxmlp25327697.tmp

उत्तर

4

स्ट्रिंग वापस आ रहाहै, अंत में कुछ वर्णों के साथ content-type ("एप्लिकेशन/पीडीएफ") और मूल फ़ाइल नाम ("xmlp25327697.tmp") को इंगित करता है। यदि आप "एप्लिकेशन" से शुरू होने वाली हर चीज को तोड़ते हैं तो आप स्ट्रिंग को बाइट्स पर डीकोड कर सकते हैं और इसे इस तरह की फाइल में लिख सकते हैं:

byte[] decoded = reportBytes.decodeBase64() 
def myFile = new File('something.pdf') 
myFile.bytes = decoded 
+0

धन्यवाद मैट, यह उम्मीद के अनुसार काम कर रहा है। –

संबंधित मुद्दे