0

JERSEY を使用して REST Web サービスを作成しました。PFB 私の終点。

エンドポイント クラス:

package org.madbit.rest;

import java.util.List;

import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.madbit.rest.ws.SumRequest;
import org.madbit.rest.ws.SumResponse;

@Path("/services")
public class SumEndpoint {

    @POST
    @Path("sum")
    @Produces(MediaType.APPLICATION_XML)
    @Consumes(MediaType.APPLICATION_XML)
    public SumResponse getSum(SumRequest request) {
        SumResponse response = new SumResponse();
        List<Integer> elements = request.getElement();

        int sum = 0;
        for (Integer element: elements)
            sum += element;

        response.setSum(sum);
        return response;
    }
}

XSD:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.madbit.org/SumService" xmlns:tns="http://www.madbit.org/SumService" elementFormDefault="qualified">

    <xs:element name="SumRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="element" type="xs:int" minOccurs="1" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="SumResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="sum" type="xs:int" minOccurs="1" maxOccurs="1"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

を使用して上記の xsd から POJO を生成しMaven JAXB pluginました。今私はPOJOを持っSumRequestています。SumResponse

Jersey client入力の下に渡して応答を取得するにはどうすればよいですか?

<?xml version="1.0" encoding="ISO-8859-1"?>
<SumRequest xmlns="http://www.madbit.org/SumService">
 <element>1</element>
 <element>4</element>
</SumRequest>

ありがとう!

4

1 に答える 1