スキップしてメイン コンテンツに移動

投稿

ラベル(Java 7)が付いた投稿を表示しています

Google App Engineで外部のURLにアクセス

Google App Engine(GAE)から外部のネットワークへ接続する際の注意 Google App Engine(GAE)の開発環境の移行の際にJava 7からJava 8へ移行しました。 その際、GAEから、java.net.URL.openConnectionを使って普通に外部ネットワークのAPIを呼び出そうとすると下記のエラーが発生するようになってしまいました。 java.net.UnknownHostException: ホスト名 いろいろ調べていくと、下記のページにたどり着きました。 https://cloud.google.com/appengine/docs/standard/java/issue-requests 上記の表を間単に日本語訳すると URLのフェッチ方法 Java 7 Java 8 UrlFetch API Calls com.google.appengine.urlfetch.*以下のクラスを使う。無料で使用できる部分あり。 com.google.appengine.urlfetch.*以下のクラスを使う。無料で使用できる部分あり。 Javaネイティブのjava.net.URL.openConnectionなどを使う方法 無料ユーザも制限なく利用可能。 無料ユーザは、利用不可。 java.net.UnknownHostException、java.net.SocketTimeoutException、java.io.IOException とかが投げられる。 まとめると、 GAEで外部ネットワークへアクセスする方法には「GAEが提供するUrlFetch API Calls」「Javaネイティブのjava.net.URL.openConnection」の2つ方法がある。 Java 7では、「GAEが提供するUrlFetch API Calls」「Javaネイティブのjava.net.URL.openConnection」は無料でどちらの方法も利用可能。 Java 8で無料で利用できるのは「GAEが提供するUrlFetch API Calls」のみ。 Java 8で「Javaネイティブのjava.net.URL.openConnectionの方法」は課金ユーザーのみ利...

Java File Copy - Guava, Java7, Java Legacy, FileChannel, CommonsIO

There are a lot of way to copy file in Java. I have wrote sample codes for them. I think Java 7 way will be the normal & standard way soon!! import static com.dukesoftware.utils.common.ExceptionUtils.throwNotImplementedException; import static java.nio.file.StandardCopyOption.REPLACE_EXISTING; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.Reader; import java.io.Writer; import java.net.URI; import java.nio.channels.FileChannel; import java.nio.file.Paths; import org.apache.commons.io.FileUtils; import com.google.common.io.Closeables; import com.google.common.io.Files; public enum Copier { GUAVA{ @Override public void copy(File src, File dest) throws IOException { Files.copy(src, dest); } }, JAVA7{ @...

JDK7 + EMMA

I recently upgraded my JDK from 6 to 7. When I ran my JUnit tests with EMMA, all tests suddenly became failed with the following error: java.lang.ClassFormatError: Illegal local variable table length 11 in method ..... I have googled and found that the solution from here . What I have done is adding -XX:-UseSplitVerifier option when JUnit runs. After I added this option, everything works fine. (The cause looks like new try-catch resource feature according to the above stackoverflow trace but I have not confirmed yet.)