質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

0回答

1106閲覧

eclipseで動的webプロジェクトを作成し,pdfboxを使用したい

nhnhnhikikik

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2021/10/02 08:23

編集2021/10/02 09:36

前提・実現したいこと

webアプリケーションを作成しようと考えており,アップロードされたpdfファイルを読み込んで,pdfのテキストを抽出しようとしています。jarファイルを置く場所が悪いのか,プログラムに問題があるのかわかりません。下記プログラムはアップロードされたpdfファイルのページ数を表示しようとしていますが,PDDocument document = PDDocument.load(pdffile); がうまくいっていないみたいです。また,PDDocument document = PDDocument.load(pdffile);にカーソルを当てると,

org.apache.pdfbox.pdmodel.PDDocument
注: この要素には添付されたソースも、添付された Javadoc もないため、Javadoc を検出できませんでした。

このような表示がでてきます。

発生している問題・エラーメッセージ

イメージ説明

type 例外レポート メッセージ サーブレットの実行により例外を投げました 説明 The server encountered an internal error that prevented it from fulfilling this request. 例外 javax.servlet.ServletException: サーブレットの実行により例外を投げました org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 原因 java.lang.NoClassDefFoundError: org/apache/pdfbox/pdmodel/PDDocument kgu.grades.doPost(grades.java:63) javax.servlet.http.HttpServlet.service(HttpServlet.java:648) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 原因 java.lang.ClassNotFoundException: org.apache.pdfbox.pdmodel.PDDocument org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333) org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167) kgu.grades.doPost(grades.java:63) javax.servlet.http.HttpServlet.service(HttpServlet.java:648) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 注意 原因のすべてのスタックトレースは、Apache Tomcat/8.0.43のログに記録されています

該当のソースコード

java

1package kgu; 2 3import java.io.File; 4import java.io.IOException; 5import java.io.InputStream; 6 7import javax.servlet.RequestDispatcher; 8import javax.servlet.ServletException; 9import javax.servlet.annotation.MultipartConfig; 10import javax.servlet.annotation.WebServlet; 11import javax.servlet.http.HttpServlet; 12import javax.servlet.http.HttpServletRequest; 13import javax.servlet.http.HttpServletResponse; 14import javax.servlet.http.Part; 15 16import org.apache.pdfbox.pdmodel.PDDocument; 17 18/** 19 * Servlet implementation class grades 20 */ 21@WebServlet("/grades") 22@MultipartConfig(location = "") 23public class grades extends HttpServlet { 24 private static final long serialVersionUID = 1L; 25 26 /** 27 * @see HttpServlet#HttpServlet() 28 */ 29 public grades() { 30 super(); 31 // TODO Auto-generated constructor stub 32 } 33 34 /** 35 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 36 */ 37 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 38 // TODO Auto-generated method stub 39 RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/graduate_judge.jsp"); 40 rd.forward(request, response); 41 //response.getWriter().append("Served at: ").append(request.getContextPath()); 42 } 43 44 /** 45 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 46 */ 47 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 48 // TODO Auto-generated method stub 49 request.setCharacterEncoding("utf-8"); 50 //pdfのファイルをPartオブジェクトとして取得 51 Part part = request.getPart("pdf"); 52 //ファイル名を取得 53 String filename = part.getSubmittedFileName(); 54 //String filename = Paths.get(part.getSubmittedFileName()).getFileName().toString(); 55 //アップロードするフォルダ 56 String path = getServletContext().getRealPath("/upload"); 57 System.out.println(path); 58 //書き込み 59 //part.write(path+File.separator+filename); 60 61 request.setAttribute("Fname", filename); 62 63 InputStream pdffile = part.getInputStream();//new File(path+File.separator+filename); 64 PDDocument document = PDDocument.load(pdffile); 65 System.out.println("総ページ数:" + document.getNumberOfPages()); 66 67 //Path p = Paths.get(path+File.separator+filename); 68 //Files.delete(p); 69 70 RequestDispatcher rd = request.getRequestDispatcher("WEB-INF/result.jsp"); 71 rd.forward(request, response); 72 //doGet(request, response); 73 } 74 75} 76

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/10/02 09:22

画面キャプチャでは限界があります。 例外部分(エラー部分)を質問本文にテキストとして提示してください。
m.ts10806

2021/10/02 09:31

あの、可能ならエラーもマークダウンのcodeで。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問