您的位置:首页 > 其它

STS MAVEN对项目进行打包是的一些warning,error的解决方案

2012-08-19 20:51 302 查看
1.


[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!

提示,这说明你没有指定编码,只能按照平台的默认编码进行拷贝。如果原来编码使用的是UTF-8进行保存,而这里拷贝用GBK肯定会出现乱码的。所以要改成自己的编码保存的方式。

解决方法,在POM.XML文件中添加:

<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
</properties>


添加后:

Using 'UTF-8' encoding to copy filtered resources.

会出现如上的提示。

2.

[WARNING] Warning: selected war files include a WEB-INF/web.xml which will be ignored

解决方法:在POM.XML文件中加入:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<!-- http://maven.apache.org/plugins/maven-war-plugin/ -->
<packagingExcludes>WEB-INF/web.xml</packagingExcludes>
</configuration>
</plugin>


3.

Failed to load class "org.slf4j.impl.StaticLoggerBinder"

Hibernate使用SLF4J API记录日志,所以在Hibernate的lib中,不再提供Log4J的包,而大部分框架依然使用Log4J记录日志,这样导致了兼容性问题。

解决办法,两步:
一、在编译路径中添加Log4J的包,比如我一直在用的log4j-1.2.8.jar;
二、再添加一个叫做slf4j-log4j12-1.5.11.jar的包进行转换,注意到这里的log4j12,可能对应的是log4j 1.2版本。

SLF4J官方下载:http://www.slf4j.org/download.html
下载后解压可找到slf4j-log4j12-XX.jar

4.

The import org.springframework.jdbc cannot be resolved

出现此问题是在使用JdbcTemplate的时候。与Jdbc相关的JAR包没有引入的原因。可以到MAVEN的中央仓库中去搜索spring jdbc然后找到相应的依赖。添加到MAVEN工程的pom.xml文件中。依赖关系如下:

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>


5.

缺少servlet-api.jar。会提示The type javax.http.HttpServletRequest cannot be resolved。可以到MAVEN的中央仓库中搜索servlet-api然后找到相应的依赖关系。添加到MAVEN工程的pom.xml文件中。找到的依赖关系如下:

<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>servlet-api</artifactId>
<version>6.0.35</version>
</dependency>


6.

如果在XML文件中出现start state definition is missing的错误提示。则解决方法是:将该工程重建。然后重新新建该XML文件。

7.

在使用Spring MVC 与 FreeMarker 结合使用时如果出现could not resolve view with name in servlet with name的错误。则是{Dispatcher名}-servlet.xml文件中的视图解析器配置的问题。

如果是按如下配置的,则不会出现上述问题。

<bean id="viewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">

<property name="viewClass"
value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"></property>

<property name="suffix" value=".ftl"></property>

</bean>

<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/flt/"></property>
<property name="freemarkerSettings">
<props>
<prop key="template_update_delay">0</prop>
<prop key="default_encoding">utf-8</prop>
<prop key="locale">zh_CN</prop>
<prop key="number_format">0.##########</prop>

</props>

</property>

</bean>


但是如果在第一个bean中配置了<property name="prefix" value="/" /> 则会出现上述问题。

如果在第一个bean中的 <property name="suffix" value=".ftl"></property>配置中,如果value的值不是.ftl则也会出现上述问题。

原因是:freemarker本身配置了templateLoaderPath而在viewResolver中不需要配置prefix,且路径前缀必须配置在templateLoaderPath中。

8.

出现not found org.springframework.web.servlet.view.InternalResourceViewResolver的错误提示。是因为缺少spring webmvc包所致,可以再MAVEN的中央仓库中搜索相应包的依赖关系。依赖关系如下:

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐