2013-05-20 2 views
1

최근에 Netbeans 7.3으로 업그레이드했으며 프로젝트 구성과 인터페이스를 많이 얻지 못했습니다. 예를 들어, 일단 Java 클래스가있는 소스 패키지를 보았 더라면 이제 파일 패널에서만 볼 수 있습니다. batchQueryServlet이라는 HTTP 서블릿을 포함하는 batchUtility라는 패키지가 있습니다.Netbeans 7.3에서 Java HTTP 서블릿 구성

jQuery.ajax() 함수를 통해 JSON을 batchQueryServlet에 게시해야하므로 서블릿을 매핑 할 수 없습니다. 여전히

<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> 

하지만 다음과 같이

넷빈즈 7.3 설정 파일을 제공하지 않기 때문에

, 나는 나 자신이 WEB-INF 폴더> 새> web.xml 파일을 클릭하여 하나를 생성 및 작성했습니다 내가 서블릿 이름을 호출하면 나는면 ClassNotFound 예외가 있기 때문에 클래스를 찾을 수없는 확신 해요, 지금

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

: 요청을 발행 할 때, 나는 404 오류가 발생합니다. 내가 어떻게 고칠 수 있니? (빠르고 지저분한 해결책은 JSP를 사용하는 것이지만 나는 그것을하지 않을 것이다).

추 신 : Tomcat 버전 7.0.34를 사용합니다.

편집 문제는 내가 (이 나는 패키지를 볼 수없는 이유이다) 일반 폴더 대신 내 된 .java 클래스를 저장하기위한 적절한 SRC/자바 경로를 이용해야했다. 이제 해결했습니다. 어쨌든 시간 내 주셔서 감사합니다!

답변

1

당신은

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

의 선도적 인 슬래시를 제거하고 사물이 작동해야 있습니다.

은 아약스 url:을 변경

에 하나 "batchQueryServlet" 또는 "/web-app-name/batchQueryServlet"

편집 :

일단 같은 웹 응용 프로그램의 폴더 구조가 있어야한다 배치 : (/ 디렉토리를 나타냅니다)

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 

하는 경우 (Eclipse와 같은) IDE를 사용하고 있습니다.

+0

아, 네 말이 맞아. 그래도 작동하지 않습니다. 그러나, 나는 여기서 문제가 무엇인지 이해했다고 생각한다. 나는 상황을 설정해야한다. 게시 할 때'http : // localhost : 8084/batchQueryServlet'에 게시하지만 'http : // localhost : 8084/projectName/batchQueryServlet'으로 지정합니다. context.xml 파일 인' '그리고 작동 할 수 있다고 생각했지만 그렇지 않을 것 같습니다. 컨텍스트 경로를 추가하려고 시도했지만 http : // localhost : 8084/batchQueryServlet :/ –

+0

에 대해 게시합니다. 컨텍스트 부분에 맞습니다. 업데이트 확인. –

+0

감사합니다. 이제 작동합니다. 문제는, ClassNotFound 예외에서 여전히 실행됩니다. 왜냐하면 batchQueryServlet을 찾지 못하기 때문입니다. 나는/app_name/폴더에있는 batchUtility 폴더를 가지고 있지만 클래스가 같은 폴더 내의 클래스를 해결할 수 없다는 것을 깨달았습니다. 컴파일에 문제가있는 것 같아요. –