كيفية تغيير جذر السياق لمشروع الويب الديناميكي في الكسوف؟

StackOverflow https://stackoverflow.com/questions/2437465

سؤال

لقد قمت بتطوير مشروع ويب ديناميكي في الكسوف. الآن يمكنني الوصول إليه من خلال متصفحي باستخدام عنوان 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.

  1. في مشروعك الخصائص, ، يختار إعدادات مشروع الويب.

  2. يتغيرون جذر السياق ل تطبيق.

    screen shot of Eclipse project properties Web Project Settings

  3. يختار نافذة> عرض عرض> الخوادم.

  4. أوقف الخادم إما النقر فوق المربع الأحمر المربع ("إيقاف شريط الأدوات" ("إيقاف خادم" Tooltip) أو انقر فوق السياق على قائمة الخادم لاختيار "إيقاف".

  5. على الخادم الذي تريد استخدامه، انقر فوق سياق لاختيار "نظف ...".

    enter image description here

  6. انقر فوق "موافق" في مربع الحوار "تأكيد" هذا.

    Screenshot of dialog asking to update server configuration to match the changed context root

الآن يمكنك تشغيل تطبيقك مع عنوان 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>

قم بتعيين المسار إلى أي شيء في مربع الحوار Eclipse Web Modules Edit. مكنني من الوصول إلى المشروع دون أي مكون مسار في عنوان URL (أي الجذر)

يمكنك الوصول إلى مربع حوار تحرير وحدات الويب عن طريق الضغط على F3 إذا قمت بتحديد Tomcat في عرض "الخوادم" أو بالنقر المزدوج فوقها.

بعض لقطات الشاشة:

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 لمشاهدة التأثير. وأتساءل أن هذا التمرين معنى في الحياة الحقيقية ولكن يعمل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top