public static void setProperty(Object source, String key, String value) {
        try {
            Method setter = source.getClass().getMethod("set" + key, String.class);
            setter.setAccessible(true);
            setter.invoke(source, value);
        } catch (NoSuchMethodException e) {
            throw new UtilException("セッターが見つかりませんでした: FQCN=" +
                    source.getClass().getName() + ", セッター=set" + key, e);
        } catch (InvocationTargetException e) {
            throw new UtilException("メソッドの実行に失敗しました: FQCN=" +
                    source.getClass().getName() + ", セッター=set" + key + ", 値=" + value, e);
        } catch (IllegalAccessException e) {
            throw new UtilException("メソッドの実行に失敗しました: FQCN=" +
                    source.getClass().getName() + ", セッター=set" + key + ", 値=" + value, e);
        }
    }