การตั้งค่าคุณสมบัติ 'source' เป็น 'org.eclipse.jst.jee.server: JSFTut' ไม่พบคุณสมบัติที่ตรงกัน


103

ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อฉันเรียกใช้แอปพลิเคชันสาธิต JSF บนคอนโซล

[SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:JSFTut' did not find a matching property.

คำตอบ:


191

นี่ไม่ใช่ข้อผิดพลาด นี่คือคำเตือน ความแตกต่างค่อนข้างมาก คำเตือนนี้โดยทั่วไปหมายความว่า<Context>องค์ประกอบใน Tomcat server.xmlมีแอตทริบิวต์ที่ไม่รู้จักsourceและ Tomcat ไม่รู้ว่าจะทำอย่างไรกับแอตทริบิวต์นี้จึงจะเพิกเฉย

Eclipse WTP เพิ่มแอ็ตทริบิวต์แบบกำหนดเองsourceให้กับ<Context>องค์ประกอบที่เกี่ยวข้องกับโปรเจ็กต์ในserver.xmlTomcat ซึ่งระบุแหล่งที่มาของบริบท (โปรเจ็กต์จริงในเวิร์กสเปซที่ปรับใช้กับเซิร์ฟเวอร์เฉพาะ) วิธีนี้ Eclipse สามารถเชื่อมโยงเว็บแอปพลิเคชันที่ปรับใช้กับโปรเจ็กต์ในเวิร์กสเปซ ตั้งแต่ Tomcat เวอร์ชัน 6.0.16 แท็ก XML และแอตทริบิวต์ที่ไม่ระบุใด ๆ ในserver.xmlจะสร้างคำเตือนระหว่างการเริ่มต้นของ Tomcat แม้ว่าจะไม่มี DTD หรือ XSDสำหรับserver.xmlก็ตาม

เพียงแค่ไม่สนใจมัน โครงการเว็บของคุณเรียบร้อยดี มันควรจะทำงานได้ดี ปัญหานี้ไม่เกี่ยวข้องกับ JSF อย่างสิ้นเชิง


5
คุณสามารถเพิ่มสิ่งนี้ใน logging.properties เพื่อระงับคำเตือนขณะอ่าน config ของคุณ: org.apache.tomcat.util.digester.Digester.level = SEVERE
Christian

ฉันสังเกตเห็นว่าหากคุณเปิดไฟล์ server.xml ไฟล์นั้นจะไม่ได้เพิ่มบริบทกลับเข้าไปฉันเพิ่งหยุดเซิร์ฟเวอร์และปิดไฟล์ server.xml จากนั้นเพิ่มโปรเจ็กต์ใหม่ ฉันจะพูดถึงเรื่องนี้ในกรณีที่มีคนอื่นประสบปัญหาเดียวกัน
Michael

นี้ด้ายจริงมีคำตอบที่ทำงาน จะกำจัดคำเตือน :)
สีเงิน

(เหมือนกันสำหรับ log4j.properties - 1.2.17):log4j.logger.org.apache.tomcat.util.digester.Digester = ERROR
boly38

สำหรับฉันคำเตือนเป็นการบ่งชี้ข้อผิดพลาด - โครงการของฉันไม่ได้รับการปรับใช้ แอ็ตทริบิวต์บริบทใน server.xml ของ Tomcat เป็นคำใบ้หลังจากลบแอตทริบิวต์ที่สร้างคราสและปรับใช้ใหม่จาก Eclipse ฉันได้ก้าวไปอีกขั้น - ตอนนี้ Eclipse แสดงป๊อปอัปเก่าที่ดีพร้อมข้อผิดพลาดจริง
Hervian

12

ลบโปรเจ็กต์ออกจากเซิร์ฟเวอร์จากมุมมองเซิร์ฟเวอร์ จากนั้นรันโปรเจ็กต์ภายใต้เซิร์ฟเวอร์เดียวกัน

ปัญหาคือตามที่ @BalusC แจ้งว่าเสียหายของ server.xml ของ tomcat ซึ่งกำหนดค่าไว้ใน eclipse ดังนั้นเมื่อคุณทำกระบวนการข้างต้น server.xml จะถูกสร้างขึ้นใหม่


3
อินสแตนซ์ tomcat ของฉันเริ่มต้นขึ้นอย่างรวดเร็วในวันหนึ่ง (ผิดปกติ) และดูบันทึกฉันสังเกตเห็นข้อความเดียวกันกับที่ผู้โพสต์มี ... ฉันพยายามทำความสะอาดและรีสตาร์ทเซิร์ฟเวอร์โดยไม่มีประโยชน์ การลบและเพิ่มโปรเจ็กต์ใหม่ไปยังเซิร์ฟเวอร์ช่วยได้ตามที่ arvindwill แนะนำ
armyofda12mnkeys

4

ฉันคิดว่าฉันจะเพิ่มสิ่งนั้นสำหรับ 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.


4

ฉันประสบปัญหาที่คล้ายกัน ขั้นตอนในการแก้ไขปัญหานี้

  1. ลบโครงการจากเซิร์ฟเวอร์
  2. ทำความสะอาดและสร้างสำหรับโครงการทั้งหมด
  3. ลบเซิร์ฟเวอร์
  4. ใช้ Run as เพื่อปรับใช้และรันโปรเจ็กต์

หวังว่านี่จะเหมาะกับคุณเช่นกัน


3

เกี่ยวกับการตั้งค่า 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 )


1

อัปเดตเป็นรุ่นล่าสุด

เนื่องจากคอมมิตนี้จึงได้รับการแก้ไขใน 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 หรือใหม่กว่า


0

นี่เป็นวิธีง่ายๆสำหรับคำเตือนนี้:

คุณสามารถเปลี่ยนคอนฟิกูเรชันเซิร์ฟเวอร์ eclipse tomcat เปิดมุมมองเซิร์ฟเวอร์ดับเบิลคลิกที่เซิร์ฟเวอร์ของคุณเพื่อเปิดการกำหนดค่าเซิร์ฟเวอร์ มีแท็บตัวเลือกเซิร์ฟเวอร์ ภายในแท็บนั้นให้คลิกช่องทำเครื่องหมายเพื่อเปิดใช้งาน " เผยแพร่เนื้อหาโมดูลไปยังไฟล์ XML ที่แยกจากกัน "

สุดท้ายรีสตาร์ทเซิร์ฟเวอร์ของคุณข้อความจะต้องหายไป


-1

โปรดตรวจสอบว่าไฟล์ jar ใด ๆ ที่หายไปโดยเฉพาะ jars อาจถูกนำมาใช้ในเครื่องดังนั้นให้ใส่ลงในโฟลเดอร์ lib จากนั้นสร้างไฟล์ WAR

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.