我是一位C#开发人员,他构建了一个非常简单的REST api,只是被告知我现在需要在Java中进行构建。.
所以我说的很清楚,但是我遇到了一些问题。
我有一个Java Resources
文件夹和一个src
文件夹,里面有一个controllers
软件包,一个models
软件包以及一个calulcatorFunctions
软件包< / p>
这是我的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(它只是说“嗨”),但是当我尝试在控制器方法上设置断点并调用路径我在网络浏览器中收到标题中指出的错误,并且从未输入我的方法。
这是我的Web 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>