Недавно я обновился до Netbeans 7.3, и я не совсем понимаю его конфигурацию и интерфейс. Например, как только я использовал исходные пакеты с java-классами, теперь я не могу их видеть только на панели «Файл». У меня есть пакет под названием batchUtility, содержащий HTTP-сервлет под названием batchQueryServlet.Настройка сервлета Java HTTP в Netbeans 7.3
Я должен опубликовать JSON для batchQueryServlet через функцию jQuery.ajax(), и я не могу отобразить сервлет.
С Netbeans 7.3 не поставляется конфигурационный файл, я создал один за себя, нажав на веб-инф папки> новый> файл 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: Я использую версию 7.0.34 Tomcat.
EDIT Проблема была в том, что я должен использовать правильный путь src/java для хранения моих .java-классов вместо простой папки (по этой причине я не мог видеть пакеты). Теперь я исправил это. В любом случае, спасибо за ваше время!
О, вы правы. Тем не менее, это не сработает. Однако, я думаю, я понял, в чем проблема, я должен установить контекст. Когда я отправляю сообщение, я отправляю сообщение в http: // localhost: 8084/batchQueryServlet', но я хочу, чтобы он был http: // localhost: 8084/projectName/batchQueryServlet'. У меня есть файл context.xml, ' Xml version =" 1.0 "encoding =" UTF-8 "?> <Контекст antiJARLocking =" true "path ="/projectname "/>' и думал, что он может работать, но похоже, этого не произойдет. Я попытался добавить контекстный путь, но он по-прежнему относится к http: // localhost: 8084/batchQueryServlet:/ –
Вы правы в контекстной части. Проверить обновление. –
Спасибо, теперь это работает. Проблема в том, что я все еще запускаюсь в исключении ClassNotFound, так как он не находит batchQueryServlet. У меня есть папка batchUtility в папке/app_name /, но я понял, что классы не могут разрешать классы в одной папке, я думаю, у меня есть некоторые проблемы с компиляцией. –