Java

Java→Python Pdfkit実行→PDF受け取る

Wicket で、Python Pdfkit実行してPDFダウンロードさせる方法を考えました。 このメリットは、 ・作成するPDFが、PdfkitがHTMLからPDFへの変換であることから WicketでブラウザにWeb Page 表示してPDF作成イメージを確認できること。 ・HTMLでPD…

Google gson MalformedJsonException のパターン

Google gson で JSON読込みした時に発生する MalformedJsonException のパターンとは、以下の表にまとめることができる。 エラーのパターンは、これ以外あるかもしれないが、だいたいこんなところ。 例外のメッセージ エラーの意味 JSONエラーの例 Untermina…

Chart.js Time グラフの為のデータJSONを作成するクラス

Chart.js https://www.chartjs.org/ X軸=時刻 の線グラフを描画するためのJSONデータ作成する Java クラスを作成して、AJAX通信によるJSONデータ → Chart.js グラフ描画をデザインを除いた 可変の JSONデータ生成だけでも汎用的にならないかと考えました。…

java.lang.reflect.Type インスタンスを生成する方法

総称型orクラスを知りたい時、知らせたい時に java.lang.reflect.Type を伝える為の Type インスタンスを生成する方法 Google guice を使用している前提で2通りある。com.google.common.reflect.TypeToken import com.google.common.reflect.TypeToken; Typ…

MalformedException の捕捉処理を書き易くする。

Google gson の fromJson や JsonParser で発生する JSON書式エラー、MalformedException の捕捉を するとして、try~ctach 文の中に書いてもいいのですが、 1つのロジックで何回もJSON読込みの必要な処理があって、毎回 catch文の中で MalformedException …

JSONの書式チェック

Google gson の fromJson や JsonParser 生成は、次のようなJSONであると { "A": "12", } com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Expected name at line 3 column 2 path $.A と例外を発生してくれます。JSO…

配列型に対するmybatis の TypeHandler よく使いそうなものを作った

先日書いた int[] → ArrayTypeHandler - Oboe吹きプログラマの黙示録 に刺激されて、String[ ] , LocalDate[ ] , LocalDateTime[ ] , double[ ] とのマッピング もあるべきと思い、 GitHub - yipuran/yipuran-mybatis: mybatis used application の方で公開…

int[] → ArrayTypeHandler

SQLクエリの結果から、int [ ]で受け取るための mybatis ArrayTypeHandler先日、PostgreSQL 再帰クエリの結果から、INTEGER型 配列を Integer[] で取得するものを 書きました。 oboe2uran.hatenablog.comInteger [ ] ではなくて、やはり、int [ ] で取得した…

PostgreSQL の再帰SQL→Array → mybatis で取得

先日の例、 PostgreSQL の再帰SQL で要素の連結結果を求める。 - Oboe吹きプログラマの黙示録 テーブル名:division id parent_id name 1 null A 2 1 B 3 2 C 4 2 D ここから、連結文字列の結果、id と name "1" "1,2" "1,2,3" "1,2,4""A" "A,B" "A,B,C" "A,…

Generic JsonDeserializer

先日、Gsonデシリアライザ ラムダで。 - Oboe吹きプログラマの黙示録 や、 Gsonデシリアライザ、汎用化? - Oboe吹きプログラマの黙示録 を書きましたが、 再考して、以下に至りました。 JsonDeserializer実装生成で目標のインスタンスの Supplier と JsonDe…

テスト用に作ったファイル読み込み

Java テスト用に作ったファイル読込み 以下のような static メソッドを書いて使い回してました。 public static String readText(String path) throws IOException{ try(InputStream in = new FileInputStream(path); ByteArrayOutputStream out = new ByteA…

PBKDF2ではなくSHA256で CryptoJS のAES暗合復号

Java と JavaScript 間の AES暗合 - Oboe吹きプログラマの黙示録 に書いたように、PBKDF2WithHmacSHA1 で実行する AES暗合も一計ですが、 単純に、SHA-256 ハッシュ&初期ベクトルを単純にハッシュ値から持ってくる方法も、 CryptoJS で書こうと思えば書けま…

Java と JavaScript 間の AES暗合

Java と JavaScript 言語間の暗合文や鍵の渡し方はいろんな方法あるので ここでは書きません。 相互での暗合復号の実際の実行を書いてます。 CBCモードで、PBKDF2WithHmacSHA1 です。 Java側JavaScript は、crypto-js を使います。 https://code.google.com/…

Java と Python の AES暗合復号

実運用を考えて、書き直しました。 AES のモードは、CBC ,パディングは、PKCS5Padding Java側 import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.Arrays; import …

Gsonデシリアライザ、汎用化?

久々に Google gson のデシリアライザを書いていて思いました。。 文字列のリスト、 import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import com.google.gson.JsonArray; import com.google…

GSON フィールド除外アノテーションを考えた。

Google gson には、@Expose というアノテーションを付与したフィールドだけを JSONシリアライズ対象に する機能があります。 でも逆に、特殊なアノテーションを付与してそのフィールドをシリアライズ対象外にする。 という機能がありません。 ほとんどが、ex…

エポック秒とエポックミリ秒

Java の エポック秒とエポックミリ秒、特にエポックミリ秒は、System.currentTimeMillis() で取得するのが、 いいのか?Instant の toEpochMilli() を使うべきなのか? 未だにわからない。 エポック秒 long epocsec = Instant.now().getEpochSecond(); Local…

Pattern Matcher の find()実行と group()実行、1つの処理文にする。

java.util.regex.Pattern java.util.regex.Matcher マッチした部分の抽出は、今まで良い考えが浮かばず、以下のように、 Matcher 変数宣言を強いられてきた。 String str = "HTTP This request is Unauthorized (401)"; Matcher m = Pattern.compile("\\([0-…

Putty で作成したRSA鍵で暗合複合の実行(Java)

putty key generator (PuTTYgen) で SSH-2 RSA 鍵を作成、PuTTYgen 画面の [ Save private key ] ボタンで 作成する ppk ファイルを使用します。 SSH 通信やFSCP の為に、PuTTYgen で鍵を作って利用するのがほとんどで、業務開発などのプログラム開発の デー…

他言語と相互間の暗合複合を考慮の AES 暗合複合 Java のコード

本記事よりも、2019-3-2 に書き改めた方を参照すべし。。 oboe2uran.hatenablog.com Java と Pyrhon 間の AES 256 暗合複合ができるようにするものです。 他言語と相互間の暗合複合を考慮の AES 暗合複合 Python のコード - Oboe吹きプログラマの黙示録 の続…

Base64 かどうか判定する

Apache commons の codec https://commons.apache.org/proper/commons-codec/ に存在する Base64 かどうかを判定する処理、 他の処理は commons の codec にあるものを使わなくてもいいから、 とにかく Base64 かどうかを判定する処理だけが欲しかった。 よ…

Java と Python 相互で AES 256 暗号/複合を実行する

本記事よりも、2019-3-2 に書き改めた方を参照すべし。。 oboe2uran.hatenablog.com 試したのは、CBCモードとECBモードです。 Python暗号→Java複合は問題ないのですが、Base64 エンコードで相互受け渡すとして Java暗号→Python複合では、暗号化した文字列長…

Java 16進数文字列から、byte[]

Java 16進数文字列から、2文字ずつ切り取って byte[] を作る。 必ず2文字ずつ切り出せる文字列であるとする。=すなわち長さが2で割り切れる。 String hexstring= "56d19eaf"; クラシックな方法 Matcher m = Pattern.compile("[\\w]{1,2}").matcher(hexst…

クラスと同じ場所に置くファイル読込み(for java11)

ただのメモです。 テンプレートなど Java クラスと同じ場所に配置したファイルを読込む想定です。java.io.Reader 取得 public Reader getFileRreader(Class cls, String filename) throws IOException, URISyntaxException{ return new FileReader( new File…

JSON書式判定

書式として与える JSON または任意の JSON に対してその要素のキーを必須で持つかどうかを判定する処理を 普遍的に欲しくなりました。フォーマッタ―とまでは望まないけど、それに近い処理も、できれば充分です。 だって JSONを Object から JSON作成は、Goog…

GSON で作成するJSONの整形

Google gson でオブジェクトから JSONテキストを生成したとき、 人間の目で見やすいように、整形するには、 GsonBuilder の setPrettyPrinting() を実行してから、Gsonを作成する。 Gson gson = new GsonBuilder().setPrettyPrinting() .create(); String st…

Java → Python プロセス起動の可能性

去年書いた yipuran-core/ScriptExecutor.java at master · yipuran/yipuran-core · GitHub このメソッド public static int runStream(Supplier<String>, Supplier<Collection<String>> , Consumer<InputStream>, BiConsumer<String, Throwable>) public static int runStream(Supplier<String>, Consumer<InputStream>, BiConsumer</inputstream></string></string,></inputstream></collection<string></string>

PythonでPDF作成→Javaで受け取り→Wicket AJAXダウンロード

WebアプリをJava で構築していて、Javaでダウンロードすファイルを作るなら一時ファイル (ディスクに一旦書き出すこと) を作らずにダウンロードするものを作るのは容易ですが、言語、実行環境が異なる処理に作らせて 一時ファイルを生成することなくダウン…

JEP325 いいなぁ。。。

ふと目にした。綺麗でいいなぁと。。JEP 325: Switch Expressions (Preview)Java11 に入らなかったんだ。。。来年の Java12 に入るのかな?

jsTree→JSON抽出→Java GSONで解析→PythonでPDF作成→Wicket でPDFダウンロード

Webページに表現したツリー図を、以前、HTML2CANVAS で変換して jsPDF でPDF作成をしたのですが、 oboe2uran.hatenablog.com 大きいツリー図になると1ページで入らない場合破綻します。 html2canvas のキャプチャ実行を複数ページに 分割するように何回…