###前提・実現したいこと
プログラミング初心者です。回答よろしくお願いします。
Javaサーブレットを用いて特定のJPEGファイルのExifファイルから位置情報を求めたいと思っています。
Exifファイルを抽出するためのライブラリーはSanselanを用いています。
###発生している問題・エラーメッセージ
Eclipseにて動的サイトを作成し、新規のサーブレットを生成しました。
そのサーブレット内に位置情報抽出メゾットを記述し、実行しようとしても
サーバの始動が発生しましたと表示され実行できません。
なお、メゾットをコメントアウトすると正常に動作し、ライブラリーのインポートはすでに行っています。
###該当のソースコード
#LocationTest.java
http://log.nissuk.info/2012/04/java-exifsanselan.htmlより引用しました
package design;
import java.io.File;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.sanselan.Sanselan;
import org.apache.sanselan.ImageReadException;
import org.apache.sanselan.common.IImageMetadata;
import org.apache.sanselan.formats.jpeg.JpegImageMetadata;
import org.apache.sanselan.formats.tiff.TiffImageMetadata;
import org.apache.sanselan.formats.tiff.TiffImageMetadata.GPSInfo;
/**
- Servlet implementation class LocationTest
*/
@WebServlet("/LocationTest")
public class LocationTest extends HttpServlet {
private static final long serialVersionUID = 1L;
/** * @see HttpServlet#HttpServlet() */ public LocationTest() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //response.getWriter().append("Served at: ").append(request.getContextPath()); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //doGet(request, response); }
**//問題メゾット GPS抽出
protected static GPSInfo getGPSInfo(File file) {
IImageMetadata metadata = null;
try {
metadata = Sanselan.getMetadata(file);
} catch (ImageReadException e) {
} catch (IOException e) {
}
if (metadata == null) return null;
if (!(metadata instanceof JpegImageMetadata)) return null; TiffImageMetadata exif = ((JpegImageMetadata) metadata).getExif(); GPSInfo gpsInfo = null; try { gpsInfo = exif.getGPS(); } catch (ImageReadException e) { } return gpsInfo;
}
}
###試したこと
サーバー上では問題メゾットの戻り値をvoidにし、空のメゾットにした結果正常に動作しました。
サーバー上のサーブレットではなく、
http://log.nissuk.info/2012/04/java-exifsanselan.htmlを
Eclipseの新規のJavaプロジェクトにて実行した結果、位置情報が抽出できることを確認しました。
###補足情報(言語/FW/ツール等のバージョンなど)
Tomcat 7.0 Server
Eclipse4.50 Mars
Java 1.70
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。