मुझे जो कुछ भी मिला है, वह मुझे इस विशिष्ट मामले को हल करने में मदद करने में सक्षम नहीं है। मैंने हाल ही में एक मैवेन वेब प्रोजेक्ट में एक सादे पुराने जावा वेब ऐप प्रोजेक्ट (जो काम कर रहा था) से स्विच किया था।मैवेन बिल्ड प्रक्रिया के दौरान गुण फ़ाइलों की प्रतिलिपि क्यों नहीं करता है?
java.util.MissingResourceException: Can't find bundle for base name com.myapp.config, locale en
मैं एक JSF 2.0, स्प्रिंग, और हाइबरनेट वेब अनुप्रयोग बनाने के लिए Netbeans उपयोग कर रहा हूँ: मैं निम्नलिखित क्रम अपवाद मिलता है। मैं निम्नलिखित निर्देशिका संरचना है:
src \ मुख्य \ जावा \ कॉम \ MyApp config.properties शामिल
src \ मुख्य \ संसाधनों खाली
लक्ष्य \ myapp \ WEB-INF \ classes \ com \ myapp config.properties
\ मुख्य \ जावा स्रोत के बिना वर्ग फ़ाइलों संकलित होता है \ कॉम \ MyApp config.properties
लक्ष्य फ़ोल्डर में युद्ध फ़ाइल के
निरीक्षण शामिल गुण का कोई भी संकेत नहीं दिखाता है तो फाइल यह रूप में अगर Maven निर्माण प्लग में गुण फ़ाइलों की प्रतिलिपि नहीं है। मुझे पता है कि एक टैग है जिसे आप पोम के अंदर रख सकते हैं लेकिन यह मेरे लिए काम नहीं करता है। नीचे दिए गए लिंक का उल्लेख है कि संसाधन फ़ोल्डर (मेरे लिए खाली) में निर्माण के दौरान इसकी सामग्री शामिल है, लेकिन यदि ऐसा है, तो आप इसे नेटबीन्स से कैसे करते हैं? मैं चाहता हूं कि गुण फ़ाइल को मेरे युद्ध के साथ पैक किया जाए ताकि सर्वर पर तैनात होने पर यह पहुंच योग्य हो।
http://maven.apache.org/plugins/maven-war-plugin/examples/adding-filtering-webresources.html
pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myapp</groupId>
<artifactId>myapp</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>myapp</name>
<url>http://maven.apache.org</url>
<repositories>
<repository>
<id>java.net</id>
<name>Repository hosting the Java EE 6 artifacts</name>
<url>http://download.java.net/maven/2</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-hibernate3</artifactId>
<version>2.0.8</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.1.8</version>
</dependency>
<dependency>
<groupId>net.authorize</groupId>
<artifactId>java-anet-sdk</artifactId>
<version>1.4.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.15</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
<finalName>${artifactId}</finalName>
</build>
<profiles>
<profile>
<id>endorsed</id>
<activation>
<property>
<name>sun.boot.class.path</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<!-- javaee6 contains upgrades of APIs contained within the JDK itself.
As such these need to be placed on the bootclasspath, rather than classpath of the
compiler.
If you don't make use of these new updated API, you can delete the profile.
On non-SUN jdk, you will need to create a similar profile for your jdk, with the similar property as sun.boot.class.path in Sun's JDK.-->
<compilerArguments>
<bootclasspath>${settings.localRepository}/javax/javaee-endorsed-api/6.0/javaee-endorsed-api-6.0.jar${path.separator}${sun.boot.class.path}</bootclasspath>
</compilerArguments>
</configuration>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-endorsed-api</artifactId>
<version>6.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<properties>
<netbeans.hint.deploy.server>gfv3ee6</netbeans.hint.deploy.server>
</properties>
मैंने ऊपर pom.xml संलग्न किया। क्लासपाथ टैग हो सकता है जो मुझे संपादित करने की आवश्यकता है। जैसा ऊपर बताया गया है, मैं संसाधन फ़ोल्डर में सामान नहीं रखना चाहता क्योंकि यह नेटबीन में दिखाई नहीं देगा यदि मैं इसे वहां ले जाता हूं। – Nicholas22j
नेटबीन्स संसाधन निर्देशिका में गुण फ़ाइलों को संभालने में सक्षम होना चाहिए। Http://netbeans.org/community/magazine/html/04/maven.html देखें, लगभग आधा रास्ते जहां यह संसाधनों के बारे में बात करता है (या केवल संसाधनों के लिए पृष्ठ खोजें और इसे इसके बारे में क्या कहना है) पढ़ें। – squawknull
मुझे लगता है कि नेटबीन्स लेख ने मुझे सही दिशा में इंगित किया है। Netbeans प्रोजेक्ट टैब में "अन्य स्रोत" नामक एक फ़ोल्डर है। आपको वांछित पैकेज संरचना के तहत गैर-वर्ग फ़ाइलों (जैसे .properties फ़ाइलों) को "अन्य स्रोत"> "src/main/resource" में जोड़ना होगा। मुझे पता था कि यह कुछ आसान होना था!मैं आपको नहीं बता सकता कि मैंने इस पर कितना समय बिताया। बहुत बहुत धन्यवाद @ squawknull! आपने धमाल मचाया। – Nicholas22j