2011-08-19 11 views
8

मैं टॉमकैट 7 में एक युद्ध फ़ाइल में तैनाती करने का प्रयास कर रहा हूं। यह मुझे निम्नलिखित त्रुटि दे रहा है।चींटी तैनात करने पर 403 क्यों लौट रही है?

deploy: 
    [echo] Deploying on Tomcat. 

BUILD FAILED 
    C:\Users\coder\workspace\projectName\build.xml:84: java.io.IOException: Server returned  
    HTTP response code: 403 for URL: http://localhost:8090/manager/deploy?path=%2FprojectName 

यहाँ अपने निर्माण फ़ाइल

<project name="ProjectName" default="main" 
       basedir="."> 

       <!-- Tell ant to use my environment variables --> 
       <property environment="env"/> 

       <property file="./build.properties"/> 
       <property name="username" value="someUsername"/> 
       <property name="password" value="somePassword"/> 

       <taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"/> 

       <property name="tomcat.home" 
       value="${env.CATALINA_HOME}"/> 
       <property name="hibernate.home" 
       value="${env.CATALINA_HOME}"/> 
       <property name="servlet.jar" 
       value="${tomcat.home}/common/lib/servlet-api.jar"/> 
       <property name="jsp.jar" 
       value="${tomcat.home}/common/lib/jsp-api.jar"/> 
       <property name="hibernate.jar" value="C:/hibernate-distribution-3.6.4.Final/hibernate3.jar"/> 

       <property name="deploy.dir" 
       value="${tomcat.home}/webapps"/> 
       <property name="build.compiler" value="modern"/> 
       <property name="build.dir" value="build" /> 
       <property name="src.dir" value="src"/> 
       <property name="war.file" value="projectName"/> 
       <property name="war.file.name" value="${war.file}.war"/> 

       <path id="project.class.path"> 
       <fileset dir="./WEB-INF/lib/"> 
       <include name="**/*.jar"/> 
       </fileset> 
       <pathelement path="${src.dir}"/> 
       <pathelement path="${servlet.jar}"/> 
       <pathelement path="${jsp.jar}"/> 
       <pathelement path="${hibernate.jar}"/> 
       </path> 

       <target name="clean"> 
       <delete dir="${build.dir}" includeEmptyDirs="true" /> 
       </target> 

       <target name="prep"> 
       <mkdir dir="${build.dir}"/> 
       </target> 

       <target name="compile"> 
       <javac srcdir="${src.dir}" 
       destdir="${build.dir}" 
       debug="on" 
       deprecation="on"> 
       <include name="**/*.java"/> 
       <classpath refid="project.class.path"/> 
       </javac> 
       </target> 

       <target name="cleanWebApp"> 
       <delete file="${deploy.dir}/${war.file.name}" /> 
       <delete dir="${deploy.dir}/${war.file}" 
       includeEmptyDirs="true" /> 
       </target> 

       <target name="war"> 
       <war warfile="${war.file.name}" 
       webxml="./WEB-INF/web.xml"> 
       <fileset dir="./" includes="**/*.*" excludes="*.war, 
       **/*.nbattrs, web.xml, **/WEB-INF/**/*.*, 
       **/project-files/**/*.*"/> 
       <webinf dir="./WEB-INF" includes="**/*" 
       excludes="web.xml, **/*.jar, **/*.class"/> 
       <lib dir="./WEB-INF/lib"/> 
       <classes dir="${build.dir}"/> 
       <classes dir="${src.dir}"> 
       <include name="**/*.properties"/> 
       </classes> 
       </war> 
       </target> 

       <target name="deploy"> 
        <echo message="Deploying on Tomcat." /> 
        <deploy url="http://localhost:8090/manager" username="someUsername" 
        password="somePassword" path="/projectName" war="./${war.file.name}" /> 
       </target> 

       <target name="main" depends="clean, prep, cleanWebApp, 
       compile, war, deploy"/> 

       </project> 
+0

403 HTTP प्रतिक्रिया कोड, यह दर्शाता है कि संसाधन मना किया है है। इस मामले में आपका टॉमकैट प्रबंधक। अपना उपयोगकर्ता नाम, पासवर्ड, पथ इत्यादि देखें – arunkumar

उत्तर

14

प्रबंधक.username और manager.password में उल्लिखित खाता, "प्रबंधक-स्क्रिप्ट" (या "व्यवस्थापक-स्क्रिप्ट" की भूमिका में होना चाहिए यदि यह काम नहीं करता है)।

ऐसा लगता है कि "प्रबंधक" और "व्यवस्थापक" की भूमिका निभाने के लिए "प्रबंधक जीयूआई", "व्यवस्थापक जीयूआई", "प्रबंधक स्क्रिप्ट" (पाठ कनेक्शन के लिए), "व्यवस्थापक स्क्रिप्ट" (के लिए पाठ संबंध बदल रहे हैं) बिलाव 7.

में मैं त्रुटि पृष्ठ के नीचे से प्रबंधक के लिए प्रासंगिक 4 भूमिकाओं पाया:

403 प्रवेश निषेध

इस पृष्ठ को देखने के लिए अधिकृत नहीं हैं।

आप पहले से ही उपयोग की अनुमति प्रबंधक आवेदन कॉन्फ़िगर किया है और आप का इस्तेमाल किया है अपने ब्राउज़र वापस बटन हैं, तो एक सहेजना की गई पुस्तक-चिह्न या इसी तरह के क्रॉस साइट अनुरोध जालसाजी तो आप शुरू हो रहा हो सकता है (CSRF) सुरक्षा है कि कर दिया गया है प्रयोग किया जाता है प्रबंधक अनुप्रयोग के एचटीएमएल इंटरफ़ेस के लिए सक्षम। आपको मुख्य प्रबंधक पृष्ठ पर लौटने से इस सुरक्षा को रीसेट करने की आवश्यकता होगी। एक बार जब आप इस पृष्ठ पर वापस आ जाएंगे, तो आप सामान्य रूप से प्रबंधक प्रशंसा के HTML इंटरफ़ेस का उपयोग करना जारी रख सकेंगे। यदि आप इस पहुंच को संदेश से इनकार करते हुए देखते हैं, तो जांचें कि आपके पास इस एप्लिकेशन तक पहुंचने के लिए आवश्यक अनुमतियां हैं।

यदि आपने कोई कॉन्फ़िगरेशन फ़ाइलें नहीं बदली हैं, तो कृपया अपनी स्थापना में फ़ाइल conf/tomcat-users.xml फ़ाइल की जांच करें। इस फ़ाइल में आपको इस वेबपैप का उपयोग करने के लिए प्रमाण-पत्र होना चाहिए।

उदाहरण के लिए, s3cret के पासवर्ड के साथ टोमकैट नामक उपयोगकर्ता को प्रबंधक-गुई भूमिका जोड़ने के लिए, ऊपर सूचीबद्ध कॉन्फ़िगरेशन फ़ाइल में निम्न जोड़ें।

ध्यान दें कि टॉमकैट 7 के लिए, प्रबंधक अनुप्रयोग का उपयोग करने के लिए आवश्यक भूमिकाओं को एकल प्रबंधक भूमिका से निम्नलिखित चार भूमिकाओं में बदल दिया गया था। आपको उस कार्यक्षमता के लिए आवश्यक भूमिका नियुक्त करने की आवश्यकता होगी, जिसे आप एक्सेस करना चाहते हैं।

प्रबंधक जीयूआई - और स्थिति पृष्ठ HTML जीयूआई के लिए उपयोग की अनुमति देता है

प्रबंधक स्क्रिप्ट - अनुमति देता है पाठ इंटरफेस के लिए उपयोग और स्थिति पृष्ठों

प्रबंधक-JMX - JMX प्रॉक्सी के लिए उपयोग की अनुमति देता और स्थिति पृष्ठों

प्रबंधक स्थिति - स्थिति पृष्ठों केवल

एचटीएमएल इंटरफ़ेस CSRF से सुरक्षित है, लेकिन पाठ और JMX इंटरफेस नहीं हैं के लिए उपयोग की अनुमति देता है। सीएसआरएफ सुरक्षा को बनाए रखने के लिए:

प्रबंधक-गुई भूमिका वाले उपयोगकर्ता को या तो प्रबंधक-स्क्रिप्ट या प्रबंधक-जेएमएक्स भूमिकाएं नहीं दी जानी चाहिए। यदि टेक्स्ट या जेएमएक्स इंटरफेस को ब्राउज़र के माध्यम से एक्सेस किया जाता है (उदाहरण के लिए परीक्षण के लिए इन इंटरफेस का उद्देश्य इंसानों के लिए नहीं है) तो ब्राउज़र को सत्र को समाप्त करने के बाद बाद में बंद होना चाहिए। अधिक जानकारी के लिए - कृपया प्रबंधक ऐप कैसे करें देखें।

3

आपको एक पहुँच त्रुटि से इनकार किया हो रही है है।

यह संभव है क्योंकि आपका उपयोगकर्ता नाम या पासवर्ड गलत है या आपने भूमिकाओं को सही तरीके से नहीं जोड़ा है।

यहाँ बिलाव प्रलेखन से एक blurb है -

अपाचे बिलाव 6.0 क्षेत्र विन्यास कैसे-लिखा है: आप उपयोग करना चाहते हैं प्रबंधक आवेदन को तैनात करने और एक में undeploy अनुप्रयोगों बिलाव स्थापना चल , आपको अपने चयनित क्षेत्र कार्यान्वयन में कम से कम एक उपयोगकर्ता नाम पर "प्रबंधक" भूमिका जोड़नी होगी। यह है क्योंकि प्रबंधक वेब एप्लिकेशन स्वयं सुरक्षा बाधा का उपयोग करता है जिसके लिए एप्लिकेशन के भीतर किसी भी अनुरोध URI तक पहुंचने के लिए "प्रबंधक" भूमिका की आवश्यकता होती है।

आशा है कि मदद करता है।

0

मुझे टॉमकैट 6 के साथ एक ही समस्या थी, लेकिन ऊपर दिए गए कोई भी समाधान मेरी मदद नहीं करते हैं। इसलिए मैंने इसे tomcat-users में उपयोगकर्ता को अतिरिक्त भूमिका ('प्रबंधक') जोड़कर तय किया।

<user username="tomcat" password="tomcat" roles="tomcat,manager-gui,manager"/> 
0

मैं हाल ही में इस त्रुटि का सामना किया और इन तरीकों में से कोई भी मुझे मदद की।

समाधान के लिए गया था बिल्ला-users.xml में स्पष्ट रूप से भूमिकाओं लिखने:

<role rolename="manager-gui"/> 
<role rolename="manager-script"/> 
<role rolename="admin-gui"/> 
<role rolename="admin-script"/> 
<user name="admin" password="admin" roles="admin-gui,admin-script,manager-gui,manager-script"/> 

भूमिकाओं admin-gui और admin-script स्क्रिप्ट चलाने के लिए आवश्यक नहीं हैं, मैं उन्हें व्यवस्थापक बिल्ला को यह उपयोगकर्ता उपयोग करने की आवश्यकता एक वेब gui में।

6

आधार URL आप होना चाहिए का उपयोग करना चाहिए: http://localhost:8090/manager/text

+3

+1 यह मेरे लिए तय है। –

+1

यह स्वीकार्य उत्तर होना चाहिए। मैनेजर पथ में केवल '/ text' जोड़ना मेरे लिए काम किया – devnull69

+1

यह मेरे लिए भी काम करता है। इसे साझा करने के लिए धन्यवाद। –

संबंधित मुद्दे