У меня есть приложение MyFaces Facelets, где кодирование страницы немного надёжно. Во всяком случае, он разработан с Eclipse и построен с Ant, и вроде бы хорошо работает в Tomcat 2.0.26. Пока все хорошо.
Теперь я предпочел бы собрать с Maven, поэтому я сделал пару pom-файлов, открыл их в Netbeans и собрал, и теперь у меня есть файл войны, который разворачивается нормально. Тем не менее, на любой странице лицевого нюна она выводит
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:684)
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:554)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1742)
Итак, я пробовал много разных вещей, и приложение на самом деле запускает простые страницы без использования лицевых частей. Но все работает, если я просто собираюсь с Ant вместо ... Итак, мой вопрос: какова наиболее вероятная разница между сборкой ant и сборкой maven, которая может вызвать это?
Также кажется, что, несмотря на то, что я настроил UTF-8 в Netbeans и pom-файлах, NetBeans в конце концов заканчивает тем, что после некоторого редактирования сообщает о файлах лицевого щита как ISO-8859-1.
Я убедился, что большинство центральных библиотек имеют одинаковую версию (особенно xerces 2.3.0), я добавил фильтр сервлетов кодирования, который не дал эффекта.
И я бы скорее исправил сборку maven и сохранил страницы с ошибками, чем наоборот ... я собираюсь представить Naven, а не исправлять страницы с ошибками.
Вот что pom.xml говорит о кодировке:
В основном pom.xml имеет следующий набор ...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>${project.build.sourceEncoding}</encoding>>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.2</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
....
<properties>
<netbeans.hint.deploy.server>Tomcat60</netbeans.hint.deploy.server>
<project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
</properties>