ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อฉันเรียกใช้แอปพลิเคชันสาธิต JSF บนคอนโซล
[SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:JSFTut' did not find a matching property.
ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อฉันเรียกใช้แอปพลิเคชันสาธิต JSF บนคอนโซล
[SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:JSFTut' did not find a matching property.
คำตอบ:
นี่ไม่ใช่ข้อผิดพลาด นี่คือคำเตือน ความแตกต่างค่อนข้างมาก คำเตือนนี้โดยทั่วไปหมายความว่า<Context>
องค์ประกอบใน Tomcat server.xml
มีแอตทริบิวต์ที่ไม่รู้จักsource
และ Tomcat ไม่รู้ว่าจะทำอย่างไรกับแอตทริบิวต์นี้จึงจะเพิกเฉย
Eclipse WTP เพิ่มแอ็ตทริบิวต์แบบกำหนดเองsource
ให้กับ<Context>
องค์ประกอบที่เกี่ยวข้องกับโปรเจ็กต์ในserver.xml
Tomcat ซึ่งระบุแหล่งที่มาของบริบท (โปรเจ็กต์จริงในเวิร์กสเปซที่ปรับใช้กับเซิร์ฟเวอร์เฉพาะ) วิธีนี้ Eclipse สามารถเชื่อมโยงเว็บแอปพลิเคชันที่ปรับใช้กับโปรเจ็กต์ในเวิร์กสเปซ ตั้งแต่ Tomcat เวอร์ชัน 6.0.16 แท็ก XML และแอตทริบิวต์ที่ไม่ระบุใด ๆ ในserver.xml
จะสร้างคำเตือนระหว่างการเริ่มต้นของ Tomcat แม้ว่าจะไม่มี DTD หรือ XSDสำหรับserver.xml
ก็ตาม
เพียงแค่ไม่สนใจมัน โครงการเว็บของคุณเรียบร้อยดี มันควรจะทำงานได้ดี ปัญหานี้ไม่เกี่ยวข้องกับ JSF อย่างสิ้นเชิง
log4j.logger.org.apache.tomcat.util.digester.Digester = ERROR
ลบโปรเจ็กต์ออกจากเซิร์ฟเวอร์จากมุมมองเซิร์ฟเวอร์ จากนั้นรันโปรเจ็กต์ภายใต้เซิร์ฟเวอร์เดียวกัน
ปัญหาคือตามที่ @BalusC แจ้งว่าเสียหายของ server.xml ของ tomcat ซึ่งกำหนดค่าไว้ใน eclipse ดังนั้นเมื่อคุณทำกระบวนการข้างต้น server.xml จะถูกสร้างขึ้นใหม่
ฉันคิดว่าฉันจะเพิ่มสิ่งนั้นสำหรับ Tomcat 7.x <Context>
ไม่ได้อยู่ในไฟล์server.xml
แต่อยู่ในไฟล์context.xml
. การลบและเพิ่มโครงการใหม่ดูเหมือนจะไม่ช่วยปัญหาที่คล้ายกันของฉันซึ่งเป็นปัญหา web.xml ซึ่งฉันพบโดยการตรวจสอบสิ่งcontext.xml
ที่มีบรรทัดนี้ใน<Context>
ส่วน:
<WatchedResource>WEB-INF/web.xml</WatchedResource>
วิธีแก้ปัญหาในคำเตือน: การตั้งค่าคุณสมบัติ 'source' เป็น 'org.eclipse.jst.jee.server: appname' ไม่พบคุณสมบัติที่ตรงกันทำให้ฉันเข้าใกล้คำตอบมากขึ้นเนื่องจากการเปลี่ยนแปลงการเผยแพร่เป็น XML แยกกันได้แก้ไขข้อผิดพลาด รายงานข้างต้นสำหรับฉัน แต่น่าเสียดายที่เกิดข้อผิดพลาดที่สองซึ่งฉันยังคงตรวจสอบอยู่
WARNING: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:myproject' did not find a matching property.
ฉันประสบปัญหาที่คล้ายกัน ขั้นตอนในการแก้ไขปัญหานี้
หวังว่านี่จะเหมาะกับคุณเช่นกัน
เกี่ยวกับการตั้งค่า logging.properties
org.apache.tomcat.util.digester.Digester.level = SEVERE
... หากคุณกำลังเรียกใช้เซิร์ฟเวอร์ tomcat แบบฝังใน eclipse logging.properties
ไฟล์ที่ใช้โดยค่าเริ่มต้นจะเป็นค่าเริ่มต้น JDK ที่%JAVA_HOME%/jre/lib/logging.properties
หากคุณต้องการใช้ไฟล์ logging.properties อื่น (เช่นในconf
ไดเร็กทอรีของเซิร์ฟเวอร์ tomcat ) จำเป็นต้องตั้งค่าผ่านjava.util.logging.config.file
คุณสมบัติระบบ เช่นใช้คุณสมบัติการบันทึกที่กำหนดในไฟล์c:\java\apache-tomcat-7.0.54\conf\eclipse-logging.properties
ให้เพิ่มสิ่งนี้ในรายการอาร์กิวเมนต์ VM:
-Djava.util.logging.config.file="c:\java\apache-tomcat-7.0.54\conf\eclipse-logging.properties"
(ดับเบิลคลิกที่ไอคอนเซิร์ฟเวอร์คลิก "เปิดการกำหนดค่าการเปิดตัว" เลือกแท็บอาร์กิวเมนต์จากนั้นป้อนสิ่งนี้ในกล่องข้อความ "อาร์กิวเมนต์ VM")
คุณอาจพบว่าการเพิ่มอาร์กิวเมนต์ VM มีประโยชน์
-Djava.util.logging.SimpleFormatter.format="%1$tc %4$s %3$s %5$s%n"
เช่นกันซึ่งจะรวมชื่อผู้บันทึกต้นทางไว้ในเอาต์พุตซึ่งจะทำให้ง่ายต่อการกำหนดว่าจะเค้นตัวบันทึกใดในไฟล์ logging.properties (ตามhttp://docs.oracle.com/javase/7/docs /api/java/util/logging/SimpleFormatter.html )
เนื่องจากคอมมิตนี้จึงได้รับการแก้ไขใน Tomcat เวอร์ชันพัฒนา และตอนนี้ในเวอร์ชัน 9.0.13, 8.5.35 และ 7.0.92
จากบันทึกการเปลี่ยนแปลง 9.0.13 :
ละเว้นแอตทริบิวต์ที่มีชื่อซอร์สบนองค์ประกอบบริบทที่จัดเตรียมโดย StandardContext นี่คือการระงับคำเตือนที่สร้างโดยการรวม Eclipse / Tomcat ที่จัดเตรียมโดย Eclipse อ้างอิงจากโปรแกรมแก้ไขโดย mdfst13 (เครื่องหมาย)
มีรายการที่คล้ายกันในเป็น7.0.92และ8.5.35 changelogs
ผลกระทบของการเปลี่ยนแปลงนี้คือการระงับคำเตือนเมื่อมีการsource
ประกาศแอตทริบิวต์บนContext
องค์ประกอบใน server.xml หรือ context.xml เนื่องจากสถานที่เหล่านี้เป็นสองตำแหน่งที่ Eclipse วางแอตทริบิวต์ดังกล่าวจึงแก้ไขปัญหานี้โดยเฉพาะ
TL; DR : อัปเดตเป็น Tomcat เวอร์ชันล่าสุดในสาขาเช่น 9.0.13 หรือใหม่กว่า
นี่เป็นวิธีง่ายๆสำหรับคำเตือนนี้:
คุณสามารถเปลี่ยนคอนฟิกูเรชันเซิร์ฟเวอร์ eclipse tomcat เปิดมุมมองเซิร์ฟเวอร์ดับเบิลคลิกที่เซิร์ฟเวอร์ของคุณเพื่อเปิดการกำหนดค่าเซิร์ฟเวอร์ มีแท็บตัวเลือกเซิร์ฟเวอร์ ภายในแท็บนั้นให้คลิกช่องทำเครื่องหมายเพื่อเปิดใช้งาน " เผยแพร่เนื้อหาโมดูลไปยังไฟล์ XML ที่แยกจากกัน "
สุดท้ายรีสตาร์ทเซิร์ฟเวอร์ของคุณข้อความจะต้องหายไป
โปรดตรวจสอบว่าไฟล์ jar ใด ๆ ที่หายไปโดยเฉพาะ jars อาจถูกนำมาใช้ในเครื่องดังนั้นให้ใส่ลงในโฟลเดอร์ lib จากนั้นสร้างไฟล์ WAR