java - NoClassDefFoundError:org / apache / tomcat / util / codec / binary / base64




spring ant (5)

अभी भी आधिकारिक पुराने वसंत ट्यूटोरियल के निराशाजनक के सिर या पूंछ बनाने की कोशिश कर रहा है

इस बार, यह विषय में त्रुटि है:

c:\Users\mkumpan\Projects\Spring testing\build.xml:152: java.lang.NoClassDefFoundError: org/apache/tomcat/util/codec/binary/Base64
<stack trace dump omitted>

यह वर्ग वास्तव में टॉमकेट-यूज.जर में निहित है:

bash-3.1$ pwd
/c/Program Files/Tomcat/lib
bash-3.1$ jar -tf ./tomcat-util.jar | grep Base64
org/apache/tomcat/util/codec/binary/Base64.class

और मुझे यकीन है कि मैंने इसे build.xml में शामिल किया है:

<fileset dir="${appserver.home}/bin">
    <include name="*.jar"/>
</fileset>

मैं भी अधिक स्पष्ट होने की कोशिश की:

<fileset dir="C:\Program Files\Tomcat\lib\" includes="tomcat-util.jar">

कुछ भी काम नहीं करता है, हर बार जब भी मैं कोई टंक्रीट से संबंधित लक्ष्य को चलाने की कोशिश करता हूं तो मुझे वह संदेश मिलता है। क्या कोई शायद, जांच की एक रेखा का सुझाव दे सकता है?

Google कुछ प्रासंगिक प्रदान नहीं करता है

अद्यतनः पूर्ण मास्टर-क्लासपाथ संदर्भ नीचे दिया गया है।

<path id="master-classpath">
    <fileset dir="${web.dir}/WEB-INF/lib">
        <include name="*/*.jar"/>
    </fileset>

    <fileset dir="${appserver.lib}">
        <include name="*.jar"/>
    </fileset>

    <fileset dir="${appserver.home}/bin">
        <include name="*.jar"/>
    </fileset>

    <pathelement path="${build.dir}"/>
</path>

Answers

टकसाहट के साथ इस मुद्दे पर कोई भी ठोकर खा सकता है। ऐसा लगता है जैसे संगठन / apache / tomcat / util / codec / binary / base64 को टंकर्क-कोयोट.जर संस्करण 7.0.39 में जोड़ा गया था।

इसलिए मुझे लगता है कि विकल्प:

  • 7.0.39+ पर अपडेट करें
  • इसे कहीं और org / apache / commons / codec / binary / base64 (कॉमन्स-कोडेक: कॉमन्स-कोडेक) से उपयोग करें

यदि आप build.xml और build.properties में निम्नलिखित बिलाव संबंधित प्रविष्टियों का उपयोग करते हैं, तो चींटी परिनियोजन 7 और उससे ऊपर के टोंकैट में काम करना चाहिए

<!-- ============================================================== -->
<!-- Tomcat tasks - remove these if you don't have Tomcat installed -->
<!-- ============================================================== -->

<path id="catalina-ant-classpath">
    <!-- We need the Catalina jars for Tomcat -->
    <!--  * for other app servers - check the docs -->
    <fileset dir="${appserver.lib}">
        <include name="catalina-ant.jar"/>
        <include name="tomcat-util.jar"/>
    </fileset>
</path>

<taskdef name="install" classname="org.apache.catalina.ant.DeployTask">
    <classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask">
    <classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="list" classname="org.apache.catalina.ant.ListTask">
    <classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="start" classname="org.apache.catalina.ant.StartTask">
    <classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="stop" classname="org.apache.catalina.ant.StopTask">
    <classpath refid="catalina-ant-classpath"/>
</taskdef>

<target name="install" description="Install application in Tomcat">
    <install url="${tomcat.manager.url}"
             username="${tomcat.manager.username}"
             password="${tomcat.manager.password}"
             path="/${name}"
             war="${name}"/>
</target>

<target name="reload" description="Reload application in Tomcat">
    <reload url="${tomcat.manager.url}"
             username="${tomcat.manager.username}"
             password="${tomcat.manager.password}"
             path="/${name}"/>
</target>

<target name="start" description="Start Tomcat application">
    <start url="${tomcat.manager.url}"
             username="${tomcat.manager.username}"
             password="${tomcat.manager.password}"
             path="/${name}"/>
</target>

<target name="stop" description="Stop Tomcat application">
    <stop url="${tomcat.manager.url}"
             username="${tomcat.manager.username}"
             password="${tomcat.manager.password}"
             path="/${name}"/>
</target>

<target name="list" description="List Tomcat applications">
    <list url="${tomcat.manager.url}/text"
             username="${tomcat.manager.username}"
             password="${tomcat.manager.password}"/>
</target>

<!-- End Tomcat tasks -->

और यह भी सुनिश्चित करें कि निम्नलिखित प्रविष्टियां टोमैक-यूज़र.एक्सएमएम में टॉमकेट इंस्टॉलेशन / कॉन्फ डर में जोड़ दी गई हैं

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

गलत pathref आवश्यक लक्ष्यों के लिए इस्तेमाल किया गया था, जिसमें एक बहुत आवश्यक tomcat-util.jar लिए पथ शामिल नहीं था।

कुंडो को @कोस्टादिनोव के लिए सही दिशा में प्रचार करें।


टॉमकेट संस्करण 7 और इसके बाद के संस्करण के लिए, बस अपने build.xml फ़ाइल में tomcat-util.jar शामिल करें

<fileset dir="${appserver.lib}">
    ...
    <include name="tomcat-util.jar"/>
    ...
</fileset>

Runtime.getCurrentRumtime().halt(0);




java spring tomcat ant