Nic*_*22j 16 resourcebundle maven java-ee-6
我发现的任何东西都无法帮助我解决这个具体案例.我最近从一个普通的旧的Java Web应用程序项目(正在运行)切换到一个maven web项目.我得到以下运行时异常:
java.util.MissingResourceException: Can't find bundle for base name com.myapp.config, locale en
Run Code Online (Sandbox Code Playgroud)
我正在使用Netbeans创建一个JSF 2.0,Spring和Hibernate Web应用程序.我有以下目录结构:
src\main\java\com\myapp包含config.properties
src\main\resources空
目标\ myapp\WEB-INF\classes\com\myapp包含没有config.properties的编译类文件
src\main\java\com\myapp包含config.properties
检查目标文件夹中的WAR文件不会显示属性文件的任何迹象,因此就好像Maven构建插件没有复制属性文件一样.我知道你可以在pom中放置一个标签,但它对我不起作用.下面的链接提到资源文件夹(对我来说是空的)在构建期间包含其内容但是如果是这种情况,你如何从Netbeans做到这一点?我只希望将属性文件与我的war一起打包,以便在将其部署到服务器时可以访问它.
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>
Run Code Online (Sandbox Code Playgroud)
Rog*_*ays 36
默认情况下,Maven不会从java源代码树复制资源,但您可以通过将其添加到pom.xml来实现:
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<excludes><exclude>**/*.java</exclude></excludes>
</resource>
</resources>
</build>
Run Code Online (Sandbox Code Playgroud)
确保排除java源文件.
来自http://www.ninthavenue.com.au/how-to-change-mavens-default-resource-folder
Dav*_*ave 12
您的项目的构建路径配置为在Netbeans中是什么?您可以尝试将其更改为src/main/webapp/WEB-INF/classes.这样,从您的src/main/java文件夹和您拥有的任何资源编译的类文件src/main/resources应该包含在生成的WAR中.然后,如果将其放在src/main/resources文件夹下,则可以访问config.properties文件.
您还可以查看includespom.xml中的任何部分,并确保不会意外地排除某些内容(如果您明确包含某些内容,则可能会隐式排除其他内容).
| 归档时间: |
|
| 查看次数: |
41079 次 |
| 最近记录: |