1

私は最近、Netbeans 7.3 にアップグレードしましたが、そのプロジェクト構成とインターフェースの多くがわかりません。たとえば、以前は Java クラスを含むソース パッケージを表示していましたが、今では [ファイル] パネルでしか表示できません。batchQueryServlet という HTTP サーブレットを含む batchUtility というパッケージがあります。

jQuery.ajax() 関数を使用して JSON を batchQueryServlet に投稿する必要があり、サーブレットをマップできません。

Netbeans 7.3 には構成ファイルが含まれていないため、web-inf フォルダー > new > web.xml ファイルをクリックして自分で作成し、次のように記述しました。

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
     version="3.0">
<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>
    <servlet-name>batchQueryServlet</servlet-name>
    <servlet-class>/batchUtility.batchQueryServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>batchQueryServlet</servlet-name>
    <url-pattern>/batchQueryServlet</url-pattern>
  </servlet-mapping>
</web-app>

それでも、リクエストを発行すると、404 エラーが発生します。

  $.ajax({
                            url: "/batchQueryServlet",
                            contentType: 'application/json',
                            data: json,
                            Accept: "text/html",
                            success: function(data, textStatus, jqXHR) {
                                alert(data);
                            },
                            type: "POST"
                        });

サーブレット名を呼び出すと classNotFound 例外が発生するため、クラスが見つからないことは確かです。どうすれば修正できますか?(迅速で汚い解決策はJSPを使用することですが、私はむしろそれをしたくありません)。

PS: Tomcat のバージョン 7.0.34 を使用しています。

編集問題は、プレーンフォルダーの代わりに.javaクラスを保存するために適切なsrc/javaパスを使用する必要があることでした(これがパッケージを表示できなかった理由です)。今、私はそれを修正しました。とにかくお時間をいただきありがとうございます!

4

1 に答える 1

1

先頭にスラッシュがあります

<servlet-class>/batchUtility.batchQueryServlet</servlet-class>

それを削除すると、動作するはずです。

Ajaxurl:を次のいずれかに"batchQueryServlet"変更します"/web-app-name/batchQueryServlet"

編集

Web アプリケーションをデプロイすると、フォルダ構造は次のようになります: (/ディレクトリを示します)

tomcat-home/
 |- webapps/
   |- BatchWebApp/ //<-- Context-Root (Web-app's name)
     |- *.html, *.jsp etc.
     |- WEB-INF/
        |- web.xml
        |- lib/
          |- *.jar files
        |- classes/ //<-- ALL your servlets go here
          |- batchUtility/ //<-- with the required package/folder structure
            |- batchQueryServlet.class

IDE (Eclipse など) を使用している場合は、同じことが行われます。

于 2013-05-20T00:53:37.447 に答える