से जैस्परसेवर पर चल रही रिपोर्ट क्रिस्टल रिपोर्ट्स के लिए एक शानदार ओपन सोर्स विकल्प है। बहु पृष्ठ रिपोर्टों के लिए अक्षरों & चालान जैसे एकल पृष्ठ पीडीएफ पृष्ठों के लिए यह बहुत अच्छा है। हालांकि यह बहुत ही अनुकूल नहीं है, और जेस्परसेवर के साथ अच्छा खेलने के लिए सी #/मोनो प्राप्त करना उपयोगी नहीं रहा है।सी #
क्या किसी को किसी भी कोड नमूने मिलते हैं कि कैसे JasperServer पर सी # से रिपोर्ट चलाने के लिए, और एसओएपी अनुरोध के साथ एक एक्सएमएल डेटासेट संलग्न करें? इसे मोनो पर काम करने की ज़रूरत है, इसलिए माइक्रोसॉफ्ट.Web.Services2 सवाल से बाहर है।
मुझे अपना साबुन अनुरोध रोल करने की कोशिश में जाना पड़ा। जैस्पर सर्वर इसे स्वीकार करता प्रतीत होता है, लेकिन मुझे लगता है कि सर्वर 500 त्रुटि के अलावा कोई प्रतिक्रिया नहीं मिलती है। मैं एमटीओएम लगाव को जोड़ने के रूप में नहीं मिला था।
var sb = new StringBuilder();
sb.AppendLine("<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">");
sb.AppendLine("<s:Body s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">");
sb.AppendLine("<q1:runReport xmlns:q1=\"http://axis2.ws.jasperserver.jaspersoft.com\">");
sb.AppendLine("<requestXmlString xsi:type=\"xsd:string\">");
sb.AppendLine("<request operationName=\"runReport\" locale=\"en\">");
sb.AppendLine(" <argument name=\"RUN_OUTPUT_FORMAT\">PDF</argument>");
sb.AppendFormat(" <resourceDescriptor name=\"\" wsType=\"\" uriString=\"{0}\" isNew=\"false\">", "/JourneyReport");
sb.AppendLine(" <label>null</label>");
sb.AppendLine(" <parameter name=\"testparam\">1</parameter>");
sb.AppendLine(" </resourceDescriptor>");
sb.AppendLine(" </request>");
sb.AppendLine("</requestXmlString>");
sb.AppendLine("</q1:runReport>");
sb.AppendLine("</s:Body></s:Envelope>");
var webRequest = (HttpWebRequest)WebRequest.Create("http://localhost:8080/jasperserver/services/repository");
webRequest.Credentials = new NetworkCredential("jasperadmin","jasperadmin");
webRequest.PreAuthenticate = true;
webRequest.Headers.Add("SOAPAction","");
//Set HttpWebRequest properties
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(sb.ToString());
webRequest.Method = "POST";
webRequest.ContentLength = bytes.Length;
webRequest.ContentType = "text/xml; encoding='utf-8'";
//Get Stream object
var objRequestStream = webRequest.GetRequestStream();
objRequestStream.Write(bytes, 0, bytes.Length);
objRequestStream.Close();
var response = (HttpWebResponse)webRequest.GetResponse();
यह पोस्ट आपकी सहायता कर सकता है: http://stackoverflow.com/questions/4351511/upload-report-unit-via-webservice-in-c-sharp-net -to-jasperserver –
धन्यवाद, लेकिन यह मोनो पर काम नहीं करेगा। मुझे यह देखना होगा कि क्या मुझे एक अलग एसओएपी लाइब्रेरी मिल सकती है, या इसे मैन्युअल रूप से करें। – FlappySocks
एक वाणिज्यिक घटक है एक विकल्प? – Yahia