سؤال

حصلت على بعض المشكلات لنشر طلبي.

البيئة: Ubuntu 10.04 ، Tomcat 7.02 (التثبيت من الأرشيف من موقع Tomcat ، وليس من المستودعات) ، يتم تشغيل الخادم وإيقاف دليل ، وليس استخدام أي IDE.

لأول مرة قمت بإنشاء مضيف في $CATALINA_HOME/conf/server.xml:

<Host name="java.dev"  
      appBase="/home/krasilich/java/"  
      autoDeploy="true" >  
    <Alias>www.java.dev</Alias>  
</Host>

ثم إنشاء سياق في $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml:

<Context docBase="siloc/web/" />

وحصلت على الخطأ

تم تحديد docbase/home/krasilich/java/siloc/web/داخل appbase المضيف ، وسيتم تجاهله

ولكن ، إذا قمت بنسخ manager.xml إلى $CATALINA_HOME/conf/Catalina/java.dev/ يمكنني تشغيل تطبيق مدير. إذا قمت بنشر طلبي من خلال المدير - فإنه يقول أن كل شيء يسير على ما يرام ، لكنني ما زلت أرى 404 على java.dev:8080/siloc/

هذا كل شيء عن مضيف مخصص.

لقد حاولت نشر الطلب من خلال المدير في LocalHost أيضًا وهو يعمل ، يمكنني رؤية "Hello Word" على LocalHost: 8080/siloc/

ولكن ، إذا قمت بتغيير النص في INDEX.JSP ، فلن يتأثر على الواجهة الأمامية. زر "إعادة النشر" لا يساعدني.

كما ذكرت المدير فقط نسخ ملفات التطبيق إلى دليل WebApps ، ولا تقوم بأي تغييرات في ملفات التكوين.

كل ما أحتاجه يمكنني نشر التطبيق في أي دليل في نظام الملفات الخاص بي (في الواقع سيكون /home/krasilich/java/).

وسيكون من الرائع أن أتمكن من القيام بذلك على مضيف مخصص مثل java.dev أحتاج إلى الإجابة ، لماذا السياق في $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml لا يعمل معي ، وماذا سأفعل لجعله ثابتًا؟

شكرًا.

هل كانت مفيدة؟

المحلول

لقد تمكنت من تكرار مشكلتك.

هناك حلولان يمكنني أن أقترحهما بعد العبث بمجموعات من appBase و docBase. يبدو أن الاثنين لا يعملان معًا.

الخيار 1 - إزالة AppBase

مسح ال appBase من server.xml وتحديد المسار الكامل لتطبيق الويب في docBase في ال $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml

أفترض أن قيمتك ستكون /home/krasilich/java/siloc/web/siloc.

ملاحظة: تحديد ما يصل فقط إلى المجلد الأصل /home/krasilich/java/siloc/web/ سوف تظهر لك قائمة دليل للمجلد الأصل

الخيار 2 - إزالة docbase

في $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml

مسح ال docBase واحتفظ فقط <Context/>

Tomcat يستدعي اسم WebApp siloc من $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml وتبحث عن webapp المسمى siloc في Appbase.

هذا يسمح java.dev:8080/siloc/ بالعمل شريطة أيضًا تغيير appBase في server.xml إلى المجلد الأصل من الويب الخاص بك siloc.

استجابة لسبب manager يعمل ، نفس السبب - لا يوجد docbase في manager.xml

أحاول مجموعات أخرى من docbase ولكن أي قيمة أعطي رميات

تحذير: تم تحديد Docbase ... داخل Appbase المضيف ، وسيتم تجاهله

لذا فإن استنتاجي هو إزالة docbase. هذه ليست فكرة جيدة - نظرًا لأن المسار الكامل إلى المجلد الأصل يتم ترميزه في server.xml.

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