1. 程式人生 > >Maven打包後配置檔案亂碼的問題

Maven打包後配置檔案亂碼的問題

把web工程的war包釋出到linux伺服器上總是報錯exception is com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 3 of 3-byte UTF-8 sequence,具體如下:

[2015-09-02 09:32:52 uq_www] INFO [pool-2-thread-3] XmlBeanDefinitionReader.loadBeanDefinitions(315) | Loading XML bean definitions from class
path resource [applicationContext.xml] [2015-09-02 09:32:53 uq_www] INFO [pool-2-thread-3] XmlBeanDefinitionReader.loadBeanDefinitions(315) | Loading XML bean definitions from class path resource [applicationContext/db-context.xml] [2015-09-02 09:32:53 uq_www] ERROR [pool-2-thread-3] ContextLoader.initWebApplicationContext(331
) | Context initialization failed org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from relative location [applicationContext/db-context.xml] Offending resource: class path resource [applicationContext.xml]; nested exception is
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext/db-context.xml]; nested exception is com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 3 of 3-byte UTF-8 sequence.

對比db-context.xml檔案的編碼方式是UTF-8,檔案首行是<?xml version="1.0" encoding="UTF-8"?>也不錯。然後使用maven build,命令是clean package。生成的war包裡,使用notepad++開啟db-context.xml總是有部分中文註釋亂碼,但在eclipse裡顯示是沒有亂碼的。想必就是此問題了。於是暫時把問題定位在maven的外掛上,根據一些部落格的提示陸續把pom.xml做成這樣的配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <warSourceDirectory>WebRoot</warSourceDirectory>
        <webResources>
            <resource>
                <directory>${package.environment}</directory>
                <targetPath>WEB-INF/classes</targetPath>
                <filtering>true</filtering>
            </resource>
        </webResources>
    </configuration>
    <version>2.2</version>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>
<plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-resources-plugin</artifactId>
       <version>2.6</version>
       <configuration>
         <encoding>UTF-8</encoding>
       </configuration>
  </plugin>

還有這樣:

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

同樣不可以。

那麼接下來莫非是我eclipse環境有問題,於是這樣:

- 修改Eclipse中文字檔案的預設編碼:windows -> Preference -> general -> Workspace -> Text file encoding設定為UTF-8
- 修改JAVA原始檔的預設編碼:windows->Preferences->general->Content Types->右側Context Types樹,點開Text,選擇Java Source File,在下面的Default encoding輸入框中輸入UTF-8,點Update

這樣就可以了。後來我又把pom.xml配置改為原來的,即不配置maven-resources-plugin的編碼方式,也刪除<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>此項,然而生成的war包仍是正常的。這樣看來其實是eclipse的環境問題了。

相關推薦

Maven打包配置檔案亂碼的問題

把web工程的war包釋出到linux伺服器上總是報錯exception is com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 3 o

maven打包flash檔案變大,無法正常執行

最近一個老專案重構,前臺使用了swfupload來實現多檔案上傳,這是一個用flash實現的外掛。 開發階段,打包測試時均無問題。測試階段,在伺服器部署後,該外掛就莫名失效了。 經過排查最終確認是maven打測試包時,加上了資源過濾導致swfupload.swf檔案變大。  

Maven打包,中文亂碼

1. 中文環境 2.eclipse中設定工程是utf-8 3.要保證中文不會亂碼,需要在maven的 pom.xml檔案中 追加如下配置: <properties><project.build.sourceEncoding>UTF-8</pro

Java之——qqwry.dat輸出亂碼問題及maven打包資原始檔大小不一致的問題

使用qqwry.dat進行IP地理位置查詢時,遇到一個問題即在本地測試時查詢純真庫時正常,沒有任何問題,但是打包傳到伺服器上便出現了亂碼問題。1.首先排除伺服器的字符集編碼的影響使用如下命令驗證了本地和

java+maven 中excel等 資源配置檔案亂碼問題

昨天在資源中加了一個excel的配置檔案,結果下載下來excel內容是亂碼,一直懷疑是編碼的問題,因為在工程中開啟excel是沒有問題的. 改來改去,總是不行,由於是用maven打包的.就解壓打包檔案看了一下,發現打完包excel就是亂碼了,由此確認是maven的問題 網上

jenkins 自動從svn獲取源碼通過maven打包發布到遠端tomcat

文件 webapp release manage 內容 ner name 協商 -a 手動生成web的war源碼文件。mvn archetype:generate -DgroupId=com.companyname.automobile -DartifactId=truck

SSM+Maven專案有關配置檔案說明

SSM專案配置檔案說明 Spring的配置檔案:applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <!-- 防止二次掃描控制器 --> <context:component-sc

vue.js打包生成配置檔案

第一步:安裝generate-asset-webpack-plugin外掛 cnpm install generate-asset-webpack-plugin --save-dev 第二步:配置build/webpack.prod.conf.js檔案 //打包時輸出可配置檔案 const Gen

springboot打包配置檔案外接

目標: 1.將普通的MAVEN JAVA工程打包成SpringBoot可執行的jar包 2.將application.yml和log4j2.xml 1.打包 SpringBoot專案打包要求將依賴的jar全部打進去,因為SpringBoot的自動配置需要用到裡面的spring.

Spark採坑系列(二)使用Scala編寫的工程Maven打包沒有Scala檔案

新增下面的maven Scala編譯支援 <plugin>     <groupId>net.alchim31.maven</groupId>    <artifactId>scala-maven-

spring boot、maven自定義配置檔案

在pom.xml中設定<profiles>標籤來指定配置檔案載入路徑 <profiles> <profile> <id>local</id> <

maven(五)-構建配置檔案

一、為什麼需要構建配置檔案 在開發過程中,我們經常會根據不同的環境配置不同的引數,如資料來源的ip,username,password、url、祕鑰等都會不同,傳統方式是在一個配置檔案中通過修改properties檔案中的引數值或者通過註釋解註釋來達到目的,這樣不僅容易出錯

IntelliJ IDEA + maven + Tomcat 的配置檔案

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLS

在 Intellij IDEA中設定Maven 路徑及配置檔案的方法(使用阿里雲Maven源)

將 M2_HOME/conf/settings.xml 檔案複製到 ~/.m2/ 資料夾下,如圖所示 編輯 ~/.m2/settings.xml 檔案,在其中增添以下內容 <mirrors> <mirror>

Maven POM基本配置檔案

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://m

SSH框架整合的MAVEN專案之配置檔案整合

在最近的SSH框架知識回顧之後,整合了一些所需的配置檔案,並將配置檔案中的配置項記錄下來,避免在以後的開發中進行重複性編碼 首先是web專案的核心配置檔案 web.xml <?xml version="1.0" encoding="UTF-8"?&

maven中全域性配置檔案settings.xml及專案pom.xml的詳解完整版

maven中全域性配置檔案settings.xml及專案pom.xml的詳解   一、apache maven的簡介     Apache Maven,是一個軟體(特別是Java軟體)專案管理及自動構建工具,由Apache軟體基金會所提供。基於專案物件

maven中全域性配置檔案settings.xml及專案pom.xml的詳解3

(2)   properties 作用:對應profile的擴充套件屬性列表。 maven屬性和ant中的屬性一樣,可以用來存放一些值。這些值可以在pom.xml中的任何地方使用標記${X}來使用,這裡X是指屬性的名稱。屬性有五種不同的形式,並且都能在se

SpringBoot配置檔案亂碼,訪問不到配置檔案,訪問多個配置檔案的的處理

package com.bojia.fund.proconfig; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Property

webpack 打包 字型檔案不存在 用muse ui 字型圖示不顯示

muse ui 字型圖示文過大 在 build/webpack.base.config.js { test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, loader: 'url-loader', options: { limit: 800000,