如何在java中从RESTful客户端向服务器传递JSON对象

如何在java中从RESTful客户端向服务器传递JSON对象,java,json,rest,Java,Json,Rest,我正在创建一个web应用程序。我想使用JavaSE应用程序执行管理操作。为此,我在SE项目中创建了一个RESTfulShoppingAdminClient。我需要从客户端向服务器传递一个JSON对象。我试过这个 public static void main(String[] args) throws JSONException { ShoppingAdminClient sac = new ShoppingAdminClient(); JSONObject jo = new

我正在创建一个web应用程序。我想使用JavaSE应用程序执行管理操作。为此,我在SE项目中创建了一个RESTful
ShoppingAdminClient
。我需要从客户端向服务器传递一个JSON对象。我试过这个

 public static void main(String[] args) throws JSONException {
    ShoppingAdminClient sac = new ShoppingAdminClient();
    JSONObject jo = new JSONObject();
    jo.put("itemName", "Itemms");
    sac.create_JSON(jo);

}
但我有以下例外

Exception in thread "main" com.sun.jersey.api.client.ClientHandlerException: com.sun.jersey.api.client.ClientHandlerException: A message body writer for Java type, class shoppingadmin.Item, 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 shoppingadmin.ShoppingAdminClient.create_JSON(ShoppingAdminClient.java:69)
at shoppingadmin.ShoppingAdmin.main(ShoppingAdmin.java:27)
    Caused by: com.sun.jersey.api.client.ClientHandlerException: A message body writer for Java type, class shoppingadmin.Item, 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)
... 6 more
Java Result: 1
如何将JSON类型的对象传递给服务器


提前谢谢

对于Jersey客户端,您可以创建Jersey实例将JSON发布到服务器。因此,为了以JSON格式发送,您可以使用,并且可以通过添加Jersey JSON JAR将其与Jersey绑定。您还需要添加Jersey客户端依赖项

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-json</artifactId>
        <version>1.17</version>
    </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-client</artifactId>
            <version>1.17</version>
        </dependency>
请注意,
type
方法中的
MediaType.APPLICATION_JSON
指定了数据格式。此处
包含要发送到服务器的数据。另外,不要忘记在
web.xml
中添加以下行,这样所有POJO类都将自动序列化为JSON

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

com.sun.jersey.api.json.POJOMappingFeature
真的

对于Jersey客户端,您可以创建Jersey实例将JSON发布到服务器。因此,为了以JSON格式发送,您可以使用,并且可以通过添加Jersey JSON JAR将其与Jersey绑定。您还需要添加Jersey客户端依赖项

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-json</artifactId>
        <version>1.17</version>
    </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-client</artifactId>
            <version>1.17</version>
        </dependency>
请注意,
type
方法中的
MediaType.APPLICATION_JSON
指定了数据格式。此处
包含要发送到服务器的数据。另外,不要忘记在
web.xml
中添加以下行,这样所有POJO类都将自动序列化为JSON

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

com.sun.jersey.api.json.POJOMappingFeature
真的

对于Jersey客户端,您可以创建Jersey实例将JSON发布到服务器。因此,为了以JSON格式发送,您可以使用,并且可以通过添加Jersey JSON JAR将其与Jersey绑定。您还需要添加Jersey客户端依赖项

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-json</artifactId>
        <version>1.17</version>
    </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-client</artifactId>
            <version>1.17</version>
        </dependency>
请注意,
type
方法中的
MediaType.APPLICATION_JSON
指定了数据格式。此处
包含要发送到服务器的数据。另外,不要忘记在
web.xml
中添加以下行,这样所有POJO类都将自动序列化为JSON

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

com.sun.jersey.api.json.POJOMappingFeature
真的

对于Jersey客户端,您可以创建Jersey实例将JSON发布到服务器。因此,为了以JSON格式发送,您可以使用,并且可以通过添加Jersey JSON JAR将其与Jersey绑定。您还需要添加Jersey客户端依赖项

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-json</artifactId>
        <version>1.17</version>
    </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-client</artifactId>
            <version>1.17</version>
        </dependency>
请注意,
type
方法中的
MediaType.APPLICATION_JSON
指定了数据格式。此处
包含要发送到服务器的数据。另外,不要忘记在
web.xml
中添加以下行,这样所有POJO类都将自动序列化为JSON

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

com.sun.jersey.api.json.POJOMappingFeature
真的


此链接可能有帮助此链接可能有帮助此链接可能有帮助此链接可能有帮助我在哪里设置依赖项?我的客户机应用程序是一个JavaSE应用程序。谢谢,这些是什么
MyItem
item
?如果使用Maven,只需将其添加到pom.xml中即可。否则,您可以手动下载JAR。
item
是要发送到服务器的数据。它可以是任何POJO类,例如,
MyItem item=newmyitem()
其中
MyItem
是为要发送的数据创建的类。它可以像示例中的映射一样简单
“itemName”->“Itemms”
@tonga您能解释一下
路径
参数应该有什么吗。是否存在差异b/w
baseURL和path
在哪里设置依赖项?我的客户机应用程序是一个JavaSE应用程序。谢谢,这些是什么
MyItem
item
?如果使用Maven,只需将其添加到pom.xml中即可。否则,您可以手动下载JAR。
item
是要发送到服务器的数据。它可以是任何POJO类,例如,
MyItem item=newmyitem()
其中
MyItem
是为要发送的数据创建的类。它可以像示例中的映射一样简单
“itemName”->“Itemms”
@tonga您能解释一下
路径
参数应该有什么吗。是否存在差异b/w
baseURL和path
在哪里设置依赖项?我的客户机应用程序是一个JavaSE应用程序。谢谢,这些是什么
MyItem
item
?如果使用Maven,只需将其添加到pom.xml中即可。否则,您可以手动下载JAR。
item
是要发送到服务器的数据。它可以是任何POJO类,例如,
MyItem item=newmyitem()
其中
MyItem
是为要发送的数据创建的类。它可以像示例中的映射一样简单
“itemName”->“Itemms”
@tonga您能解释一下
路径
参数应该有什么吗。是否存在差异b/w
baseURL和path
在哪里设置依赖项?我的客户机应用程序是一个JavaSE应用程序。谢谢,这些是什么
MyItem
item
?如果使用Maven,只需将其添加到pom.xml中即可。否则,您可以手动下载JAR。
item
是要发送到服务器的数据。它可以是任何POJO类,例如,
MyItem item=newmyitem()
其中
MyItem
是为要发送的数据创建的类。它可以像示例中的映射一样简单
“itemName”->“Itemms”
@tonga您能解释一下
路径
参数应该有什么吗。b/w
baseURL和路径是否存在差异