"এপিআর ভিত্তিক অ্যাপাচি টমক্যাট নেটিভ লাইব্রেরি পাওয়া যায় নি" এর অর্থ কী?


104

আমি উইন্ডোজ এক্সিলিপসে টমক্যাট 7 ব্যবহার করছি। টমক্যাট শুরু করার সময়, আমি নিম্নলিখিত তথ্য বার্তাটি পাচ্ছি:

এপিআর ভিত্তিক অ্যাপাচি টমক্যাট নেটিভ লাইব্রেরি যা উত্পাদন পরিবেশে সর্বোত্তম পারফরম্যান্সের অনুমতি দেয় জাভা.লিবারিয়ান.প্যাথে পাওয়া যায় নি

এর অর্থ কী এবং আমি কীভাবে এপিআর লাইব্রেরি সরবরাহ করতে পারি?

উত্তর:


119

এটি ঠিক যা বলেছে তার অর্থ: "এপিআর ভিত্তিক অ্যাপাচি টমক্যাট নেটিভ লাইব্রেরি যা পরিবেশের পরিবেশে সর্বোত্তম পারফরম্যান্সের অনুমতি দেয় জাভা.লিবারিয়ান.প্যাথে পাওয়া যায়নি"

উল্লেখ করা লাইব্রেরিটি জেএনআই এর মাধ্যমে লোড হওয়া একটি ওএস নির্দিষ্ট dll (tcnative-1.dll) এ বান্ডিল করা হয়েছে। এটি টমক্যাটটি জাভা রানটাইম (যেমন সেন্ডফিল, ইপল, ওপেনএসএসএল, সিস্টেমের স্থিতি ইত্যাদি) সরবরাহ না করে ওএস কার্যকারিতা ব্যবহার করার অনুমতি দেয়। টমক্যাট এটিকে ছাড়াই ঠিকঠাক চলবে তবে কিছু ব্যবহারের ক্ষেত্রে এটি স্থানীয় গ্রন্থাগারগুলির সাথে আরও দ্রুত হবে।

আপনি যদি সত্যিই এটি চান তবে এটি ডাউনলোড করুন tcnative-1.dll(বা libtcnative.soলিনাক্সের জন্য) এবং এটি বিন ফোল্ডারে রেখে দিন এবং একটি সিস্টেমের বৈশিষ্ট্যটি গ্রহনে টমক্যাট সার্ভারের লঞ্চ কনফিগারেশনে যুক্ত করুন।

 -Djava.library.path=c:\dev\tomcat\bin

1
+1 আমি এই ত্রুটিটি (ওপি দ্বারা পোস্ট করা হয়েছিল) কেবলগ্রহণের অধীনে পেয়ে যাচ্ছিলাম, যদিও আমি এটি স্ট্যান্ডলোন চালাচ্ছি তবে এটি অবশ্যই ঠিক করা হয়েছিল (অবশ্যই দেশীয় লিব যোগ করার পরে।) সিস্টেম সম্পত্তিটি সেট করার বিষয়ে পরামর্শের জন্য ধন্যবাদ!
জিজ্ঞাসা করুন

7
.Dll ফাইলটি যুক্ত না করে কী কীভাবে বৈশিষ্ট্যটি অক্ষম করতে হবে? @greyfairer
Koray Tugay

2
@ গ্রেফায়ার ম্যাক ওএসের অধীনে ইন্টেলিজ আইডিইএ সম্পর্কে কীভাবে?
বিমান

1
ম্যাকোসেক্সের জন্য jboss- নেটিভ প্যাকেজটিতে libtcnative আছে: jbossweb.jboss.org/downloads/jboss-native-2-0-10 , আমার ধারণা ম্যাকোসগুলিতে পোর্ট করা একই জিনিস?
গ্রিফায়ার

1
টমক্যাট 8.0.47 এ ম্যাকসএক্স-এ টমক্যাট-নেটিভ ইনস্টল করতে আমাদের একটি সমস্যা হয়েছিল। আমরা পূর্বনির্দেশ, --with-ssl এবং -with-apr বিকল্পগুলি উল্লেখ করে সাফল্যের সাথে দেশীয় libs তৈরি করেছি। সমস্যাটি ছিল বাইনারিগুলি টমক্যাটের "লিবিব" ফোল্ডারে নকল করা হয়েছিল, "বিন" ফোল্ডারে নয়। কেবল তাদের "বিন" এ সরান এবং এটি কার্যকর হতে পারে
ম্যাডডব

31

আপনি যদি কোনও প্রোডাকশন সার্ভার চালা না করেন তবে এই বার্তাটি নিয়ে চিন্তা করবেন না। এটি একটি লাইব্রেরি যা কর্মক্ষমতা (উত্পাদন সিস্টেমে) উন্নতি করতে ব্যবহৃত হয়। টোমক্যাটের জন্য অ্যাপাচি পোর্টেবল রানটাইম (এপিআর) ভিত্তিক নেটিভ লাইব্রেরি থেকে :

টমক্যাট উচ্চতর স্কেলাবিলিটি, কার্য সম্পাদন এবং স্থানীয় সার্ভার প্রযুক্তির সাথে আরও ভাল সংহতকরণের জন্য অ্যাপাচি পোর্টেবল রানটাইম ব্যবহার করতে পারে। অ্যাপাচি পোর্টেবল রানটাইম হ'ল একটি অত্যন্ত বহনযোগ্য গ্রন্থাগার যা অ্যাপাচি এইচটিটিপি সার্ভার ২.x এর কেন্দ্রস্থলে রয়েছে is উন্নত আইও কার্যকারিতা (যেমন সেন্ডফিল, ইপল এবং ওপেনএসএসএল), ওএস স্তরের কার্যকারিতা (এলোমেলো সংখ্যা উত্পন্নকরণ, সিস্টেমের স্থিতি ইত্যাদি) এবং নেটিভ প্রক্রিয়া হ্যান্ডলিং (ভাগ করা মেমরি, এনটি পাইপ এবং ইউনিক্স সকেট) সহ এপিআর এর অনেকগুলি ব্যবহার রয়েছে।


28

আরএইচইএল লিনাক্সে কেবল ইস্যু করুন:

yum install tomcat-native.x86_64

/ নোট: আপনার আর্কিটেকচারের উপর নির্ভর করে 64 বিট বা 32 বিট প্যাকেজের আলাদা এক্সটেনশন থাকতে পারে /

এটাই সব। এর পরে আপনি লগ ফাইলটিতে পরবর্তী তথ্য বার্তাটি পাবেন:

INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].

সমস্ত অপারেশন পূর্বের তুলনায় লক্ষণীয়ভাবে দ্রুত হবে।


2
কমপক্ষে CentOS 7 এর জন্য, এটি ডিফল্ট রেপোগুলিতে পাওয়া যায় নি। এটি EPEL- এ ছিল, তবে ইমেল ইপেল-রিলিজ করার পরে এটি ইনস্টল হয়।
মাইক গ্লিসন

2
CentOS 7 এর yum install tomcat-nativeজন্য, এটি আমার জন্য স্থির করুন
আইজাক বিটেশ

22

উবুন্টু সার্ভারের সাথে নেটিভ লাইব্রেরিটি ইনস্টল করুন:

sudo apt-get install libtcnative-1

এটি যদি কাজ না করে তবে টমক্যাট-নেটিভ ইনস্টল করা দরকার

  1. ওরাকল জাভা 7 ইনস্টল করুন:

    • sudo অ্যাড-এপটি-সংগ্রহস্থল পিপিএ: ওয়েবআপড 8টিম / জাভা
    • sudo অ্যাপ্লিকেশন - আপডেট
    • sudo apt-get ইনস্টল করুন ওরাকল-জাভা 7-ইনস্টলার
    • sudo apt-get ইনস্টল করুন ওরাকল-জাভা 7-সেট-ডিফল্ট
  2. টমক্যাট এপ্রিল ইনস্টল করুন:

    • উইজেট http://apache.mirror.anlx.net//apr/apr-1.5.0.tar.gz
    • tar zxvf apr-1.5.0.tar.gz
    • আরএম এপ্রিল-1.5.0.tar.gz
    • সিডি এপ্রিল-1.5.0
    • sudo ./configure
    • সুডো মেক
    • sudo মেক ইনস্টল
    • LD_LIBRARY_PATH = 'export এলডি_লিবারি_প্যাথ: / ইউএসআর / স্থানীয় / এপ্রি / লিবিব রফতানি করুন
  3. টমকাট টমক্যাট-স্থানীয় ইনস্টল করুন:


1
আমি এই সমস্ত চেষ্টা করেছিলাম, কিন্তু কিছুই কার্যকর হয় না। আমি 'কনফিগার করা প্রোটোকল [org.apache.coyote.http11.Http11 এপ্রিপ্রোটোকল] এর জন্য এপিআর / নেটিভ লাইব্রেরি প্রয়োজন যা পাওয়া যায় না' keep এমনকি "পিঁপড় জার" কমান্ডটি করেছে এবং আমার টমক্যাট / লিবিব ডিরেক্টরিতে টমক্যাট-স্থানীয়-১.১.৩৩-ডিভ.জার অনুলিপি করেছে।
কোলাডিক্ট

আপনাকে সেই ডিরেক্টরিতে ফলাফল .so ফাইলটি অনুলিপি করে বা আরও বিশেষভাবে java.library.path এ অনুলিপি করতে হবে।
demkoryu

9

আমি কেবল এটির মধ্য দিয়ে গিয়েছিলাম এবং এটি নিম্নলিখিতটি দিয়ে কনফিগার করেছি:

উবুন্টু 16.04

টমকেট 8.5.9

Apache2.4.25

এপিআর ২.০.২.২

টমক্যাট-নেটিভ 1.2.10

জাভা 8

পুরানো পোস্টগুলির ভিত্তিতে আমি এখানে ব্যবহৃত পদক্ষেপগুলি:

প্যাকেজ ইনস্টল করুন

sudo apt-get update
sudo apt-get install libtcnative-1

এই প্যাকেজ ইনস্টল করা হয়েছে তা যাচাই করুন

sudo apt-get install make 
sudo apt-get install gcc
sudo apt-get install openssl

প্যাকেজ ইনস্টল করুন

sudo apt-get install libssl-dev

অ্যাপাচি এপিআর ইনস্টল এবং সংকলন করুন

cd /opt/tomcat/bin
sudo wget http://apache.mirror.anlx.net//apr/apr-1.5.2.tar.gz
sudo tar -xzvf apr-1.5.2.tar.gz
cd apr-1.5.2
sudo ./configure
sudo make
sudo make install

ইনস্টলেশন যাচাই করুন

cd /usr/local/apr/lib/
ls 

আপনার সংকলিত ফাইলটি দেখতে হবে

libapr-1.la

টমক্যাট নেটিভ সোর্স প্যাকেজটি ডাউনলোড এবং ইনস্টল করুন

cd /opt/tomcat/bin
sudo wget https://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.2.10/source/tomcat-native-1.2.10-src.tar.gz
sudo tar -xzvf tomcat-native-1.2.10-src.tar.gz
cd tomcat-native-1.2.10-src/native

জাভাহোম যাচাই করুন

sudo pico ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
source ~/.bashrc
sudo ./configure --with-apr=/usr/local/apr --with-java-home=$JAVA_HOME
sudo make
sudo make install

নিম্নলিখিত লাইনের সাহায্যে /opt/tomcat/bin/setenv.sh ফাইলটি সম্পাদনা করুন:

sudo pico /opt/tomcat/bin/setenv.sh
export LD_LIBRARY_PATH='$LD_LIBRARY_PATH:/usr/local/apr/lib'

টমক্যাট পুনরায় আরম্ভ করুন

sudo service tomcat restart


আমি এই ত্রুটিটি নিয়ে চলেছি oc স্থানান্তর R_X86_64_32 এর বিরুদ্ধে.rodata' can not be used when making a shared object; recompile with -fPIC /usr/local/ssl/lib/libssl.a: error adding symbols: Bad value collect2: error: ld returned 1 exit status make[1]: *** [libtcnative-1.la] Error 1
অগ্নিভা


5

পাশাপাশি এই সমস্যা ছিল। আপনি যদি না লাইব্রেরি হয়েছে, কিন্তু এখনো এই ত্রুটি আছে, এটি একটি কনফিগারেশন ত্রুটির করা যেতে পারে। আপনার server.xmlনীচের লাইনটি অনুপস্থিত হতে পারে:

 <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

(বিকল্পভাবে, এটি মন্তব্য করা হতে পারে)। এটি <Listener>অন্যান্য শ্রোতার মতো শীর্ষ স্তরের শিশু <Server>

ছাড়া <Listener>লাইন, সেখানে এপিআর লাইব্রেরী লোড করার কোন প্রয়াস, তাই LD_LIBRARY_PATHএবং -Djava.library.path=সেটিংস উপেক্ষা করা হয়।


আপনি, স্যার সেরা। কীবোর্ডে কপাল প্রয়োগ করার কয়েক ঘন্টা পরে, দেখা যাচ্ছে যে আমি পুরো সময় সঠিকভাবে এপিআর / নেটিভ ইনস্টল করেছি। এক সরল সার্ভার.এক্সএমএল সমস্যা!
অমর স্কোয়াশ

3

ম্যাক ওএস এক্সে:

$ brew install tomcat-native
==> tomcat-native
In order for tomcat's APR lifecycle listener to find this library, you'll
need to add it to java.library.path. This can be done by adding this line
to $CATALINA_HOME/bin/setenv.sh

  CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/local/opt/tomcat-native/lib"

If $CATALINA_HOME/bin/setenv.sh doesn't exist, create it and make it executable.

তারপরে এটি গ্রহনের টমক্যাট আর্গুমেন্টগুলিতে যুক্ত করুন ( ডাবল ক্লিক করুন সার্ভার> লঞ্চ কনফিগারেশনটি খুলুন > আর্গুমেন্ট ট্যাব> ভিএম আর্গুমেন্ট )

-Djava.library.path=/usr/local/opt/tomcat-native/lib

1

আমি এই সমস্যাটি জাভা 8 থেকে 11 তে আপগ্রেড করেছি । এই নির্ভরতা যুক্ত করার পরে, আমার অ্যাপ্লিকেশনটি ইস্যু ছাড়াই চালু করা হয়েছে:

<dependency>
    <groupId>org.javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.25.0-GA</version>
</dependency>

0

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

  • tomcat8-stdout- এ
  • tomcat8-দ্বারা stderr
  • স্থানীয় হোস্ট

0

আপনার যদি টমক্যাট নেটিভ লাইব্রেরি না থাকে তবে এটি দিয়ে ইনস্টল করুন:

sudo apt-get libtcnative-1 ইনস্টল করুন

এবং যদি এটি এখনও আছে তবে এটির সাথে কোনও পুরানো সংস্করণ এটি আপগ্রেড করুন:

sudo apt-get up libtcnative-1


0

আমার সমস্যাটি ছিল টমক্যাট থেকে শুরু করে শ্রেণিবদ্ধ পথ পর্যন্ত গ্রন্থাগার যুক্ত করার জন্য আমি কেবলমাত্র প্রকল্পের ডানদিকে ক্লিক করতে যাচ্ছিলাম এবং এ debug configuration -> classpath -> Add External JARsথেকে সমস্ত জার ফাইল যুক্ত apache-tomcat-7.0.35\binকরা আমার সমস্যা ছিল এবং এটি আমার জন্য কাজ করেছে।
এখানে চিত্র বর্ণনা লিখুন

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