Я использую следующие технологии: Glassfish, Джерси
Я получил следующую структуру проекта в IntelliJ:
beat_api
->.idea
->lib
->out
->src
->ApplicationController.java
->Beat.java
->web
->WEB-INF
web.xml
->index.jsp (want to convert that to HTML though, no idea how .jsp works)
У меня есть следующие вопросы:
- Правильна ли моя структура? Где я могу разместить файлы .html / .css для подключения
в мой REST API? Как только основная разметка закончена, я хочу добавить Bootstrap, чтобы она выглядела красиво.
- Как мне настроить web.xml для структуры моего проекта? Я не понимаю, что бы я ни пытался, я не смогу отобразить index.jsp из структуры моего проекта, перейдя на localhost: 8080 / beat_api /
- Я хочу иметь возможность создавать "Beat" и искать
"Удар", предпочтительно в файле JSON или XML (с использованием SAX-анализатора). Как я могу создать экземпляр Beat в моем ресурсе Beat.java? Всякий раз, когда я помещаю туда конструктор, я получаю следующее сообщение об ошибке: «java.lang.NoSuchMethodException: не удается найти подходящий конструктор в классе Beat».
Beat.java
import javax.ws.rs.*;
// The Java class will be hosted at the URI path "/beats"
@Path("/beats")
public class Beat {
// The Java method will process HTTP GET requests
// The Java method will produce content identified by the MIME Media type "text/plain"
@GET
@Produces("text/plain")
@Path("/show")
public String retrieveBeat() {
return "hello";
}
// The Java method will process HTTP GET requests
// The Java method will produce content identified by the MIME Media type "text/plain"
@POST
@Consumes("text/plain")
@Path("create/{beatname}/{beatbpm}/{beatkey}")
public void createBeat(@PathParam("beatname") String beatname,
@PathParam("beatbpm") int beatbpm,
@PathParam("beatkey") String beatkey) {
}
}
ApplicationController.java
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
import java.util.HashSet;
import java.util.Set;
//Defines the base URI for all resource URIs.
@ApplicationPath("/")
//The java class declares root resource and provider classes
public class ApplicationController extends Application{
//The method returns a non-empty collection with classes,
// that must be included in the published JAX-RS application
@Override
public Set<Class<?>> getClasses() {
HashSet h = new HashSet<Class<?>>();
h.add( Beat.class );
return h;
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
</web-app>