ওয়েব.এক্সএমএল অনুপস্থিত এবং <failOnMissingWebXML> সত্যে সেট করা আছে


142

বিবেচনা:

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

যখন আমি একটি সহজ তৈরি ম্যাভেন প্রকল্প অন্ধকার আমি এই ত্রুটি পাচ্ছি:

ওয়েব.এক্সএমএল অনুপস্থিত এবং <failOnMissingWebXml>সত্যে সেট করা আছে

আমি কিভাবে এই সমস্যা ঠিক করতে পারবো?


5
আপনি যোগ করতে হবে maven-war-plugin। এটি এমন একটি অন্তর্নিহিত প্লাগইন যেখানে কনফিগারেশনের সম্পত্তিটির জন্য ডিফল্ট মানটি সত্য। আপনাকে স্পষ্টভাবে এটি ঘোষণা করতে হবে এবং কনফিগারেশন সম্পত্তিটিকে মিথ্যাতে সেট করতে হবে। আরও এখানে দেখুন । বা আপনি একটি খালি ওয়েব.এক্সএমএল যোগ করতে পারেন
পল সামোসথ

উত্তর:


180

আপনি এটি এর মতো করেও করতে পারেন:

  1. উপর রাইট ক্লিক ডিপ্লোয়মেন্ট বর্ণনাকারী মধ্যে প্রকল্প এক্সপ্লোরার
  2. জেনারেট ডিপ্লোয়মেন্ট বিবরণী স্টাব নির্বাচন করুন

এটি এসআরসি / মেইন / ওয়েব অ্যাপে ওয়েবে -আইএনএফ ফোল্ডার এবং এতে একটি ওয়েব.এক্সএমএল তৈরি করবে।

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


39
আমি কোডে বয়লারপ্লেট যুক্ত করার পরামর্শ দেব না, কারণ আপনার বিল্ড সরঞ্জামটি একটি ত্রুটি দেয়।
মার্টিজন বার্গার

1
@ মার্তিজনবার্গার কি উপরের হ্যাকের সম্ভাব্য ফলস্বরূপ সম্পর্কে আমাদের আলোকিত করতে পারেন এবং সম্ভব হলে আরও কিছু বিকল্প যুক্ত করতে পারেন? - আমার মত নবাগত প্রোগ্রামারদের সাহায্য করবে। ধন্যবাদ।
সেন্ডিলকুমার আলালাসুন্দরম

7
একটি বিকল্প জন্য নীচে আমার উত্তর দেখুন। উপরের সমাধানটি ভুল নয়, এটি কেবলমাত্র আপনার চূড়ান্ত পণ্যটিকে যতটা সম্ভব পরিষ্কার করার জন্য সর্বদা চেষ্টা করা উচিত। উপরের সমাধানের সাথে, আপনার চূড়ান্ত পণ্যটি একটি অপ্রয়োজনীয় web.xml ফাইলের সাথে শেষ হবে । এর পরিবর্তে আপনার নিজের বিল্ড টুল (যেমন মেভেন) এ সমস্যাটি সমাধান করা উচিত।
মার্টিজন বার্গার 12

আপনি আরও উল্লেখ করতে পারেন : igsylife.co.uk/2009/12/20/…
সত্যেন্দ্র

এটি আপনার প্রকল্পে অপ্রয়োজনীয় ফাইল যুক্ত করবে এবং অন্য জিনিসটি হ'ল ওয়েব.এক্সএমএল অ্যাপ্রোকাহটি পুরানো। আপনি যদি এই ত্রুটিটি মুছে ফেলতে চান তবে জোর করে আপডেট করুন
জাল

393

এটি একটি মাভেন ত্রুটি। এটি বলে যে এটি আপনার প্রকল্পে একটি ওয়েব.এক্সএমএল ফাইলের প্রত্যাশা করছে কারণ এটি একটি ওয়েব অ্যাপ্লিকেশন, যেমনটি ইঙ্গিত করেছে <packaging>war</packaging>। তবে সাম্প্রতিক ওয়েব অ্যাপ্লিকেশনগুলির জন্য একটি ওয়েব.এক্সএমএল ফাইল সম্পূর্ণ alচ্ছিক। মাভেনের এই সম্মেলনটি ধরতে হবে। আপনার ম্যাভেন এই যোগ pom.xmlদিন ম্যাভেন ধরতে এবং আপনি একটি বেহুদা যোগ করার জন্য প্রয়োজন হবে না web.xmlআপনার প্রকল্পে:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>

খালি যুক্ত করার চেয়ে এটি আরও ভাল সমাধান web.xmlকারণ এইভাবে আপনার চূড়ান্ত পণ্য পরিষ্কার থাকে, আপনি কেবল আপনার বিল্ড প্যারামিটারগুলি পরিবর্তন করছেন।

মাভেনের আরও বর্তমান সংস্করণগুলির জন্য আপনি সংক্ষিপ্ত সংস্করণটিও ব্যবহার করতে পারেন:

<properties>
    <failOnMissingWebXml>false</failOnMissingWebXml>
</properties>

28
এই উত্তরটি অন্যদের চেয়ে বেশি যুক্তিযুক্ত।
smwikedia

7
আপনি যদি সার্ভলেট +.০+ পরিবেশ ব্যবহার করছেন এবং Interface WebApplicationInitializerএই উত্তরের কোনও প্রয়োগ রয়েছে তবে সঠিক পদ্ধতি is এটি এই সমস্যাটি সমাধান করার বুদ্ধিমান উপায় - web.xmlএটি ছাড়া বাঁচার পদক্ষেপ গ্রহণের পরে কোনও যুক্তি নেই !
জিবি

4
খালি ওয়েব.এক্সএমএল তৈরি করার চেয়ে এটি আরও ভাল উত্তর
dtortola

1
এমনকি ম্যাভেন> আপডেট প্রকল্প ছাড়াই কাজ করে। সুতরাং এটি প্রয়োজন হয় না।
ভাগ্যবান

13
নীচে প্রস্তাবিত হিসাবে, একটি সংক্ষিপ্ত কনফিগারেশন জন্য আপনার উত্তর আপডেট করার বিবেচনা করুন । <properties><failOnMissingWebXml>false</failOnMissingWebXml></properties>আরও ভার্জোজ প্লাগইন কনফিগারেশন সেটিংসের পরিবর্তে যথেষ্ট পরিমাণে অন্তর্ভুক্ত ।
অলিভিয়ার কইলক্স 21

32

যদি আপনি ইতিমধ্যে / src / প্রধান / ওয়েবঅ্যাপ্লিকেশনটি / web-INF অধীনে web.xml আছে কিন্তু যদি আপনি এখনও ভুল পান "web.xml অনুপস্থিত এবং সত্যতে সেট করা থাকে", যদি আপনি অন্তর্ভুক্ত করেছেন আপনি না পরীক্ষা করতে পারে / src / প্রধান / ওয়েবঅ্যাপ্লিকেশনটি মধ্যে আপনার প্রকল্প উত্স।

আপনি যে পদক্ষেপগুলি অনুসরণ করতে পারেন তা এখানে:

  1. আপনি আপনার প্রকল্পের ডান ক্লিক করে এটি পরীক্ষা করতে পারেন, এবং এর বৈশিষ্ট্যাবলী কথোপকথনটি খুলুন এবং তারপরে "স্থাপনা সমাবেশ", যেখানে আপনি ফোল্ডার / এসসিআর / প্রধান / ওয়েব অ্যাপ্লিকেশন যুক্ত করতে পারেন। সেটিংসটি সংরক্ষণ করুন এবং তারপরে,
  2. Eclipse মেনু প্রকল্পে যান -> পরিষ্কার করুন ... এবং প্রকল্পটি পরিষ্কার করুন এবং ত্রুটিটি দূরে চলে যাওয়া উচিত।

(আমি এটি গ্রহগ্রহের মঙ্গল দিয়ে যাচাই করেছি)


"গ্রহগ্রহ মঙ্গল" এর অধীনে একই সমস্যাটি দক্ষ এবং আপনার বর্ণিত সমাধানটি নিখুঁতভাবে কাজ করে! ধন্যবাদ
হার্টমুট পি।

আমার জন্য কাজ করেনি ... আমি ইতিমধ্যে এই ফোল্ডারগুলি পেয়েছি এবং এমনকি ওয়েব.এক্সএমএল মিস করার চেষ্টা করেও ভুল আছে। এটি কাজ করছে না ....
বড়দ্বাজ আর্যসোমায়াজুল

19

আপনি যদি স্প্রিং টুল স্যুট ব্যবহার করেন তবে জেনারেট ডিপ্লোয়মেন্ট ডেস্ক্রিপ্টর স্টাবের বিকল্পটি জাভা ইই সরঞ্জামগুলির অধীনে সরানো হয়েছে, তাই আপনি:

  1. আপনার প্রকল্পে ডান ক্লিক করুন
  2. জাভা ইই সরঞ্জাম নির্বাচন করুন
  3. জেনারেট ডিপ্লয়মেন্ট ডেস্ক্রিপ্টর স্টাব অপশনটি নির্বাচন করুন

এটি src / main / webapp / WEB-INF / ফোল্ডারের ভিতরে Web.xML ফাইল তৈরি করবে এবং অবশ্যই মাভেনের pom.xML ফাইল থেকে ত্রুটি অপসারণ করবে।

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


16

আমি একই সমস্যা আছে। অধ্যয়ন এবং গুগল করার পরে, আমি আমার সমস্যার সমাধান করেছি:

প্রজেক্ট ফোল্ডারে ডান ক্লিক করুন, যান Java EE Tools, নির্বাচন করুন Generate Deployment Descriptor Stub। এটি web.xmlফোল্ডারে তৈরি করবে src/main/webapp/WEB-INF


3
আমি কোডে বয়লারপ্লেট যুক্ত করার পরামর্শ দেব না, কারণ আপনার বিল্ড সরঞ্জামটি একটি ত্রুটি দেয়।
মার্টিজন বার্গার

16

আপনি এটি করতে পারেন যা কম ভার্বোস

<properties>
    <failOnMissingWebXml>false</failOnMissingWebXml>
</properties>

সবচেয়ে মার্জিত সমাধান আইএমএইচও। দস্তাবেজটি দেখুন (এবং একটি পুরানো গ্রহন বাগ যা এই সমাধানটিকে কাজ করতে বাধা দেয়, এখন সমাধান হয়েছে)।
অলিভিয়ার কইলক্স 21

9

Eclipse ভুল ডিফল্ট webappডিরেক্টরি স্বীকৃতি দেয় । সুতরাং আমরা এটি দ্বারা পরিষ্কারভাবে সেট করা উচিত maven-war-plugin

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>3.0.0</version>
      <configuration>
        <webappDirectory>src/main/webapp</webappDirectory>
      </configuration>
    </plugin>
  </plugins>
</build>

একবার এই সেটিংটি সংরক্ষণ করার পরে, ত্রুটিটি মুছে ফেলা হলে কখনও ঘটবে না। (কেন আমি তা ব্যাখ্যা করতে পারি না))


3

আমার 'src/main/webapp/WEB-INF/'সঠিক সমস্যাযুক্ত ফোল্ডার থাকলেও আমার একই সমস্যা ছিল web.xml

Maven build..আমি মৃত্যুদন্ড কার্যকর করার পরে কনফিগারেশন পুনরায় (maven-> গ্রহন) পরে সমস্যাটি অদৃশ্য হয়ে গেল mvn eclipse:clean eclipse:eclipse

এবং তারপরে আমি Maven -> Update Project(eclipse-> maven) প্লাগইন নির্দিষ্ট বিকল্পগুলি যুক্ত করতাম।


এখানেও একই, যদিও আমি গিট রিসেট ব্যবহার করেছি
মার্কাস বার্থলেন

আপনাকে ধন্যবাদ, এটি আমাকেও সাহায্য করেছিল। ডান ক্লিক করুন -> ম্যাভেন -> আপডেট প্রকল্প
ট্রেবার

2

আমি কেবল ইগ্রিপসে এই সমস্যাটির মুখোমুখি হয়েছি, মাভেন কমান্ড লাইনে সবকিছু ঠিকঠাক কাজ করেছে এবং আমার ওয়েব.এক্সএমএল ফাইলের অস্তিত্ব রয়েছে। এটি একটি পরিণত প্রকল্প (ইতিমধ্যে উত্পাদনের বাইরে নিযুক্ত) প্রভাবিত হয়েছিল। আমার সমস্যাটি গ্রহণ মেটাডাটাতে আবদ্ধ ছিল। আমার .settings / ফোল্ডারে ফাইলগুলির মধ্যে একটিতে একটি সমস্যা ছিল, বিশেষত org.eclipse.wst.common.comp ভাগ পরিবর্তন করা হয়েছিল। আমি এই ফাইলটিকে তার পূর্ববর্তী সংস্করণে পুনরুদ্ধার করতে সক্ষম হয়েছি, যা আমার ক্ষেত্রে সমস্যাটি সমাধান করেছে।

নোট করুন যে ইউসির উত্তরটি আমার পক্ষে কার্যকর হয়নি, যখন আমি যখন গ্রহনের বৈশিষ্ট্যগুলিতে ডিপ্লোয়মেন্ট অ্যাসেমব্লিকে ক্লিক করার চেষ্টা করেছি তখন আমার একটি ত্রুটি হয়েছিল যা বলেছিল যে "বর্তমানে প্রদর্শিত পৃষ্ঠায় অবৈধ মান রয়েছে।"


আমার একই অবস্থা ছিল এবং আমার .setting / ফোল্ডার থেকে org.eclipse.wst.common.comp উপাদান ফাইলটি পুনরুদ্ধার করতে হয়েছিল এবং আমার প্রকল্পটি এখন কাজ করে, দৃশ্যত উপাদানটির সামগ্রী মুছে ফেলা হয়েছে, সুতরাং এটি আমার ওয়েবে যাওয়ার পথ নেই। এক্সএমএল ফাইল। এছাড়াও আমি যখন গ্রহনের বৈশিষ্ট্যে ডিপ্লোয়মেন্ট এসেম্বলি খোলার চেষ্টা করেছি তখন একই ত্রুটি পেয়েছে: "বর্তমানে প্রদর্শিত পৃষ্ঠায় অবৈধ মান রয়েছে" " আমি এই উত্তরটি কিছুটা দেরিতে পেয়েছি তবে এটি কীভাবে সমাধান করব তা এই। দুর্দান্ত উত্তর বিটিডব্লিউ।
জর্জি ভালডেস

2

ওয়েব.এক্সএমএল উপস্থিত প্রকল্পের সাথে প্রকল্পের জন্য -> বৈশিষ্ট্য -> স্থাপনা সমাবেশ, যেখানে আপনি ফোল্ডারটি এসসিআর / প্রধান / ওয়েব অ্যাপ্লিকেশন যুক্ত করতে পারেন। পরিবর্তন সংরক্ষণ. এগিয়ে যেতে প্রকল্পটি পরিষ্কার করুন।

ওয়েব.এক্সএমএল সহ প্রজেক্টের জন্য প্রোপার্টি ট্যাগের অধীনে pom.xML এ মিথ্যাতে ফেলআউটমিসিং ওয়েবেএক্সএক্সএমএল সেট করুন।


1

এটা কর:

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


0

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

Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK

0

আপনার প্রজেক্টটি নির্বাচন করুন এবং "ডিপ্লোয়মেন্ট ডেস্ক্রিপ্টর" বিকল্পটি নির্বাচন করুন এবং তারপরে "জেনারেট ডিপ্লোপেশন বর্ণনাকারী স্টাব" নির্বাচন করুন


0

পদক্ষেপ: আপনার প্রকল্পটি নির্বাচন করুন এবং "ডিপ্লোয়মেন্ট বর্ণনাকারী" বিকল্পটি নির্বাচন করুন এবং তারপরে "জেনারেট ডিপ্লোয়মেন্ট ডেস্ক্রিপ্টর স্টাব" নির্বাচন করুন ভাল কাজ করে works সমস্যাটি হ'ল আমাদের ওয়েব.এক্সএমএল প্রয়োজন এমনটি হয় না তাই পম.এক্সএমএল এর কাছে মিথ্যা যুক্ত করা ভাল is


0

উপর রাইট ক্লিক করুন project --> New --> Other --> Standard Deployment Descriptor(web.xml)

1

তারপরে Next টিপুন এটি ভিতরে WEB-INFএকটি web.xmlফাইল সহ ফোল্ডার তৈরি করবে ।

2

এটা হয়ে গেছে।


-1

এসআরসি / ওয়েবএপ-তে ওয়েবে-আইএনএফ ফোল্ডার তৈরি করুন এবং তারপরে ওয়েবে-আইএনএফ ফোল্ডারের ভিতরে ওয়েব.এক্সএমএল পৃষ্ঠা অন্তর্ভুক্ত করুন



-1

প্রকল্পে ডান ক্লিক করুন, মাভেন -> আপডেট প্রকল্পে যান ... , তারপরে স্ন্যাপশট / রিলিজের ফোর্স আপডেট চেক করুন , তারপরে ওকে ক্লিক করুন । হয়ে গেল!

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