আমি গত 48 ঘন্টা ধরে এই একেবারে উত্সাহী বাগের বিরুদ্ধে আমার মাথাটি মারছি, তাই আমি ভেবেছিলাম অবশেষে তোয়ালেটি ফেলে দিয়ে আমার ল্যাপটপটি উইন্ডো থেকে ফেলে দেওয়ার আগে এখানে জিজ্ঞাসা করার চেষ্টা করব।
আমি ডাব্লুএসএস সিম্পলডিবিতে করা একটি কল থেকে প্রতিক্রিয়া এক্সএমএলকে পার্স করার চেষ্টা করছি। প্রতিক্রিয়া আবার ঠিক তারে ফিরে আসছে; উদাহরণস্বরূপ, এটি দেখতে দেখতে হতে পারে:
<?xml version="1.0" encoding="utf-8"?>
<ListDomainsResponse xmlns="http://sdb.amazonaws.com/doc/2009-04-15/">
<ListDomainsResult>
<DomainName>Audio</DomainName>
<DomainName>Course</DomainName>
<DomainName>DocumentContents</DomainName>
<DomainName>LectureSet</DomainName>
<DomainName>MetaData</DomainName>
<DomainName>Professors</DomainName>
<DomainName>Tag</DomainName>
</ListDomainsResult>
<ResponseMetadata>
<RequestId>42330b4a-e134-6aec-e62a-5869ac2b4575</RequestId>
<BoxUsage>0.0000071759</BoxUsage>
</ResponseMetadata>
</ListDomainsResponse>
আমি এই এক্সএমএলে পার্সারের সাথে পাস করেছি
XMLEventReader eventReader = xmlInputFactory.createXMLEventReader(response.getContent());
এবং eventReader.nextEvent();
আমি চাই ডেটা পেতে একগুচ্ছ বার কল করুন ।
এখানে উদ্ভট অংশটি - এটি স্থানীয় সার্ভারের অভ্যন্তরে দুর্দান্ত কাজ করে। প্রতিক্রিয়া আসে, আমি এটি পার্স, সবাই খুশি। সমস্যাটি হ'ল আমি যখন গুগল অ্যাপ ইঞ্জিনে কোডটি স্থাপন করি, তখন বহির্গামী অনুরোধটি এখনও কাজ করে এবং এক্সএমএল প্রতিক্রিয়াটি আমার কাছে 100% অভিন্ন এবং সঠিক বলে মনে হয়, তবে প্রতিক্রিয়াটি নিম্নলিখিত ব্যতিক্রমের সাথে বিশ্লেষণ করতে ব্যর্থ হয়:
com.amazonaws.http.HttpClient handleResponse: Unable to unmarshall response (ParseError at [row,col]:[1,1]
Message: Content is not allowed in prolog.): <?xml version="1.0" encoding="utf-8"?>
<ListDomainsResponse xmlns="http://sdb.amazonaws.com/doc/2009-04-15/"><ListDomainsResult><DomainName>Audio</DomainName><DomainName>Course</DomainName><DomainName>DocumentContents</DomainName><DomainName>LectureSet</DomainName><DomainName>MetaData</DomainName><DomainName>Professors</DomainName><DomainName>Tag</DomainName></ListDomainsResult><ResponseMetadata><RequestId>42330b4a-e134-6aec-e62a-5869ac2b4575</RequestId><BoxUsage>0.0000071759</BoxUsage></ResponseMetadata></ListDomainsResponse>
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
Message: Content is not allowed in prolog.
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(Unknown Source)
at com.sun.xml.internal.stream.XMLEventReaderImpl.nextEvent(Unknown Source)
at com.amazonaws.transform.StaxUnmarshallerContext.nextEvent(StaxUnmarshallerContext.java:153)
... (rest of lines omitted)
আমার ডাবল, ট্রিপল, চতুর্ভুজটি 'অদৃশ্য অক্ষর' বা নন-ইউটিএফ 8 এনকোডেড অক্ষর ইত্যাদির জন্য এই এক্সএমএলটি পরীক্ষা করেছে I কিছুই; এটি প্রতিটি বৈধতা পরীক্ষায় উত্তীর্ণ হয় যে আমি এটি ফেলে দিতে পারি। এমনকি অপরিচিত, এমনকি যদি আমি স্যাকসন ভিত্তিক পার্সার ব্যবহার করি তবে এটি ঘটে - তবে কেবলমাত্র GAE এ, এটি আমার স্থানীয় পরিবেশে সর্বদা সূক্ষ্মভাবে কাজ করে।
সমস্যার জন্য কোডটি সন্ধান করা খুব শক্ত করে তোলে যখন আমি কেবল এমন পরিবেশে ডিবাগারটি চালাতে পারি যা পুরোপুরি কার্যকর হয় (আমি GAE এ দূরবর্তীভাবে ডিবাগ করার কোনও ভাল উপায় পাইনি)। তবুও, আমার কাছে আদিম উপায়গুলি ব্যবহার করে, আমি মিলিয়ন মিলিয়ন পদ্ধতির চেষ্টা করেছি:
- এক্সএমএল প্রোলগ সহ এবং ছাড়াই
- নতুন লাইনের সাথে এবং ছাড়াও
- প্রোলগে "এনকোডিং =" বৈশিষ্ট্য সহ এবং ছাড়াই
- উভয় নতুন লাইনের শৈলী
- এইচটিটিপি স্ট্রিমে উপস্থিত চমকপ্রদ তথ্য সহ এবং ছাড়াই
এবং আমি এগুলির বেশিরভাগ একাধিক সংমিশ্রণে চেষ্টা করেছি যেখানে বোঝা গেল যে তারা মিথস্ক্রিয়া করবে - কিছুই না! আমি আমার বুদ্ধি শেষে। এর আগে কেউ কি এর আগে এমন কিছু সমস্যা দেখেছেন আশা করে এর উপর কিছু আলোকপাত করতে পারে?
ধন্যবাদ!