Saturday, December 22, 2018

Spring MVC 5 で文字化け対策

Spring MVCを使う機会があったが、
POSTしたリクエストがいつも文字化けする。

Web上を調べると、server.xmlの値を変えないといけないとか
@RequestMappingにproduces = "application/json; charset=UTF-8"を付けろとか
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false"%>がJSPのヘッダに必要だとかありましたが、
結論としては上記のどれでも無かったです。

私が作成しているプロジェクトの構造ですが、

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "jp.co.jdserve.serviceinfo")

public class AppConfig {

というコンフィギュレーションと

public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

というInitializerを使っています。
このInitializerの方に下記のメソッドを追加すると、
全てUTF-8で登録表示できるようになりました。

    /**
     * リクエスト、レスポンス共にUTF8で統一する。
     */
    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
        characterEncodingFilter.setEncoding("UTF-8");
        characterEncodingFilter.setForceEncoding(true);
        return new Filter[] {characterEncodingFilter};
    }    

Sunday, December 2, 2018

CircleCIで docker-php-ext-install がフォルダアクセス権限無しでエラー

先週、CircleCIでライブラリの更新があったせいか、ビルドがエラーで落ちまくりましたので、メモしておきます。

Build Fail メールを受けて見に行くと、


/usr/local/bin/docker-php-ext-enable: 108: /usr/local/bin/docker-php-ext-enable: cannot create /conf.d/docker-php-ext-pdo_mysql.ini: Directory nonexistent


 というエラーメッセージが出ていました。

何故今まで普通にインストール出来たのが、急に出来なくなったのか分かりませんが、どうやらフォルダ権限に問題があるようなので、

sudo docker-php-ext-install intl pdo pdo_mysql

としていたところを-Eオプションを付けて、

sudo -E docker-php-ext-install intl pdo pdo_mysql

としたところ、正常にビルドできました。