سؤال

هل هناك طريقة لنشر ملف حرب معين على خادم Tomcat؟أريد أن أفعل ذلك دون استخدام واجهة الويب.

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

المحلول

ما عليك سوى نسخ ملف الحرب إلى الدليل $TOMCAT_HOME/webapps/.سيقوم Tomcat بنشر ملف الحرب عن طريق تفجيره تلقائيًا.لمعلوماتك - إذا أردت، يمكنك إجراء تحديثات مباشرة على الدليل المفصّل، وهو أمر مفيد للتطوير.

نصائح أخرى

هناك عدة طرق لنشر تطبيق الويب Tomcat:

  • الدخول إلى $CATALINA_HOME/webapps، كما ذكرنا سابقًا.
  • استخدام نصوص البناء الخاصة بك للنشر تلقائيًا عبر واجهة المدير (التي تأتي مع Tomcat).هنا الطريقتان
    • ل مخضرم:استخدم البرنامج المساعد Tomcat.لا تحتاج إلى إدراجه في pom.xml, ، مجرد إصدار الهدف mvn tomcat:deploy, ، تم تضمين البرنامج المساعد في Maven 2.يفترض هذا العديد من الإعدادات الافتراضية الموضحة في ملف توثيق, ، أنت تستطيع تهيئة السلوك في pom.xml.هناك أهداف أخرى تتيح لك النشر كأرشيف موسع إلخ.
    • ل نملة:شيء من هذا القبيل:
    <property name="manager.url"   value="http://localhost:8080/manager"/>
    <property name="manager.username" value="manager"/>
    <property name="manager.password" value="foobar"/>
    <!-- Task definitions -->
    <taskdef name="deploy"   classname="org.apache.catalina.ant.DeployTask"/>
    <taskdef name="list"     classname="org.apache.catalina.ant.ListTask"/>
    <taskdef name="reload"   classname="org.apache.catalina.ant.ReloadTask"/>
    <taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask"/>
    <!-- goals -->
    <target name="install" depends="compile" description="Install application to servlet container">
        <deploy url="${manager.url}"
                username="${manager.username}"
                password="${manager.password}"
                path="${app.path}"
                localWar="file://${build.home}"/>
    </target>
    <target name="list" description="List installed applications on servlet container">
        <list    url="${manager.url}"
                username="${manager.username}"
                password="${manager.password}"/>
    </target>
    <target name="reload" depends="compile" description="Reload application on servlet container">
        <reload url="${manager.url}"
                username="${manager.username}"
                password="${manager.password}"
                path="${app.path}"/>
    </target>
    <target name="remove" description="Remove application on servlet container">
        <undeploy url="${manager.url}"
                username="${manager.username}"
                password="${manager.password}"
                path="${app.path}"/>
    </target>

سيتطلب كل ذلك أن يكون لديك تكوين مستخدم Tomcat.أنه يعيش $CATALINA_BASE/conf/tomcat-users.xml, ، ولكن نظرًا لأنك تعرف بالفعل كيفية استخدام واجهة الويب، أفترض أنك تعرف كيفية تكوين المستخدمين وكلمات المرور.

نحن لا نستخدم واجهة الويب مطلقًا، ولا نحبها.يتم إسقاط الحروب في تطبيقات الويب وتحرير ملف server.xml حسب الضرورة.تحتاج إلى ارتداده إذا قمت بتحرير ملف server.xml، ولكن يجب التقاط ملف الحرب تلقائيًا.نقوم عمومًا بحذف الدليل الموسع من الحرب أولاً حتى لا يكون هناك أي لبس من أين جاءت المكونات.

يمكنك تحرير ملف conf/server.xml وإضافة إدخال كهذا يشير إلى دليل الحرب الخاص بك

    <Context path="/strutsDisplayTag" 
        reloadable="true" 
        docBase="C:\work\learn\jsp\strutsDisplayTag" 
        workDir="C:\work\learn\jsp\strutsDisplayTag\work" />

آخر يمكنك نسخ ملف .war الخاص بك إلى دليل WebApps في Tomcat.

القط حزمة نشر العميل يبدو أنه ما تحتاج إلى نشره على خادم بعيد من سطر الأوامر.من الصفحة:

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

يمكنك أيضًا تجربة هذا برنامج نصي لسطر الأوامر لإدارة Tomcat يسمى مدير القط.فهو يتطلب لغة Python، ويتحدث إلى تطبيق المدير المتضمن مع Tomcat عبر HTTP.يمكنك القيام بأشياء من * nix Shell مثل:

$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager/ stop /myapp

و:

$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager deploy /myapp ~/src/myapp/myapp.war
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top