การดีบัก Groovy ในตัวแก้ไขแบบอินไลน์ของ Jira Scriptrunner

ฉันเป็นโปรแกรมเมอร์ที่เพิ่งเริ่มต้นทำงานกับ Groovy ใน Jira เพื่อทำให้งานบางอย่างเป็นแบบอัตโนมัติ

ฉันกำลังพยายามเขียนสคริปต์ Listener แบบกำหนดเองโดยใช้โปรแกรมแก้ไขแบบอินไลน์ใน Jira แต่ยังไม่เคยผ่านการพยายามให้โปรแกรม Hello World ทำงานได้

ฉันไม่รู้ว่าสคริปต์กำลังทำงานอยู่หรือไม่ และไม่เห็นเอาต์พุตใดๆ และฉันต้องการความช่วยเหลือจริงๆ ในการหาวิธีแก้ไขข้อบกพร่องของสคริปต์ โดยเฉพาะอย่างยิ่งผ่านเอาต์พุตไปยังคอนโซลบางประเภท (หรือแม้แต่โดยการอ่าน Jira บันทึกหากจำเป็น) เพียงเพื่อที่ฉันจะได้เริ่มลองเรียนรู้วิธีใช้เครื่องมือนี้ได้จริงๆ

ฉันกำลังทำงานกับข้อมูล ที่นี่ เพื่อเป็นแนวทางทั่วไป เพื่อเริ่มเรียนรู้การทำงานกับโปรแกรมแก้ไขอินไลน์

สำหรับบริบทเพิ่มเติมเล็กน้อย คุณสามารถดูคำถามอื่นที่เกี่ยวข้องที่ฉันถาม ที่นี่

ฉันได้ตั้งค่าระดับการแก้ไขข้อบกพร่องเป็น DEBUG สำหรับเหตุการณ์ที่ฉันแนบ Listener ดังที่แสดงในภาพหน้าจอนี้ ตามข้อมูลที่พบ ที่นี่: การกำหนดค่าการแก้ไขข้อบกพร่อง

นี่คือภาพหน้าจอของเครื่องมือแก้ไขอินไลน์ที่ฉันทำงานใน JIRA ในภาพหน้าจอนี้ ฉันแค่พยายามแสดงข้อความ 'Hello' และเพิ่งคลิกปุ่ม 'ดูตัวอย่าง': ป้อนคำอธิบายรูปภาพที่นี่

อย่างที่คุณเห็นในแท็บ 'ผลลัพธ์' ที่ด้านล่างของหน้าจอ ไม่มีอะไรน่าสนใจเลย แท็บ 'บันทึก' ก็ว่างเปล่าเช่นกัน และแท็บ 'เวลา' ก็แจ้งว่า 'ผ่านไป: 0 ms เวลา CPU: 0 ms' ดังนั้นจึงดูเหมือนว่าจะไม่มีอะไรเกิดขึ้น

หากฉันตรวจสอบบันทึกบนเซิร์ฟเวอร์ (ในไฟล์ catalina.2017-10-13.txt) ฉันจะเห็นผลลัพธ์ต่อไปนี้:

13-Oct-2017 07:01:50.942 WARNING [http-nio-8080-exec-6] com.sun.jersey.spi.container.servlet.WebComponent.filterFormParameters A servlet request, to the URI http://somevmserver:8080/rest/scriptrunner-jira/latest/listeners/com.onresolve.scriptrunner.canned.jira.workflow.listeners.CustomListener/params, contains form parameters in the request body but the request body has been consumed by the servlet or a servlet filter accessing the request parameters. Only resource methods using @FormParam will work as expected. Resource methods consuming the request body by other means will not work as expected.
13-Oct-2017 07:02:26.740 WARNING [http-nio-8080-exec-12] com.sun.jersey.spi.container.servlet.WebComponent.filterFormParameters A servlet request, to the URI http://somevmserver:8080/rest/scriptrunner/latest/canned/com.onresolve.scriptrunner.canned.common.StaticCompilationChecker, contains form parameters in the request body but the request body has been consumed by the servlet or a servlet filter accessing the request parameters. Only resource methods using @FormParam will work as expected. Resource methods consuming the request body by other means will not work as expected.
13-Oct-2017 07:02:26.974 WARNING [http-nio-8080-exec-1] com.sun.jersey.spi.container.servlet.WebComponent.filterFormParameters A servlet request, to the URI http://somevmserver:8080/rest/scriptrunner-jira/latest/listeners/com.onresolve.scriptrunner.canned.jira.workflow.listeners.CustomListener/preview, contains form parameters in the request body but the request body has been consumed by the servlet or a servlet filter accessing the request parameters. Only resource methods using @FormParam will work as expected. Resource methods consuming the request body by other means will not work as expected.

ผลลัพธ์นี้ไม่ได้มีความหมายอะไรมากมายสำหรับฉัน แต่ดูเหมือนว่าจะชัดเจนว่ามีการเติมข้อมูลดังกล่าวอันเป็นผลมาจากการพยายามดูตัวอย่างสคริปต์

ฉันไม่ได้รับข้อผิดพลาดใดๆ ในตัวแก้ไขแบบอินไลน์ และมันเป็นโค้ดที่ง่ายมาก ดังนั้นฉันจึงไม่คิดว่าจะเป็นเช่นนั้น

ข้อมูลอื่นเดียวที่ฉันสามารถรวมไว้ซึ่งฉันคิดว่าเกี่ยวข้องก็คือนี่คืออินสแตนซ์ทดสอบของ Jira ที่โคลนมาจากสภาพแวดล้อมการใช้งานจริงของเรา และ URL พื้นฐานของมันยังคงตั้งค่าเป็น URL ของสภาพแวดล้อมการผลิต ไม่แน่ใจว่ามีผลกระทบหรือไม่ แต่ฉันไม่ใช่ผู้ดูแลระบบของ Jira จริงๆ แค่เป็นโปรแกรมเมอร์ที่ได้รับมอบหมายให้ทำสิ่งนี้ ดังนั้นฉันจึงไม่อยากเล่นซอในที่ที่ไม่จำเป็น

ขอบคุณ!


person JEJoll    schedule 13.10.2017    source แหล่งที่มา


คำตอบ (2)


เมื่อใช้ scriptrunner ภายใน jira คุณจะต้องนำเข้าตัวบันทึกเพื่อใช้โปรแกรมดีบักเกอร์หรือส่งออกไปยังคอนโซล ซึ่งสามารถทำได้ดังต่อไปนี้:

// Enable debugger
import org.apache.log4j.Logger
import org.apache.log4j.Level

def log = Logger.getLogger("com.acme.CreateSubtask")
log.setLevel(Level.DEBUG)

จากนั้นคุณจะสามารถดูข้อมูลที่บันทึกไว้โดยใช้ log.debug "hello"

person Sandy Garrido    schedule 22.07.2019

หากต้องการดูข้อความแก้ไขข้อบกพร่อง "สวัสดี" ในบันทึก คุณต้องอัปเดตปัญหาในโครงการที่คุณเลือก แท็บผลลัพธ์ บันทึก และกำหนดเวลาที่ด้านล่างไม่มีประโยชน์ในมุมมองนี้ เพียงทริกเกอร์ Listener ด้วยการอัปเดตปัญหาในโปรเจ็กต์ที่คุณเลือก และค้นหาข้อความแก้ไขข้อบกพร่องในไฟล์ atlassian-jira.log

คำแนะนำ: หากต้องการดูการเข้าสู่ระบบในเบราว์เซอร์ คุณสามารถใช้แอป jira นี้ https://marketplace.atlassian.com/plugins/com.cps.lastLog/server/overview

person Community    schedule 11.02.2018