Я недавно обновился до Netbeans 7.3, и я совсем не понимаю конфигурации и интерфейса его проекта. Например, когда-то я видел исходные пакеты с java-классами, теперь я не могу их видеть только на панели «Файл». У меня есть пакет с именем batchUtility, содержащий сервлет HTTP с именем batchQueryServlet.
Мне нужно опубликовать JSON в batchQueryServlet через функцию jQuery.ajax(), и я не могу сопоставить сервлет.
Поскольку Netbeans 7.3 не поставляет файл конфигурации, я создал его самостоятельно, щелкнув папку web-inf> новый> файл 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.
EDIT Проблема заключалась в том, что я должен использовать правильный путь src/java для хранения моих классов .java вместо обычной папки (по этой причине я не мог видеть пакеты). Теперь я это исправил. В любом случае спасибо за ваше время!