[解決済み] WebServlet を型に解決できない [重複] 。
2022-02-15 10:34:34
質問
user2821894さんのアドバイスでアプリが動くようになりましたが、サーブレットを呼び出そうとしたところ、tomcat7がまた動かなくなりました! サーブレットを呼び出すコードを削除すると、ウェブアプリが動作しなくなります。 サーブレットに問題があると、tomcatは動かなくなります。
eclipseでWebプロジェクトを起動するのに問題がありました。 Tomcat 7に問題があったのです。 そこで、eclipseからtomcat 7を「削除」してから、再び追加しました(再びtomcat 7)。
今、私はウェブプロジェクトを起動するのに問題はありませんが、サーブレットで問題が発生しました。 例えば、次のようなエラーが発生します。
WebServlet cannot be resolved to a type
The attribute value is undefined for the annotation type
servlet-api 3.0.jarをプロジェクトに追加しましたが、まだこれらの問題があります。
これは私のサーブレットのコードです。
package Jeans;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.annotation.WebServlet;
import com.sun.java.swing.plaf.windows.TMSchema.Part;
import javax.servlet.http.Part;
@WebServlet("/FileUploadDBServlet ")
//// i got an error here////////////////////////////
@MultipartConfig(maxFileSize = 16177215)
public class FileUploadDBServlet extends HttpServlet {
private String dbURL = "db";
private String dbUser = "dbuser";
private String dbPass = "dbpassword";
String messageMio = "da contorllare";
GestioneDB gestioneDB;
boolean connessione;
Connection conn;
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String giorno= request.getParameter("giorno");
String mese= request.getParameter("mese");
String anno= request.getParameter("anno");
String dataFormatoItaliano = giorno + "-" + mese + "-" + anno;
String titolo = request.getParameter("titolo");
String titoletto = request.getParameter("titoletto");
String testoMouse = request.getParameter("testoMouse");
String link = request.getParameter("link");
String data = dataFormatoItaliano;
String testo = request.getParameter("testo");
//// i got an error here////////////////////////////
Part filePart = request.getPart("immaginePrincipale");
String didascaliaImmaginePrincipale = request.getParameter("didascaliaImmaginePrincipale");
InputStream immaginePrincipale = null;
if (filePart != null) {
// obtains input stream of the upload file
immaginePrincipale = filePart.getInputStream();
}
String message = null;
try {
gestioneDB = new GestioneDB();
conn = gestioneDB.cn();
gestioneDB.inserimentoNews(titolo, titoletto, testoMouse, link, testo, data, immaginePrincipale, didascaliaImmaginePrincipale);
String sql = "INSERT INTO allegati_news (allegato,didascalia,tipo,id_news,immagine) values (?,?,?,?,?)";
PreparedStatement statement = conn.prepareStatement(sql);
statement.setString(1, "firstName");
statement.setString(2, "lastName");
statement.setInt(3, 1);
statement.setInt(4,1);
if (immaginePrincipale != null) {
statement.setBlob(5, immaginePrincipale);
}
int row = statement.executeUpdate();
if (row > 0) {
message = "File salvato nel db";
}
} catch (SQLException ex) {
message = "ERROR: " + ex.getMessage();
ex.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
request.setAttribute("Message", gestioneDB.getInserimentoNewMessaggio());
getServletContext().getRequestDispatcher("/Message.jsp").forward(request, response);
}
}
}
これは私の web.xml ファイルです。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Jeans2</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>prova</display-name>
<servlet-name>prova</servlet-name>
<servlet-class>Jeans.prova</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>prova</servlet-name>
<url-pattern>/prova</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>FileUploadDBServlet</display-name>
<servlet-name>FileUploadDBServlet</servlet-name>
<servlet-class>Jeans.FileUploadDBServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FileUploadDBServlet</servlet-name>
<url-pattern>/FileUploadDBServlet</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>BlobDisplay</display-name>
<servlet-name>BlobDisplay</servlet-name>
<servlet-class>Jeans.BlobDisplay</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BlobDisplay</servlet-name>
<url-pattern>/BlobDisplay</url-pattern>
</servlet-mapping>
</web-app>
解決方法は?
servelt-api-3.0 jarの代わりにservlet-api.jarを追加して、サーバーを停止します。プロジェクトを更新してから、サーバーを起動して見てください。うまくいくはずです。tomcatのlibフォルダにあるservlet-api.jarを追加していることを確認してください。tomcatがC:㊙Tomcat㊙libにあるとします。 eclipse で project-properties-javabuildpath-add external jars を右クリックし、tomcat フォルダから servlet-api.jar を選択します。
関連
-
[解決済み】エラー:配列または java.lang.Iterable のインスタンスに対してのみ反復処理を行うことができます。
-
[解決済み】Javaクラスの "型に解決できない"
-
[解決済み】Java JDK - doubleからintへの非可逆変換の可能性
-
[解決済み】「error: '.class' expected」の意味と修正方法について
-
[解決済み】-XX:MaxPermSizeは何をするのですか?
-
[解決済み】なぜjava.io.Fileにはcloseメソッドがないのでしょうか?
-
[解決済み】keytoolエラー 鍵屋が改ざんされたか、パスワードが不正確だった場合
-
[解決済み】Hibernateの例外「failed to lazily initialize a collection of role」の解決方法
-
[解決済み] テスト
-
[解決済み】Ubuntu: OpenJDK 8 - パッケージを見つけることができません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】popBackStack()とreplace()の操作はどう違うのですか?
-
[解決済み】不正な反射的アクセスとは?
-
[解決済み】HTTPステータス500 サーブレットクラスのインスタンス化エラー [重複]。
-
[解決済み】 java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver [重複]。
-
[解決済み】Gradleがtools.jarを見つけ出さない
-
[解決済み】Javaを使用するSelenium - ドライバの実行ファイルのパスは、webdriver.gecko.driverシステムプロパティで設定する必要があります。
-
[解決済み】Javaメソッドスタブ
-
[解決済み】ソースルート外のJavaファイル intelliJ
-
[解決済み】接続Java - MySQL : 公開鍵の取得は許可されていません。
-
[解決済み] Eclipseプロジェクトでjavax.servlet / jakarta.servlet APIをインポートするにはどうしたらいいですか?