Java.lang.ClassNotFoundException প্রাপ্ত হচ্ছে: org.apache.commons.logging.LogFactory ব্যতিক্রম


188

আমি বসন্তের সহজ ডিপেন্ডেন্সি ইনজেকশন প্রোগ্রামটি চালিয়ে যাচ্ছি এবং এই ব্যতিক্রম পাচ্ছি। আমি ইতিমধ্যে সাধারণ-লগিং 1.1.1.jar এবং বসন্ত.জার ফাইলটি অন্তর্ভুক্ত করেছি। আপনি কি সাহায্য করতে পারেন?

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:119)
    at org.springframework.context.support.AbstractXmlApplicationContext.<init>(AbstractXmlApplicationContext.java:55)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:77)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:65)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:56)
    at com.client.StoryReader.main(StoryReader.java:15)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    ... 6 more

2
প্রথমে আপনার ক্লাসপথটি সত্যই ডাবল পরীক্ষা করে দেখুন। দ্বিতীয়ত, জারটি খোলার চেষ্টা করুন এবং এটিতে org.apache.commons.logging.LogFactory বর্গ রয়েছে তা পরীক্ষা করুন। অবশেষে, ক্লাস লোডারটিতে একটি ব্রেকপয়েন্ট সেট করে ডিবাগ করার চেষ্টা করুন।
কলিব্রি

2
প্রস্তাবিত নীচের সমস্ত উত্তর commons-loggingএক ধাপ পিছনে। jcl-over-slf4jপরিবর্তে ব্যবহার করুন।
opyate

অ্যান্ড্রয়েডে টেস্টকম্পাইল যোগ করুন 'কমন্স-লগিং: কমন্স-লগিং: 1.1.1' অ্যাপ্লিকেশনটিতে
রজার গারজন নিতো

উত্তর:


118

আমি একই সমস্যার মুখোমুখি হয়েছি, নীচের url থেকে জার ফাইলগুলি ঠিক করতে, ডাউনলোড করতে

http://commons.apache.org/logging/download_logging.cgi

এবং আপনার লিব ফোল্ডারে অনুলিপি করুন, আপনার সমস্যার সমাধান করবে।


2
ক্লাসপথে উপরে উল্লিখিত কমন্স জার যোগ করার পরেও এটি আমার পক্ষে কাজ করে না
দ্বীন জন

2
না আমার জন্য। এই libs ভাঙা হয়। এটা হতাশ।
ওয়েসোস ডি কিসো

112

আপনি যদি নির্ভরতা পরিচালনার জন্য মাভেন ব্যবহার করেন তবে আপনার পম.এক্সএমএল-এ নিম্নলিখিত লাইনটি যুক্ত করুন:

<dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
</dependency>


19

কমন্স-লগিং -১.১.১.২০ বা জেএলসি-ওভার-এসএলএফ ৪ জে ১. 1.. ..জার আল

আপনি যদি মাভেন ব্যবহার করছেন তবে নীচের কোডটি ব্যবহার করুন।

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
    <version>${slf4j.version}</version>
</dependency>

2
"Jcl-over-slf4j" অন্তর্ভুক্ত করা আমার পক্ষে একমাত্র সমাধান যা কাজ করে। আমার ইতিমধ্যে আমার নির্ভরতাগুলিতে কমন্স-লগিং ছিল।
Italo Borssatto

আমি স্প্রিং-বুট সংস্করণ 2.0.1 ব্যবহার করছি ma এটি ছিল আমার জন্য একমাত্র সমাধান যা কাজ করেছিল।
কার্লোস ন্যান্টেস

18

আমার একই সমস্যা ছিল, এবং কেবল commons-logging.jarশ্রেণির পথে যুক্ত করে এটি সমাধান করেছি ।


8

কমন্স-লগিং.জার বা কমন্স-লগিং -১.১.জার যোগ করা এটি সমাধান করবে ...


6

আমি ইতিমধ্যে সাধারণ-লগিং ১.১.১.২.জার এবং অন্তর্ভুক্ত করেছি ...

আপনি কি নিশ্চিত যে আপনি জেআর ফাইলটির নাম বানান করেছেন? আমি মনে করি এটি সম্ভবত হওয়া উচিত commons-logging-1.1.1.jar( -নামে অতিরিক্ত নোট করুন )। ডিরেক্টরিটির নামটি সঠিক কিনা তাও পরীক্ষা করে দেখুন।

NoClassDefFoundError সর্বদা অর্থ একটি শ্রেণীর সন্ধান করা যায় না, তাই সম্ভবত আপনার শ্রেণীর পথটি সঠিক নয়।


2
NoClassDefFoundErrorঅন্যান্য কোণার ক্ষেত্রেও হতে পারে, যেমন ক্লাস ইনিশিয়েলজাররা যখন অস্পষ্ট পরিস্থিতিতে ব্যর্থ হয়।
স্কেফম্যান 21

তদুপরি, যদি তিনি ক্লাস ইনস্ট্যান্টেশন ব্যর্থ হওয়ায় কোনও ননক্লাসডেফফাউন্ডআরার পান তবে তার প্রথমে একটি এক্সসেপশনআইনিটায়ালাইজার এরর ব্যতিক্রম পাওয়া উচিত ছিল (অবশ্যই এটি নিঃশব্দে ধরা না পড়লে)।
কলিব্রি

এবং "গুলি" ভুলে যাবেন নাcommons-logging-1.1.1.jar
গ্লেন লরেন্স

@ গ্লেনলওরেন্স ধন্যবাদ, নামটি স্থির করেছেন।
জেস্পার

6

সংকলনের সুযোগ সেট করা আমার জন্য তা করেছে

<dependency>
  <groupId>commons-logging</groupId>
  <artifactId>commons-logging</artifactId>
  <version>1.2</version>
  <scope>compile</scope>
</dependency>

1
আমার পরিস্থিতি সমাধান করেছেন। মকিতো পরীক্ষার কেসগুলি চালানোর সময়, আমি এই ত্রুটিটি পেয়েছি এবং pom.xML এ এই নির্ভরতাটি সমাধান করেছি।
ভেনুগোপাল

4

অ্যাপ্লিকেশনটির জন্য কোনও বাসি গ্রন্থাগার জারগুলি থেকে মুক্তি পেতে লক্ষ্য / স্থাপনার ডিরেক্টরিটিকে সম্পূর্ণ পরিষ্কার করার চেষ্টা করুন। একটি নতুন বিল্ড তৈরি করুন এবং পরীক্ষা করুন যে কমন্স-লগিং.জারটি আসলে সঠিক লিব ফোল্ডারে স্থাপন করা হচ্ছে। আপনি যখন অ্যাপ্লিকেশনটির জন্য গ্রন্থাগারটি তৈরি করছেন তখন এটি অন্তর্ভুক্ত নাও হতে পারে।


4

কমন্স-লগিং.জার যুক্ত করে সমস্যা সমাধান করা হয়েছে

ইমপ ফাইলগুলি হ'ল,

antlr-runtime-3.0.1

org.springframework.aop-3.1.0.M2

org.springframework.asm-3.1.0.M2

org.springframework.aspects-3.1.0.M2

org.springframework.beans-3.1.0.M2

org.springframework.context.support-3.1.0.M2

org.springframework.context-3.1.0.M2

org.springframework.core-3.1.0.M2

org.springframework.expression-3.1.0.M2

commons-logging-1.1.1

3

দুটি বিকল্প (কমপক্ষে):

  1. লোকাল ফোল্ডারে অনুলিপি করে আপনার ফাইলটিতে কমন্স-লগিং জার যুক্ত করুন।

দ্রষ্টব্য: জারের সাথে সংযোগ স্থাপনের ফলে সার্ভারের সাথে সমস্যা দেখা দিতে পারে এবং এটি বিল্ড পাথে যুক্ত হওয়ার কারণ কিন্তু সার্ভার শুরুর সমস্যাটি সমাধান না করার কারণ হতে পারে।

সুতরাং জারটিকে কোনও বাহ্যিক ফোল্ডারের দিকে নির্দেশ করবেন না।

অথবা ...

  1. আপনি যদি সত্যিই স্থানীয়ভাবে এটি যুক্ত করতে না চান কারণ আপনি প্রকল্পগুলির মধ্যে জারটি ভাগ করছেন, তবে ...

আপনি যদি কোনও টিসি সার্ভার উদাহরণ ব্যবহার করেন, তবে আপনাকে সার্ভারের দৌড় কনফিগারেশনের একটি বাহ্যিক জার হিসাবে জারটি যুক্ত করতে হবে।

হিসাবে চালাতে যান, কনফিগারেশন চালান ..., {আপনার টিসি সার্ভার উদাহরণ}, এবং তারপরে শ্রেণি পথ ট্যাব।

তারপরে কমন্স-লগিংয়ের পাত্র যুক্ত করুন।


3

তোমার চেয়েও একই কষ্ট পেয়েছি। অবশেষে আমি ক্লাসের অধিকারী অ্যাপাচি সংস্করণ পরীক্ষা করেছিলাম। আমি খুঁজে পেয়েছি যে 1.0.4 সংস্করণটির ক্লাস রয়েছে।

1.1.X বা 1.2.X এর পরিবর্তে 1.0.4 সংস্করণটি ব্যবহার করার চেষ্টা করুন

আমার নির্ভরতা:

    <dependencies>
        <dependency>
            <groupId>org.jolokia</groupId>
            <artifactId>jolokia-core</artifactId>
            <version>1.3.5</version>
        </dependency>
        <dependency>
            <groupId>org.jolokia</groupId>
            <artifactId>jolokia-client-java</artifactId>
            <version>1.3.5</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.0.4</version>
        </dependency>
    </dependencies>

আমার জাভা কোড

J4pClient j4pClient = new J4pClient("http://localhost:8080/jolokia");
J4pReadRequest req = new J4pReadRequest("java.lang:type=Memory","HeapMemoryUsage");
req.setPath("used");
J4pReadResponse resp = j4pClient.execute(req);
System.out.println(resp.getValue());

আমার ফলাফল:

130489168

আপনার maven নির্ভরতা ভাল আমদানি করা হয়েছে তাও ডাবল পরীক্ষা করে দেখুন।



0

কমন্স-লগিং.জারটি আপনার লিবস এবং ক্লাসপথে যুক্ত হয়েছে কিনা তা খতিয়ে দেখুন .. আমার একই সমস্যা ছিল এবং এটি এর কারণ ছিল। dhammikas-


0

আমি সাধারণত ক্লাসপথটি একটি ভেরিয়েবলের জন্য বরাদ্দ করি এবং তারপরে এটি যাচাই করি। আমি একটি ছোট রুবি স্ক্রিপ্ট লিখেছি যা আমি আমার স্টার্টআপ স্ক্রিপ্টগুলিতে অন্তর্ভুক্ত করেছি যা জাভা চালু করার আগে ক্লাসপাথকে বৈধতা দেয় । জেভিএম শুরু হওয়ার আগে ক্লাসপথটি বৈধকরণ করা এই ধরণের সমস্যাগুলির সমস্যার সমাধান করতে আমার অনেক সময় বাঁচিয়েছে।


2
পরিবর্তে আপনার ম্যাভেনের মতো সরঞ্জাম ব্যবহার করা বিবেচনা করা উচিত।
নিওব্রিভেন্ট

0

আরে আমি টিউটোরিয়ালপয়েন্ট.কম এ টিউটোরিয়ালটি অনুসরণ করছিলাম। পদক্ষেপ 2 সম্পূর্ণ করার পরে যুক্ত করুন - অ্যাপাচি কমন লগিং এপিআই ইনস্টল করুন: আপনাকে অবশ্যই এই পদক্ষেপে ডাউনলোড করা ফাইলগুলি থেকে প্রকল্পে বাহ্যিক জার লাইব্রেরিগুলি আমদানি করতে হবে । আমার জন্য ফাইলটির নাম ছিল " কমন্স-লগিং -২.১.১ "।


0

যদি আপনি এটি অ্যান্ড্রয়েডে চালাচ্ছেন তবে নোট করুন যে স্পষ্টতই java.beansপ্যাকেজটি অ্যান্ড্রয়েডে সম্পূর্ণ নয়। অ্যান্ড্রয়েডে এটিকে ঠিক করার চেষ্টা করার জন্য নিম্নলিখিত চেষ্টা করুন:

  1. ডাউনলোড অ্যানড্রইড জাভা-এয়ার-bridge.jar (বর্তমানে ডাউনলোড বোতামটি পৃষ্ঠা বা নীচে হয় এখানে সরাসরি লিঙ্ক )
  2. ডাউনলোড করা জারটি আপনার [APPROOT] / অ্যাপ / libs ডিরেক্টরিতে অনুলিপি করুন (বা অন্য কোনও উপায়ে জারের সাথে লিঙ্ক করুন)
  3. import ***বায়ু সেতুর বিবৃতি পরিবর্তন করুন । যেমন import javadz.beanutils.BeanUtilsপরিবর্তেimport org.apache.commons.beanutils.BeanUtils;
  4. প্রকল্পটি পরিষ্কার এবং পুনর্নির্মাণ করুন

উত্স 1 , উত্স 2

আমি বুঝতে পারছি যেহেতু আমি বুঝতে পারি যে এটি ঠিক প্রশ্নের উত্তর দিচ্ছে না, যদিও অ্যান্ড্রয়েড-উত্পাদিত NoClassDefFoundError: Failed resolution of: beanUtilsত্রুটিগুলি অনুসন্ধান করার সময় এই এসও পৃষ্ঠাটি অনেকটা সামনে আসে ।


0

জারটি উপস্থিত থাকাকালীন আমি একই ত্রুটি পেয়েছিলাম। কোনও সমাধান কাজ করেনি। যা কাজ করেছিল তা ফাইল সিস্টেম থেকে জার মুছে ফেলছিল (.m2 ডিরেক্টরি থেকে) এবং তারপরে মাভেন প্রকল্পটি সাফ করছিল।


0

গ্রহন আইডিইতে আমার একই সমস্যা রয়েছে, আমার সমাধানটি ছিল: আমার প্রকল্প> প্রোপার্টিগুলিতে ডান ক্লিক করুন

এখানে চিত্র বর্ণনা লিখুন

ক্লিক করুন ম্যাভেন : ও লিখতে বয়াম মধ্যে সক্রিয় ম্যাভেন প্রকল্প

এখানে চিত্র বর্ণনা লিখুন

শেষ পর্যন্ত, প্রয়োগ এবং বন্ধ করুন


0

আমার ক্ষেত্রে আমি একটি টমক্যাট অ্যাপ্লিকেশনটি গ্রহনে পরীক্ষা করছিলাম এবং এই ত্রুটিটি পেয়েছি। আমি .classpathফাইলটি পরীক্ষা করে এটি সমাধান করেছি এবং এই এন্ট্রিটি সংশোধন করেছি:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
        <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>
</classpathentry>

গুণটি org.eclipse.jst.component.dependencyঅনুপস্থিত ছিল।


-1

জারগুলি সঠিকভাবে আমদানি করা হয়েছে কিনা তা পরীক্ষা করে দেখুন। আমি এগুলি বিল্ড পাথ ব্যবহার করে আমদানি করেছি। তবে এটি ওয়ার / লিব ফোল্ডারে জারটি চিনতে পারেনি। পরে, আমি একই জারটি ওয়ার / লিবি ফোল্ডারে অনুলিপি করেছি । এটা এখন ঠিক কাজ করে। আপনি আপনার প্রকল্পটি রিফ্রেশ / পরিষ্কার করতে পারেন।


-2

হ্যালো বন্ধুরা যদি আপনার হাইবারনেট কোডে কোনও ক্লাস না পেয়ে ব্যতিক্রম পাওয়া যায় তবে এটি জার ফাইলগুলির সমস্যা here মূলত দুটি সমস্যা ১.
আমি বলতে চাইছি আপনার হাইবারনেটের পুরানো সংস্করণটি হতে পারে 3.2 বেলো। আপনি যদি 3.6 এর উপরে চেষ্টা করেন তবে তা হবে ঠিকভাবে কাজ করে

2. প্রথম ডাটাবেস সংযোগ পরীক্ষা করে। যদি এটি ডাটাবেসটি সঠিকভাবে কাজ করে তবে তা ছিল আপনার প্রোগ্রাম বা জার ফাইলে একটি ভুল।

আপনি যদি আইডিই করার চেষ্টা করেন তবে এটি যদি কাজ না করে থাকে তবে দয়া করে এই দুটি prioblems দেখুন। আমি নেটবিয়ানসাইড 9.৯ সংস্করণ ব্যবহার করছি। এখানে হাইবারনেট সূক্ষ্মভাবে কাজ করছে class

আমি আশা করি এটি আরও সাহায্য করে


-2

সমাধানটি হল সাধারণ-লগিং.এক্সএক্স জার ফাইল যুক্ত করা


-2

এই নির্ভরতা যুক্ত করার চেষ্টা করুন org.apache.commons Commons-exec 1.3


-3

অন্য সমস্ত কিছু যদি ব্যর্থ হয়, যেমন এটি আমার জন্য ছিল, আপনার টমকেট লাইব ডিরেক্টরিতে কমন্স-লগিং-এক্সজিজার লাগানোর চেষ্টা করুন। এটি সমস্যার সমাধান! বিটিডাব্লু, আমি টমকেট 6 ব্যবহার করছি।


নাম জিনিস? আপনি কি বিষয়ে কথা হয়?
বব ভি।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.