Я использую Netbeans и Glassfish. Недавно я создал новое веб-приложение Maven. Я добавил новый WebServlet, он отлично работал.Netbeans не может найти мой спокойный webservices
@WebServlet(name = "DbTest", urlPatterns = {"/DbTest"})
public class DbTest extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException {
response.setContentType("text/html;charset=UTF-8");
Session session = StartupBean.sessionFactory.openSession();
session.beginTransaction();
.....
Теперь я хочу добавить некоторые веб-службы RESTful. Поэтому я добавил еще один класс.
@Path("/yeahbuddy/")
public class YeahbuddyResource {
@GET
public String getAllYeahbuddies() {
return "WE GOT GOT";
}
}
Тогда я моюсь, встроенным, побежал сервер, и .... ничего. Я пытался ударять следующие ссылки:
http://localhost:8080/myapp/webresources/yeahbuddy/
http://localhost:8080/myapp/yeahbuddy/
http://localhost:8080/myapp/resources/yeahbuddy/
Все, что я когда-либо получаю 404. Тогда я подумала, что, должно быть, что-то пропустил и использовать мастер для добавления веб-службы RESTful из шаблона. Та же проблема.
Я чувствую, что есть какая-то конфигурация, которую мне не хватает, например, аннотации недостаточно, или аннотации REST борются с аннотациями WebServlet.
Мысли?
EDIT: Ответ добавлял следующий 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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>test</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<!-- Register resources and providers under com.vogella.jersey.first package. -->
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.myapp.resources</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
</web-app>
И начал работать по следующему адресу:
http://localhost:8080/myapp/api/yeahbuddy/
ли вы определить его в файле web.xml, как: <сервлет-класс> org.glassfish.jersey.servlet.ServletContainer servlet- класс>? –
@BrunoFranco - нет, проект не появился с web.xml, я добавил один и сейчас ищу примеры. – bulltorious