Eclipse WTP เทียบกับ sydeo“ ให้บริการโมดูลโดยไม่ต้องเผยแพร่”


103

ฉันมีปัญหาในการค้นหาประสิทธิภาพของปลั๊กอิน sysdeo โดยใช้ปลั๊กอินรวม WTP ของ eclipse

เพื่อทำการโอนย้ายและทำการเปรียบเทียบฉันติดตั้งทั้งสองโปรเจ็กต์แยกกันภายใน eclipse

ฉันสังเกตเห็นความแตกต่างของผลผลิตตามสิ่งที่ฉันเข้าใจ: WTP จำเป็นต้องเผยแพร่แหล่งที่มาในการสร้างไดเรกทอรีเพื่อให้แมวตัวผู้จัดเตรียมไว้ "pulish" นี้มีความยาว: ต้องมีการชาร์จบริบทใหม่เพื่อให้มองเห็นการปรับเปลี่ยนได้ (5 แห้งในหลาส่วนใหญ่ 15 วินาที - 20 วินาทีในระยะยาวที่สุด)

Sysdeo ไม่; เป้าหมายของไดเร็กทอรี eclipse จึงสร้างภายในโปรเจ็กต์ทันทีที่มีการแก้ไขโดยไฟล์การสร้าง eclipse และการปรับเปลี่ยนเหล่านี้จะพร้อมใช้งานทันที (F5 บนเบราว์เซอร์และเราได้ผลลัพธ์ทันที)

นี่คือการกำหนดค่าเซิร์ฟเวอร์ของฉัน:

ตัวเลือก "ให้บริการโมดูลโดยไม่ต้องเผยแพร่" ช่วยให้สามารถสร้างสิ่งที่ทำให้ sydeo: เพื่อเลือกไดเร็กทอรี build ของโปรเจ็กต์ที่กำลังทำงานอยู่ คอนฟิกูเรชันนี้แสดงตัวเองในไฟล์ของบริบท (เพื่อให้สามารถเรียกคืนได้ที่ฉันได้ตรวจสอบ "เผยแพร่ปรับเปลี่ยนบริบทเพื่อแบ่งแถว XML")

การเปรียบเทียบไฟล์เหล่านี้:

  • นี่คือไฟล์ของบริบทที่สร้างโดย sysdeo
< Context path="/tatoile _syseo" reloadable="false" docBase="D:\32bit\serveur32bit\workspace\tatoile _syseo" workDir="D:\32bit\serveur32bit\workspace\tatoile _syseo\work" />
  • บริบทไฟล์ที่จะสร้างโดย WTP

<? xml version = "1.0" encoding = "UTF-8"?> <Context docBase = "D: \ 32bit \ serveur32bit \ workspace \ tatoile \ web" path = "/ tatoile" reloadable = "true" source = "org .eclipse.jst.jee.server: tatoile "> <Resources className =" org.eclipse.jst.server.tomcat.loader.WtpDirContext "extraResourcePaths =" / WEB-INF / คลาส | D: \ 32bit \ serveur32bit \ workspace \ tatoile \ build \ class "virtualClasspath =" D: \ 32bit \ serveur32bit \ workspace \ tatoile \ build \ classes "/> <Loader className =" org.eclipse.jst.server.tomcat.loader.WtpWebappLoader "useSystemClassLoaderAsParent =" false " virtualClasspath = "D: \ 32bit \ serveur32bit \ workspace \ tatoile \ build \ class" /> <JarScanner scanAllDirectories = "true" /> </ Context>

ภายหลังวิเคราะห์ไฟล์ทั้งสองนั้นเหมือนกัน

ตอนนี้ให้เรากลับไปที่ปัญหา ฉันใช้เซิร์ฟเวอร์เดียวกันดังนั้นไฟล์ทั้งสองของบริบทข้างต้นจึงถูกกำหนดไว้สำหรับไฟล์นี้ ประสบการณ์: ฉันเปิดตัว tomcat โดยปลั๊กอิน sysdeo การโหลดในสองบริบทถูกสร้างขึ้นเพื่อกำหนดค่า WTP ด้วยวิธีอื่นโดย sysdeo เจ้าหน้าที่ทั้งสองมีปฏิกิริยาในลักษณะเดียวกันการแก้ไขจะเกิดขึ้นทันทีใน tatoile _syseo และ tatoile

ในทางกลับกันฉันเปิด tomcat ผ่านปลั๊กอิน WTP (เซิร์ฟเวอร์แท็บ ฯลฯ ) ใน eclipse การปรับเปลี่ยนจะไม่เกิดขึ้นทันทีในทั้งสองโครงการ tatoile _syseo และ tatoile หมายเหตุ: จำเป็นต้องใส่การโหลดซ้ำอัตโนมัติใน Enabled เพื่อที่จะนำการแก้ไขมาพิจารณา (เมื่อเซิร์ฟเวอร์ระบุว่ามีการโหลดบริบทซ้ำเราจะเห็นการปรับเปลี่ยน)

ป้อนคำอธิบายภาพที่นี่

ฉันหักออกจากการกำหนดค่าบริบทไม่ใช่ไม่ใช่เหตุผล แต่เป็นวิธีที่ปลั๊กอินเปิดตัว tomcat และนั่นหรือฉันแห้ง ...

นี่คือโครงการ WTP:

ป้อนคำอธิบายภาพที่นี่


5
คุณมีปัญหากับ Sysdeo หรือ WTP หรือไม่? OTOH แน่นอนว่า WTP จะต้องใช้เวลามากขึ้นสำหรับการเปลี่ยนแปลงเนื่องจากสิ่งเหล่านี้จะทำเพื่อเผยแพร่ซ้ำ: (1) สร้างคลาส (2) ยกเลิกการปรับใช้เว็บแอปเก่า (3) คัดลอกผลการสร้างไปยังโฟลเดอร์ปรับใช้ของ tomcat (4) tomcat จะเริ่มต้นโดยอัตโนมัติ แอป ในขณะเดียวกันกับ sysdeo คลาสใน RAM จะได้รับการแก้ไขทันทีที่มีการเปลี่ยนแปลง (ระบุด้วยวันที่ใหม่ในไฟล์คลาสใด ๆ ) จากนั้นมีข้อ จำกัด บางประการของการเปลี่ยนแปลงที่ไม่สามารถทำได้ทันที (เมื่อคุณเพิ่มเมธอดใหม่โครงสร้างคลาสก็เปลี่ยนไปเช่นกัน) ในกรณีนี้จะเป็นการเตือน

ฉันใช้ทั้ง Sysdeo และ WTP ในโครงการเดียวกัน ความแตกต่างที่สำคัญที่สุดที่ฉันสังเกตเห็นคือการกำหนดค่าของ Sysdeo นั้นดูง่ายกว่าสำหรับฉัน แต่อาจมีอคติ
Markus

2
ปัญหาได้รับการแก้ไขโดยการเพิ่ม MAVEN ด้วยการปรับใช้ WTP ไม่มีปัญหาด้านประสิทธิภาพ ไม่มีปัญหาด้านประสิทธิภาพและฉันไม่เปิดใช้งาน "ให้บริการโมดูลโดยไม่เผยแพร่"
Vsplit

1
ถ้าคุณแก้ปัญหาได้คุณสามารถโพสต์คำตอบได้หรือไม่?
Anubian Noob

@AnubianNoob ใช่เมื่อฉันได้อธิบายในโพสต์ก่อนหน้านี้ ฉันแก้ปัญหาโดยใช้การกำหนดค่า maven
Vsplit

คำตอบ:


3

คำตอบที่ยกมาจาก @Vsplit

ปัญหาได้รับการแก้ไขโดยการเพิ่ม MAVEN ด้วยการปรับใช้ WTP ไม่มีปัญหาด้านประสิทธิภาพ ... และฉันไม่เปิดใช้งานโมดูลที่ให้บริการโดยไม่เผยแพร่


-1 นี่ไม่ใช่คำตอบ โปรดเพิ่มคำตอบพร้อมรายละเอียดเพิ่มเติม
Isaac G Sivaa

1
สวัสดีฉันขอโทษสำหรับคำตอบที่ล่าช้า แต่อย่างที่คุณต้องสังเกตฉันไม่สามารถแก้ไขปลั๊กอิน Sysdeo ที่เกี่ยวข้องกับ issus ได้ แต่ฉันใช้ปลั๊กอิน Maven กับ WTP de deployment คุณสามารถดูตัวอย่างการสอนได้ที่youtube.com/watch?v=YeC7XQho-O0
Vsplit

2

ดูในตลาดปลั๊กอินสำหรับปลั๊กอินฟรีที่เรียกว่า m2e-wtp ที่จะดูแลปัญหาขอบเขตที่ให้ไว้ สำหรับคลาสที่ไม่ได้ปรับใช้สถานที่ปกติที่ฉันดูคือแอสเซมบลีการปรับใช้และ / หรือ Java Build Path ตรวจสอบให้แน่ใจว่ารายการ (และโมดูลที่อ้างอิง) ทั้งหมดอยู่ที่นั่นและอยู่ในตำแหน่งที่ถูกต้อง

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