gpt4 book ai didi

java - Jersey Restful 服务 - 无法连接到服务器

转载 作者:行者123 更新时间:2023-12-01 15:20:23 33 4
gpt4 key购买 nike

我正在学习使用 Jersey 实现 Restful 网络服务。我总是收到“POST

http://localhost:8080/rest/welcome/post 

返回了 404 Not Found 的响应状态” - 我的下面的代码有什么问题?服务器端的上下文根是其余的,我在类级别有@Pathwelcome,在方法级别有@pPathpost。

客户端

public class WelcomeRestJsonClient {

@Produces("application/json")
@Consumes("text/plain")
public void send() {
MyObject myObject = new MyObject();

ClientConfig clientConfig = new DefaultClientConfig();
clientConfig.getClasses().add(com.restclient.MyJsonProvider.class);
Client client = Client.create(clientConfig);
WebResource webResource = client.resource("http://localhost:8080/rest/welcome/post");
ClientResponse response = webResource.type(MediaType.APPLICATION_JSON).post(ClientResponse.class, myObject);
System.out.println("success");
}
}

服务器

@Path("/welcome")
public class WelcomeRestJson {

@POST
@Path("/post")
@Produces("text/plain")
@Consumes("application/json")

public String processPostData(MyObject myObject) {
System.out.println("Inside processPostData");
return "success";
}
}

我遇到这个问题是因为 JsonProvider 配置不正确吗?在客户端,我使用 MyJsonProvider 扩展 JacksonJaxbJsonProvider 将 MyObject 转换为 Json。我在服务器端的代码只接受 MyObject。我是否也需要一些代码来连接服务器端的 Json 提供程序?

这是我的 web.xml

<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.rest</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>

我可以访问其余的index.html。我在日志文件中看到以下内容。信息:找到根资源类:类 com.rest.WelcomeRestJson我删除了路径中的“/”。还是同样的404错误。请帮忙。

最佳答案

将 Jersey Servlet 添加到 web.xml 后,不带参数的 get 开始工作。但发帖仍然失败。将以下 init 参数添加到 Jersey Servlet 并将 Jersey Servlet 映射从 /rest/* 替换为 /* 解决了该问题。

<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>

关于java - Jersey Restful 服务 - 无法连接到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11010157/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com