2010-07-08 13 views
5

उपभोग करता है मैं जर्सी रेस्ट सेवा में एक पोस्ट बनाना चाहता हूं। ऐसा करने का मानक तरीका क्या है?जर्सी एक्सएमएल पोस्ट

@POST 
@Consumes({"application/xml", "application/json"}) 
public Response create(@Context UriInfo uriInfo, Customer entity) { 
    entityManager.persist(entity); 
    entityManager.flush(); 

    UriBuilder uriBuilder = uriBuiler.path(String.valueOf(entity.getId())); 
    return Response.created(uriBuilder.build()).build(); 
} 
+0

हम्म। क्या आप किसी मौजूदा सेवा में क्लाइंट पोस्ट बनाना चाहते हैं या जर्सी रीस्टफुल सेवा लागू करना चाहते हैं? –

उत्तर

4

नीचे की पोस्ट कार्रवाई का एक उदाहरण है।

@XmlRootElement (name = "Employee") 
public class Employee { 
    String employeeName; 

    @XmlElement 
    public String getEmployeeName() { 
     return employeeName; 
    } 

    public void setEmployeeName(String employeeName) { 
     this.employeeName = employeeName; 
    } 
} 

@XmlRootElement बताता है कि यह xml में मुख्य टैग होगा। इस मामले में आप मुख्य टैग के लिए भी एक नाम निर्दिष्ट कर सकते हैं।

@XmlElement बताता है कि इस रूट टैग के अंदर उप टैग होगा

कहो, नमूना एक्सएमएल कि पोस्ट अनुरोध कुछ ऐसी दिखाई देगी में शरीर के एक भाग के रूप में आ जाएगा

<?xml version="1.0" encoding="UTF-8"?> 
<Employee> 
<employeeName>Jack</employeeName> 
</Employee> 

इस तरह के एक एक्सएमएल को स्वीकार करने के लिए एक webservice लिखते समय हम निम्नलिखित विधि लिख सकते हैं।

@POST 
@Path("/post") 
@Consumes(MediaType.APPLICATION_XML) 
@Produces(MediaType.APPLICATION_XML) 
public Response getEmployee(Employee employee) { 
    employee.setEmployeeName(employee.getEmployeeName() + " Welcome"); 
    return Response.status(Status.OK).entity(employee).build(); 
} 

इस सेवा को कॉल करने पर, आपको प्रतिक्रिया के हिस्से के रूप में निम्न XML मिल जाएगा।

<Employee> 
<employeeName> Jack Welcome </employeeName> 
</Employee> 

@Xml का उपयोग कर ... एनोटेशन, यह unmarshal और अनुरोध और प्रतिक्रिया वस्तुओं मार्शल करने के लिए बहुत आसान हो जाता है।

इसी प्रकार के दृष्टिकोण, आप के हिस्से के रूप में एक आउटपुट के रूप में एक xml प्राप्त कर सकते हैं बस MediaType.APPLICATION_JSON उपयोग करने के बजाय APPLICATION_XML

की तो इनपुट के रूप में एक xml के लिए द्वारा JSON इनपुट के साथ-साथ JSON उत्पादन के लिए ले जाया जा सकता http प्रतिक्रिया। उम्मीद है कि यह मदद करता है।

6

मान लीजिए आप एक जावा सेम कहना एक कर्मचारी की फलियों के रूप में इस तरह के होते हैं:

@Post 
@Consumes(MediaType.Application_xml) 
public Response method(??){} 
संबंधित मुद्दे