ดัชนีสตริงอยู่นอกช่วง: ข้อผิดพลาด -1 กับ CFFeed

ฉันมีรหัสต่อไปนี้ในไฟล์ .cfm พื้นฐาน ฉันต้องการดึง RSS ของฟีด NYTimes Business

    <cfset feedurl = "http://rss.nytimes.com/services/xml/rss/nyt/Business.xml">
    <cffeed source="#feedurl#" properties="feedmeta" query="feeditems" />
    <cfdump var="#feeditems#" label="feedItems" />

เมื่อฉันรันสิ่งนี้ ฉันได้รับข้อผิดพลาดต่อไปนี้ -

    java.lang.StringIndexOutOfBoundsException - in D:\nytimesrss.cfm : line 2
    String index out of range: -1

แต่โค้ดเดียวกันนี้ใช้ได้ดีกับ ฟีด Washington นี่เป็นปัญหาในตอนท้ายของ NYTimes หรือมีบางอย่างที่ฉันสามารถแก้ไขได้หรือไม่


person Jen    schedule 06.05.2013    source แหล่งที่มา
comment
ฉันคัดลอกและวางโค้ดบล็อกแรกของคุณแล้ว และโค้ดนั้นทำงานได้ดีสำหรับฉันใน CF9 บางทีมันอาจจะเป็นปัญหาที่เกิดขึ้นเป็นระยะ ๆ ?   -  person Sean Walsh    schedule 06.05.2013
comment
(แก้ไข) ทำงานให้ฉันด้วยภายใต้ CF10 ตรวจสอบบันทึก {cf_root}\logs\feed.log บางทีการเข้าถึงอาจถูกบล็อกหรือควบคุมปริมาณ อาจตรวจสอบข้อกำหนดของเว็บไซต์   -  person Leigh    schedule 06.05.2013
comment
ว้าว ขอบคุณ Sean และ Leigh! ฉันยังคงได้รับข้อผิดพลาด แต่นั่นเป็นการค้นพบที่น่าสนใจ   -  person Jen    schedule 06.05.2013
comment
รหัสเคยใช้ได้ผลสำหรับคุณหรือไม่? อย่างที่ @Leigh พูด เป็นไปได้ว่าคุณอาจถูกบล็อกหรือควบคุมปริมาณหากคุณดึงข้อมูลฟีดมาทั้งเช้า   -  person Sean Walsh    schedule 06.05.2013
comment
เรากำลังใช้งาน ColdFusion 8 - ฉันสงสัยว่านั่นอาจเป็นปัญหาในขณะนั้น   -  person Jen    schedule 06.05.2013
comment
Sean - ใช่แล้ว รหัสนี้ทำงานได้ดีสำหรับเรามาเป็นเวลานานแล้ว และเราใช้รหัสนี้กับฟีดต่างๆ มันเป็นเพียงฟีด NYTimes แบบสุ่มสองสามตัวที่สร้างข้อผิดพลาด แต่ฟีด NYTimes อื่นๆ ก็ใช้ได้ :)   -  person Jen    schedule 06.05.2013
comment
ตรวจสอบบันทึก พวกเขาอาจให้ข้อมูลเชิงลึกเพิ่มเติมแก่คุณว่าเป็นปัญหาการเชื่อมต่อที่ไม่ต่อเนื่องหรือไม่ (ฉันจำไม่ได้ว่ามี feed.log อยู่ใน CF8 หรือไม่)   -  person Leigh    schedule 06.05.2013
comment
ฉันเพิ่งตรวจสอบแล้ว - ไม่มีอยู่ภายใต้ CF8 อ้า!   -  person Jen    schedule 06.05.2013
comment
ตรวจสอบรายการอื่นๆ ด้วย (การประทับเวลาล่าสุด) ข้อผิดพลาดของฟีดอาจถูกบันทึกไว้ที่อื่น นอกจากนี้ ให้ทำฟีดแบบสุ่มเหล่านั้นล้มเหลวอย่างสม่ำเสมอ หรือเพียงบางครั้งเท่านั้น   -  person Leigh    schedule 06.05.2013
comment
ฉันไม่รู้ว่าจะเข้าใจ logfile ได้อย่างไร แต่นี่คือสิ่งที่เกิดขึ้น - ดัชนีสตริงอยู่นอกช่วง: -1 ลำดับเฉพาะของไฟล์ที่รวมหรือประมวลผลคือ: D:\jenelle\nytimesrss.cfm บรรทัด: 2   -  person Jen    schedule 06.05.2013
comment
(แก้ไข) ในไฟล์บันทึกใด? มีหลายรายการ และบางรายการมีรายละเอียดเพิ่มเติม กว่าคนอื่นๆ (แม้ว่าการตรวจสอบบันทึกจะไม่เสียหาย แต่ฉันไม่รู้ว่าบันทึก CF8 มีรายละเอียดมากน้อยเพียงใดเกี่ยวกับข้อผิดพลาดของฟีด คุณอาจต้องใช้พรอกซี)   -  person Leigh    schedule 06.05.2013
comment
ธุรกิจนี้ล้มเหลวอย่างต่อเนื่อง ฉันกำลังตรวจสอบและตรวจสอบตอนนี้ เนื่องจากฉันคิดว่าโฆษณาอื่นๆ ที่มีปัญหาเกี่ยวข้องกับโฆษณาในฟีดของพวกเขาและโค้ดที่เราใช้ในไฟล์ออกแบบของเราเพื่อบล็อกโฆษณาเหล่านั้น ดังนั้นในขณะนี้ธุรกิจหนึ่งดูเหมือนจะมีปัญหา ฟีดแสดงผลได้ดีในตัวเองที่ (rss.nytimes.com/services /xml/rss/nyt/Business.xml) ซึ่งทำให้ฉันนึกถึงปัญหาของเราอยู่เสมอ   -  person Jen    schedule 06.05.2013
comment
หากล้มเหลวอย่างต่อเนื่อง นั่นแสดงว่ามีการควบคุมปริมาณหรือปัญหาการเชื่อมต่อ/ไฟร์วอลล์อย่างยิ่ง คุณอาจจำเป็นต้องใช้พรอกซีเพื่อตรวจสอบการโทร http จริง อาจลองเรียก URL ฟีดด้วย cfhttp และทิ้งการตอบกลับ   -  person Leigh    schedule 06.05.2013
comment
อ๋อ! นี่อาจเป็นปัญหาหรือไม่? การแจ้งเตือน: การจัดสรรหน่วยความจำ JVM กู้คืนได้ต่ำกว่า 450 MB - อันนั้นมาจาก montior.log ข้อผิดพลาดอื่น ๆ มาจากบันทึกของแอปพลิเคชัน   -  person Jen    schedule 06.05.2013
comment
BTW - ขอบคุณสำหรับความช่วยเหลือของคุณลีห์ คำตอบของคุณช่วยให้ฉันเข้าใจสิ่งที่เกิดขึ้นจริงๆ! :)   -  person Jen    schedule 06.05.2013
comment
ฉันใช้ <cfhttp url = "http://rss.nytimes.com/services/xml/rss/nyt/Business.xml" method="get" timeout="5"> <cfdump var="#cfhttp#"> และข้อมูลทั้งหมดถูกถ่ายโอนไปยัง 'เนื้อหาไฟล์' แต่รายละเอียดข้อผิดพลาดมี [empty string]   -  person Jen    schedule 06.05.2013
comment
หืม... ฉันเพิ่งลองใช้กับ CF8 และพบข้อผิดพลาดเดียวกันใน CF8 ให้ฉันดูไฟล์บันทึก   -  person Leigh    schedule 06.05.2013
comment
ฉันใช้ที่อยู่ฟีดนั้นบนหน้าของเราเองพร้อมกับโค้ดที่เราต้องเปลี่ยนเมื่อปีที่แล้วเนื่องจากโฆษณาของพวกเขา และ ... มันได้ผล! ดังนั้นไม่ว่าจะเกิดอะไรขึ้นกับฟีดนี้เมื่อพยายามทิ้งฟีดมันก็เรื่องหนึ่ง แต่ฟีดกำลังทำงานอยู่ ขอบคุณมากสำหรับความช่วยเหลือของคุณ! @Leigh - คุณเป็นดารา!   -  person Jen    schedule 06.05.2013
comment
ด้วยรหัสที่เราต้องเปลี่ยนเมื่อปีที่แล้ว ด้วยความสงสัยว่ารหัสจริงคืออะไร รู้สึกอิสระที่จะโพสต์มันเป็นคำตอบ ฉันเดาว่าโค้ดเก่าไม่ได้ใช้ cfffeed .. ? เพราะในการทดสอบของฉัน ฟีด ดึงข้อมูล ได้สำเร็จ แต่มีบางอย่างเกี่ยวกับมันที่ cffeed ไม่ชอบ... (ดีใจที่คุณพบวิธีแก้ไข btw :)   -  person Leigh    schedule 06.05.2013
comment
ควรโพสต์คำตอบเป็นคำตอบ และคำถามจะอัปเดตด้วยข้อมูลที่เกี่ยวข้องจากความคิดเห็นเหล่านี้ ความคิดเห็นที่ยาวเหยียดเป็นเรื่องยากที่ผู้คนจะติดตาม   -  person George Stocker    schedule 07.05.2013
comment
@Jen ทั้งหมดนี้ควรอยู่ในคำถามของคุณ (คุณสามารถแก้ไขคำถามของคุณโดยใช้ลิงก์ 'แก้ไข' ด้านล่างคำถาม) การใส่ไว้ในความคิดเห็นทำให้การติดตามทำได้ยากขึ้นมาก (และความคิดเห็นอาจถูกลบได้ตลอดเวลา)   -  person George Stocker    schedule 07.05.2013
comment
ขอบคุณสำหรับเคล็ดลับ @GeorgeStocker - เริ่มแก้ไขแล้ว :)   -  person Jen    schedule 07.05.2013
comment
ดูเหมือนว่าคุณกำลังใช้โค้ดอื่นในการแยกวิเคราะห์ฟีด และข้อผิดพลาดใหม่เกี่ยวข้องกับการเปลี่ยนแปลงนั้น ถ้าเป็นเช่นนั้น ฉันจะเปิดกระทู้ใหม่ (แทนที่จะรวมปัญหา) และปิดกระทู้นี้ คำตอบสำหรับคำถามเดิมดูเหมือนว่าแท็ก cffeed ของ CF8 ไม่สามารถแยกวิเคราะห์ฟีดนั้นได้ อย่างไรก็ตาม ดูเหมือนว่าปัญหาจะได้รับการแก้ไขในเวอร์ชันที่ใหม่กว่า เช่น CF9/10   -  person Leigh    schedule 08.05.2013


คำตอบ (1)


ฉันทามติคือแท็ก <cffeed> ของ CF8 ไม่สามารถแยกวิเคราะห์ฟีดของ NYT ได้ อย่างไรก็ตาม ดูเหมือนว่าปัญหาจะได้รับการแก้ไขในเวอร์ชันที่ใหม่กว่า เช่น CF9/10

person Jen    schedule 08.05.2013
comment
มันจะช่วยให้ผู้อื่นรู้ว่าท้ายที่สุดแล้วคุณใช้อะไรแทน คุณได้ดึงฟีดด้วย cfhttp แล้วใช้ xmlParse(cfhttp.fileContent) หรือไม่ - person Leigh; 08.05.2013
comment
ฉันได้ยกเลิกการลบแล้ว - ฉันแค่ไม่อยากให้คุณเสียเวลาอีกต่อไป :( ... อย่างที่คุณบอกได้ว่าฉันจบเรื่องนี้แล้ว :( - person Jen; 08.05.2013