Я разработчик на C #, который создал очень простой REST API только для того, чтобы мне сказали, что мне нужно собрать его в Java ..
Итак, я сказал, что хорошо, но я столкнулся с некоторыми проблемами.
У меня есть папка Java Resources
с папкой src
, внутри которой у меня есть пакет controllers
и пакет models
вместе с пакетом calulcatorFunctions
Вот мой CalculatorController.java
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
//import models.ResponseModel;
import models.RequestModel;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.*;
@Path("/ShippingCalculator")
public class CalculatorController {
@POST
@Produces(MediaType.APPLICATION_JSON) // JSON
public String InitializeCalculator(RequestModel JsonRequest) {
ObjectMapper mapper = new ObjectMapper();
String jsonInString = null;
try
{
jsonInString = mapper.writeValueAsString(JsonRequest);
}
catch (JsonProcessingException e)
{
e.printStackTrace();
}
return jsonInString;
Как вы можете видеть, все, что я сейчас пытаюсь сделать, это вернуть тело POST (json) обратно в виде строки json. в конце концов, я сгенерирую ответ, но ребенок пока что делает шаги.
Проблема, с которой я сталкиваюсь, заключается в том, что когда мое приложение работает на сервере, я могу видеть свой index.html по маршруту по умолчанию (он просто говорит «Привет»), однако, когда я пытаюсь установить точку останова на моем методе контроллера и вызвать путь Я получаю ошибку, указанную в заголовке в своем веб-браузере, и мой метод никогда не вводится ..
Вот мой веб-файл xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>ShippingCalculator</display-name>
<servlet>
<servlet-name>ShippingCalculator</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>CalculatorController</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ShippingCalculator</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
</web-app>