[英]client passing json to server in webservice jersey(without maven)
我正在嘗試從客戶端程序(作為Web應用程序創建的WebService)將json傳遞到我的Web服務。客戶端程序是用核心Java編寫的。基於http://examples.javacodegeeks.com/enterprise-java/rest/jersey/ json-example-with-jersey-jackson /教程我編寫了我的客戶端程序。我需要知道如何運行我的程序。(使用JERSEY NOT MAVEN)。在沒有客戶端的時候,我對json進行了硬編碼並獲得了很好的響應。在添加客戶端的情況下,客戶端程序包含main()方法,我很困惑,需要了解如何運行它。我將放置代碼以進一步理解。任何人都可以提供有關我的債權的文檔嗎? ...
Postjson.java
public class Postjson {
public static void main(String[] args) {
System.out.println("inside postjson classfor posting request");
try {
// Student st = new Student("Adriana", "Barrer", 12, 9);
Clientdetails cld=new Clientdetails("request","AuthenticationType","test@gmail.com",12345,"null","null");
// String JSON_DATA =
// "{"
// + " \"SnapshotRequest\": ["
// + " {"
// + " \"AuthenticationType\": \"email\","
// + " \"EmailAddress\": \"test@gmail.com\","
// + " \"Password\" : \"12345\","
// + " \"PracticeID\" : \"null\","
// + " \"DeviceID\" : \"null\""
// + " } + ]"
// + "}";
// Clientdetails cld=new Clientdetails();
// cld.setUsername("test@gmail.com");
// cld.setPassword("password");
// cld.setDevice_id("12345");
// Student st = new Student("Adriana", "Barrer", 12, 9);
ClientConfig clientConfig = new DefaultClientConfig();
clientConfig.getFeatures().put(
JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE);
Client client = Client.create(clientConfig);
WebResource webResource = client
.resource("http://localhost:9090/Snapshothealthapp1/rest/customers/get");
System.out.println("after url step");
ClientResponse response = webResource.accept("application/json")
.type("application/json").post(ClientResponse.class, cld);
System.out.println("after passing json object");
if (response.getStatus() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ response.getStatus());
}
String output = response.getEntity(String.class);
System.out.println("Server response .... \n");
System.out.println(output);
} catch (Exception e) {
e.printStackTrace();
}
}
身份驗證.java
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Request;
import javax.ws.rs.core.Response;
import com.snapshothealthapp1.client.Clientdetails;
import com.snapshothealthapp1.model.AuthenticationModel;
@Path("/customers")
public class Authentication {
@POST
@Path("/get")
@Consumes(MediaType.APPLICATION_JSON)
public Response getRequestUrl(Clientdetails s) {
//TODO:Create a JSON(recieved from client request)
// JSONObject jsonClient = new JSONObject();
System.out.println("inside Authentication");
String output = s.toString();
return Response.status(201).entity(output).build();
}
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"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<servlet>
<servlet-name>jersey-servlet</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.snapshothealthapp1.controller</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-servlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
如何使用主方法和另一資源方法來運行一個項目。如果不可能,請告訴輔助方法來執行它? 我保持服務器運行,並運行main方法(客戶端代碼)。但這給了我錯誤。 錯誤發布在下面
com.sun.jersey.api.client.ClientHandlerException: com.sun.jersey.api.client.ClientHandlerException: A message body writer for Java type, class com.snapshothealthapp1.client.Clientdetails, and MIME media type, application/json, was not found
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:149)
at com.sun.jersey.api.client.Client.handle(Client.java:648)
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:670)
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:563)
at com.snapshothealthapp1.client.Postjson.main(Postjson.java:40)
Caused by: com.sun.jersey.api.client.ClientHandlerException: A message body writer for Java type, class com.snapshothealthapp1.client.Clientdetails, and MIME media type, application/json, was not found
at com.sun.jersey.api.client.RequestWriter.writeRequestEntity(RequestWriter.java:288)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:204)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:147)
... 5 more
當我剛進入這個領域時,我感到困惑的是這種方法是否正確。任何人都可以幫助我。任何幫助將是非常可貴的....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.