小编nil*_*esh的帖子

使用Jersey客户端的PATCH请求

我想执行我们的服务器支持的PATCH请求,以便使用Jersey客户端进行测试.我的代码如下,但我得到com.sun.jersey.api.client.ClientHandlerException: java.net.ProtocolException: HTTP method PATCH doesn't support output例外.有人能让我知道下面的代码有什么问题吗?

String complete_url = "http://localhost:8080/api/request";
String request = "[{\"op\":\"add\", \"path\":\"/name\", \"value\":\"Hello\"}]";
DefaultClientConfig config = new DefaultClientConfig();
    config.getProperties().put(URLConnectionClientHandler.PROPERTY_HTTP_URL_CONNECTION_SET_METHOD_WORKAROUND, true);
Client client = Client.create(config);
WebResource resource = client.resource(complete_url);
ClientResponse response = resource.header("Authorization", "Basic xyzabCDef")
 .type(new MediaType("application", "json-patch+json"))
 .method("PATCH", ClientResponse.class, request);
Run Code Online (Sandbox Code Playgroud)

这是完整的例外,

com.sun.jersey.api.client.ClientHandlerException: java.net.ProtocolException: HTTP method PATCH doesn't support output
    at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:155)
    at com.sun.jersey.api.client.Client.handle(Client.java:652)
    at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
    at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
    at com.sun.jersey.api.client.WebResource$Builder.method(WebResource.java:634)
    at com.acceptance.common.PatchTest.patch(PatchTest.java:42)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
    at …
Run Code Online (Sandbox Code Playgroud)

java jersey jersey-client

17
推荐指数
3
解决办法
2万
查看次数

使用RestTemplate反序列化嵌套对象

我正在使用RestTemplate并解决对象的反序列化问题.这就是我在做的事情.JSON响应看起来像,

{
"response": {
"Time": "Wed 2013.01.23 at 03:35:25 PM UTC",
"Total_Input_Records": 5,
},-
"message": "Succeeded",
"code": "200"
}
Run Code Online (Sandbox Code Playgroud)

使用jsonschema2pojo将此Json有效负载转换为POJO

public class MyClass {
    @JsonProperty("response")
    private Response response;
    @JsonProperty("message")
    private Object message;
    @JsonProperty("code")
    private Object code;
    private Map<String, Object> additionalProperties = new HashMap<String, Object>();
    //bunch of getters and setters here
}
public class Response {
    @JsonProperty("Time")
    private Date Time;
    @JsonProperty("Total_Input_Records")
    private Object Total_Input_Records;
    private Map<String, Object> additionalProperties = new HashMap<String, Object>();
//bunch of getters and setters here
} …
Run Code Online (Sandbox Code Playgroud)

java spring web-services jackson resttemplate

7
推荐指数
1
解决办法
7998
查看次数

如何在Java中合并两个XML

我试图在Java中合并两个xmls.我正在使用STaX API来编写这些XML.我在互联网上搜索了很多关于如何合并xmls的内容,但似乎没有像C#那样直截了当.使用StAX在Java中有没有直接的方法?可能xslt不是正确的解决方案,因为文件大小可能很大.

File1.xml

<TestCaseBlock>
    <TestCase TestCaseID="1">
        <Step ExecutionTime="2011-03-29 12:08:31 EST">
            <Status>Passed</Status>
            <Description>foo</Description>
            <Expected>foo should pass</Expected>
            <Actual>foo passed</Actual>
        </Step>
       </TestCase>
</TestCaseBlock> 
Run Code Online (Sandbox Code Playgroud)

File2.xml

<TestCaseBlock>
    <TestCase TestCaseID="2">
        <Step ExecutionTime="2011-03-29 12:08:32 EST">
            <Status>Failed</Status>
            <Description>test something</Description>
            <Expected>something expected</Expected>
            <Actual>not as expected</Actual>
        </Step>
    </TestCase>
</TestCaseBlock>
Run Code Online (Sandbox Code Playgroud)

Merged.xml

<TestCaseBlock>
<TestCase TestCaseID="1">
    <Step ExecutionTime="2011-03-29 12:08:33 EST">
        <Status>Passed</Status>
        <Description>foo</Description>
        <Expected>foo should pass</Expected>
        <Actual>foo passed</Actual>
    </Step>
</TestCase>
<TestCase TestCaseID="2">
    <Step ExecutionTime="2011-03-29 12:08:34 EST">
        <Status>Failed</Status>
        <Description>test something</Description>
        <Expected>something expected</Expected>
        <Actual>not as expected</Actual>
    </Step>
</TestCase>
</TestCaseBlock>
Run Code Online (Sandbox Code Playgroud)

java xml merge stax

6
推荐指数
1
解决办法
4383
查看次数

如何有条件地调用spring验证器

我有一个如下的模型.现有代码已经对各个属性进行了验证.现在我有一个要求,忽视billing_country和地址的现有验证,如果buyer.methodfoo.我以为我可以在buyer级别上有一个自定义验证器,检查方法并仅在调用时调用验证buyer.method!=foo.这是一种有效的方法吗?还有更好的选择吗?

"buyer": {
    "method": "foo",
    "instruments": [
      {
        "card": {
          "type": "MASTERCARD",
          "number": "234234234234234",
          "expire_month": "12",
          "expire_year": "2017",
          "billing_country" : "US"
          "Address" : {
             "line1": "summer st",
             "city": "Boston"
             "country": "US"
           }
        }
      }
    ]
}
Run Code Online (Sandbox Code Playgroud)

java validation spring

5
推荐指数
1
解决办法
2960
查看次数