ওয়েব.এক্সএমএল-এ রিসোর্স-রেফ কী জন্য ব্যবহৃত হয়?


112

আমি কেবল ভাবছি আপনি / <resource-ref>আপনার web.xmlফাইলের একটি উপাদান কখন সংজ্ঞায়িত করবেন ?

আমি ভাবতাম যে এটি আপনার ওয়েব / অ্যাপ্লিকেশন সার্ভারে জেএনডিআই ব্যবহার করে সংজ্ঞায়িত হবে এবং তারপরে আপনার জাভা কোডে জেএনডিআই রেফারেন্সটি সন্ধান করবে?

রিসোর্স-রেফ সংজ্ঞাটি আমার কাছে কিছুটা অপ্রয়োজনীয় বলে মনে হচ্ছে এবং এটি কখন কার্যকর হবে তা আমি ভাবতে পারি না। উদাহরণ:

<resource-ref>
  <description>Primary database</description>
  <res-ref-name>jdbc/primaryDB</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>CONTAINER</res-auth>
</resource-ref>

উত্তর:


156

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

<resource-ref>ইন্ডিয়ারেশনের আরেকটি স্তর প্রবর্তন করে: আপনি ওয়েব.এক্সএমএমএলে যে নামটি ব্যবহার করতে চান তা নির্দিষ্ট করে এবং ধারকটির উপর নির্ভর করে একটি ধারক-নির্দিষ্ট কনফিগারেশন ফাইলে একটি বাঁধাই সরবরাহ করে ।

তাই যা হয় তা এখানে : আসুন আমরা বলি আপনি java:comp/env/jdbc/primaryDBনামটি অনুসন্ধান করতে চান । ধারকটি আবিষ্কার করে যে ওয়েব.এক্সএমএলটির<resource-ref> জন্য একটি উপাদান রয়েছে jdbc/primaryDB, সুতরাং এটি ধারক-নির্দিষ্ট কনফিগারেশনটিতে সন্ধান করবে, এতে নিম্নলিখিতগুলির মতো কিছু রয়েছে:

<resource-ref>
  <res-ref-name>jdbc/primaryDB</res-ref-name>
  <jndi-name>jdbc/PrimaryDBInTheContainer</jndi-name>
</resource-ref>

অবশেষে, এটি নামে নিবন্ধিত বস্তুটি ফেরত দেয় jdbc/PrimaryDBInTheContainer

ধারণা সংস্থান উল্লেখ করে web.xml পৃথক সুবিধা আছে ডেভেলপার থেকে ভূমিকা deployer ভূমিকা। অন্য কথায়, একজন বিকাশকারী হিসাবে, আপনার প্রয়োজনীয় সংস্থানগুলিকে আসলে উত্পাদনে কী বলা হয় তা আপনাকে জানতে হবে না এবং অ্যাপ্লিকেশনটি মোতায়েন করা লোক হিসাবে আপনার বাস্তব সংস্থানগুলিতে মানচিত্রের জন্য নামের একটি সুন্দর তালিকা থাকবে।


6
আইএমএইচও, এটি ভূমিকাগুলি পৃথক করার বাইরে। ধারণাটি হ'ল আপনি ধরে নিতে পারবেন না যে কোনও জেন্ডি নাম সার্ভারে পাওয়া যায় তাই আপনার অ্যাপ্লিকেশনটিতে ব্যবহৃত নামটি ম্যাপ করার জন্য আপনার ব্যবহারকারীর দ্বারা নির্বাচিত "আসল" জেএনডিআই নাম প্রয়োজন।
পাস্কেল থিভেন্ট

3
এটি অবশ্যই প্রাথমিক হতে হবে, যেহেতু আমি এটি গুগলের সাথে খুঁজে পাচ্ছি না, তবে যদি আমি "জাভা: কম / এনভি / জেডিবিসি / প্রাথমিক ডিবি" সন্ধান করতে চাই, তবে কেন রেজ-রেফ-নাম "জেডিবিসি / প্রাথমিক ডিবি"?
টরবেন

4
আমি যা জানি, তার জন্য "জেন্ডি-নাম" উপাদানটি স্ট্যান্ডার্ড ওয়েব.এক্সএমএল এর অংশ নয়, বরং নির্দিষ্ট বিক্রেতাদের মোতায়েনের বর্ণনাকারীর পরিবর্তে।
রামন চিয়ারা

2
@ রবিপ্রেখ, তিনি "ধারক-নির্দিষ্ট কনফিগারেশন" উল্লেখ করেছেন, এটি jboss-web.xML বা ওয়েবলগিক.এক্সএমএল বা অন্য কোনও বিক্রেতার নির্দিষ্ট নির্দিষ্ট স্থাপনার বিবরণী ফাইল হতে পারে
abhihello123

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