كيفية تغيير جذر السياق لمشروع الويب الديناميكي في الكسوف؟
-
19-09-2019 - |
سؤال
لقد قمت بتطوير مشروع ويب ديناميكي في الكسوف. الآن يمكنني الوصول إليه من خلال متصفحي باستخدام عنوان URL التالي:
http://localhost:8080/MyDynamicWebApp
الآن أريد تغيير عنوان URL الوصول إلى
http://localhost:8080/app
لقد غيرت جذر السياق من المشروع "خصائص | إعدادات مشروع الويب | جذر السياق".
لكن هذا لا يعمل. لا يزال تطبيق الويب لديه عنوان URL للوصول إليه في وقت سابق. لقد أعيد نشر الطلب على Tomcat، أعد تشغيل Tomcat وقدم كل ما يجب القيام به، ولكن عنوان URL الوصول هو نفسه سابقا.
لقد وجدت أنه لم يكن هناك server.xml
ملف مرفق مع WAR
ملف. ثم كيف يتحدد Tomcat أن جذر السياق لتطبيق الويب الخاص بي هو /MyDynamicWebApp
ويسمح لي بالوصول إلى التطبيق من خلال عنوان URL هذا؟
المحلول
أنا متأكد من أنك انتقلت الآن، لكنني اعتقدت أنني سأجيب على أي حال.
بعض هذه الإجابات تعطيل الحلول. ما يجب أن يحدث في الواقع هو أنك نظف وإعادة نشر مشروعك "لتنشيط" URI الجديد. يتم ذلك بالنقر بزر الماوس الأيمن فوق الخادم الخاص بك (في عرض الخوادم) واختيار نظيف. ثم تبدأ (أو إعادة تشغيله). معظم الإجابات الأخرى هنا توحي أنك تفعل أشياء تنجز هذا في الواقع.
الملف الذي يتغير هو workspace/.metadata/.plugins/org.eclipse.wst.server.core/publish/publish.dat
ما لم يكن ذلك، فهذا هو، لديك أكثر من خادم واحد في مساحة عملك في هذه الحالة سيكون publishN.dat
في نفس الطريق.
آمل أن يساعد هذا شخص ما.
لست متأكدا مما إذا كانت هذه الآداب المناسبة أم لا - أنا تحرير هذه الإجابة لإعطاء الخطوات الدقيقة ل Eclipse Indigo.
في مشروعك الخصائص, ، يختار إعدادات مشروع الويب.
يتغيرون جذر السياق ل تطبيق.
يختار نافذة> عرض عرض> الخوادم.
أوقف الخادم إما النقر فوق المربع الأحمر المربع ("إيقاف شريط الأدوات" ("إيقاف خادم" Tooltip) أو انقر فوق السياق على قائمة الخادم لاختيار "إيقاف".
على الخادم الذي تريد استخدامه، انقر فوق سياق لاختيار "نظف ...".
انقر فوق "موافق" في مربع الحوار "تأكيد" هذا.
الآن يمكنك تشغيل تطبيقك مع عنوان URL الجديد "التطبيق" الجديد مثل:
http://localhost:8080/app/
القيام بذلك خارج Eclipse، على خادم الإنتاج الخاص بك، هو أسهل -> إعادة تسمية ملف الحرب. تصدير تطبيق Vaadin الخاص بك كملف حرب (ملف> تصدير> ملف> ملف حرب). نقل ملف الحرب إلى حاوية Servlet لخادم الويب الخاص بك مثل Tomcat. إعادة تسمية ملف الحرب الخاص بك، في هذه الحالة إلى app.war.. وبعد عند بدء تشغيل حاوية Servlet، سيقوم Tomcat بنشر التطبيق التلقائي، والذي يتضمن توسيع ملف الحرب إلى مجلد. في هذه الحالة، يجب أن نرى مجلد يدعى تطبيق. وبعد يجب أن تكون جيدا للذهاب. اختبار عنوان URL الخاص بك. للحصول على مجال مثل * example.com "سيكون هذا:
http://www.example.com/app/
قد يحتاج مبرمجو أدوات Vaadin إلى إعادة إنشاء مجموعة القطعة الخاصة بهم إذا كنت تستخدم إضافات مرئية.
نصائح أخرى
بعد تغيير جذر السياق في خصائص المشروع، يجب عليك إزالة تطبيق الويب الخاص بك من Tomcat (باستخدام إضافة وإزالة ... في قائمة سياق الخادم)، قم بإعادة النشر، ثم أعد إضافة التطبيق وإعادة النشر. عملت معي.
إذا كنت قد صدمت لديك خيار آخر: حدد خادم Tomcat في عرض الخوادم. يؤدي النقر المزدوج إلى هذا الخادم (أو اختيار فتح في قائمة السياق) إلى محرر متعدد المعدل حيث توجد صفحة وحدات. هنا يمكنك تغيير سياق الجذر في الوحدة النمطية الخاصة بك (تسمى المسار في هذه الصفحة).
إذا كنت تقوم بتشغيل Tomcat من الكسوف، فلا تستخدم التكوين من تثبيت Tomcat الفعلي الخاص بك. يستخدم تكوين Tomcat الذي تم إنشاؤه وتخزينه ضمن مشروع "الخوادم". إذا قمت بعرض مساحة عمل Eclipse الخاصة بك، فيجب أن تشاهد مشروعا يسمى "الخوادم". قم بتوسيع هذا المشروع "الخوادم" وسوف تأتي عبر Server.xml. افتح هذا الملف وانتقل طوال الطريق إلى الأسفل، ويجب أن ترى شيئا مثل هذا: -
<Context docBase="abc" path="/abc" reloadable="true" source="org.eclipse.jst.jee.server:abc"/>
هنا، يمكنك فقط تغيير مسار سياق مشروعك إلى شيء آخر.
أتمنى أن يساعدك هذا.
حاولت الحل الذي اقترحه روس باتمان هنا في هذا المنصب
http://localhost:8080/Myapp
ل http://localhost:8080/somepath/Myapp
لكن لم يعمل بالنسبة لي حيث احتاجت للحصول على ملف * .war يمكن أن يحمل التكوين وليس المثيل الفردي للخادم على LocalMachine.
من أجل القيام بذلك أحتاج إلى JBOSS-WEB.XML الموضوعة في Web-INF
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2008 Object Computing, Inc.
All rights reserved.
-->
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 4.2//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd">
<jboss-web>
<context-root>somepath/Myapp</context-root>
</jboss-web>
Apache Tomcat يبقي مسار سياق المشروع في مسار Server.xml. لكل مشروع ويب على الكسوف، هناك علامة من هناك يمكنك تغييره.
لنفترض أن هناك مشروعان أو ثلاثة نشره على الخادم. لكل مسار سياق واحد مخزن فيه. توجد هذه العلامة في ملف Server.xml داخل الخادم الذي تم إنشاؤه على الكسوف.
لدي مشروع واحد هناك على مسار جذر السياق في الخادم هو:
<Context docBase="Test" path="/test" reloadable="true" source="org.eclipse.jst.jee.server:Test1"/>
يمثل هذا المسار مسار السياق لتطبيق الويب الخاص بك. عن طريق تغيير هذا المسار، سيتغير مسار سياق تطبيق الويب الخاص بك.
أعرف أن الإجابة قد تم قبولها بالفعل. ولكن، فقط في حالة استخدام أي شخص باستخدام Maven ترغب في تحقيق نفس الشيء، فقط ضبط الاسم النهائي في مافن يبني إلى أي اسم تريد إعطاءه والقيام بمشروع تحديث Maven ->
<build>
<finalName><any-name></finalName>
<plugins><provide-plugins-needed></plugins>
<build>
إذا كان المشروع هو Maven، فقم بتغيير "الاسم النهائي" في مشروع Pom.xml وتحديثه ك Maven.This يعمل بالنسبة لي.
في Glassfish يجب عليك أيضا تغيير ملف Web-INF / Glassfish-Web.xml
<glassfish-web-app>
<context-root>/myapp</context-root>
</glassfish-web-app>
لذلك عند النقر فوق "تشغيل كما> تشغيل على الخادم" سوف يفتح بشكل صحيح.
أردت فقط إضافة ذلك إذا كنت لا تريد اسم التطبيق الخاص بك في سياق الجذر على الإطلاق، فأنت فقط "/" (لا اقتباسات، فقط Slash للأمام) في Eclipse -> إعدادات مشروع الويب -> دخول جذر السياق
سوف ينشر WebApp إلى http: // localhost: 8080 /
بالطبع، سيؤدي ذلك إلى حدوث مشاكل مع WebApps الأخرى التي تحاول تشغيلها على الخادم، لذلك يتوجه ذلك.
أخذني إلى الأبد إلى الأبد لقطاء معا ... لذلك على الرغم من أن هذا المنشور يبلغ من العمر 8 سنوات، نأمل أن لا يزال هذا مساعدة شخص ما!
في مشروع Java، مجلد مفتوح. يوجد تحديد الملف المسمى "Org.eclipse.wst.common.commonent". تغيير العلامةu003Cwb-module deploy-name="NEW_NAME"> وبعد
أيضا قد ترغب في تغيير جذر السياق في خصائص المشروع
إذا كنت تستخدم Eclipse لنشر التطبيق الخاص بك. يمكننا استخدام هذا البرنامج المساعد MAVEN
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.10</version>
<configuration>
<wtpversion>2.0</wtpversion>
<wtpContextName>newContextroot</wtpContextName>
</configuration>
</plugin>
انتقل الآن إلى مجلد جذر المشروع الخاص بك وفتح CMD موجه في هذا الموقع اكتب هذا الأمر:
MVN Eclipse: Eclipse -dwtppersion = 2.0
قد تحتاج إلى إعادة تشغيل Eclipse، أو في خادم عرض خادم Delete وإنشاء Agian لمشاهدة التأثير. وأتساءل أن هذا التمرين معنى في الحياة الحقيقية ولكن يعمل.