Java 通过网络推送JAX-B对象

Java 通过网络推送JAX-B对象,java,xml,rest,jaxb,jersey,Java,Xml,Rest,Jaxb,Jersey,我在描述RESTful Web服务器的文本中有一些接口描述。我还有JAX-B注释对象,我希望从该接口推送和接收这些对象 我不确定对这样一项任务已经实施了多少支持。附近有一些球衣的东西,但这仍然是最新的吗 我是否必须定义一个目标URL、打开一个流、序列化xml对象(可能首先将其转换为字符串),然后将其写入流 或者,是否有一种神奇的方法,只需要一个URL和JAX-B对象,或者如果我想放置、删除、发布或获取它?JAX-RS是您在本例中想要使用的,Jersey是参考实现。JAXB是JAX-RS的默认绑定

我在描述RESTful Web服务器的文本中有一些接口描述。我还有JAX-B注释对象,我希望从该接口推送和接收这些对象

我不确定对这样一项任务已经实施了多少支持。附近有一些球衣的东西,但这仍然是最新的吗

我是否必须定义一个目标URL、打开一个流、序列化xml对象(可能首先将其转换为字符串),然后将其写入流

或者,是否有一种神奇的方法,只需要一个URL和JAX-B对象,或者如果我想放置、删除、发布或获取它?

JAX-RS是您在本例中想要使用的,Jersey是参考实现。JAXB是JAX-RS的默认绑定层。下面是一个支持PUT、DELETE、POST和GET的RESTful服务示例:

以下是完整示例的链接:


回答得很好,比我快:
package org.example;

import java.util.List;

import javax.ejb.*;
import javax.persistence.*;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;

@Stateless
@LocalBean
@Path("/customers")
public class CustomerService {

    @PersistenceContext(unitName="CustomerService",
                        type=PersistenceContextType.TRANSACTION)
    EntityManager entityManager;

    @POST
    @Consumes(MediaType.APPLICATION_XML)
    public void create(Customer customer) {
        entityManager.persist(customer);
    }

    @GET
    @Produces(MediaType.APPLICATION_XML)
    @Path("{id}")
    public Customer read(@PathParam("id") long id) {
        return entityManager.find(Customer.class, id);
    }

    @PUT
    @Consumes(MediaType.APPLICATION_XML)
    public void update(Customer customer) {
        entityManager.merge(customer);
    }

    @DELETE
    @Path("{id}")
    public void delete(@PathParam("id") long id) {
        Customer customer = read(id);
        if(null != customer) {
            entityManager.remove(customer);
        }
    }

    @GET
    @Produces(MediaType.APPLICATION_XML)
    @Path("findCustomersByCity/{city}")
    public List<Customer> findCustomersByCity(@PathParam("city") String city) {
        Query query = entityManager.createNamedQuery("findCustomersByCity");
        query.setParameter("city", city);
        return query.getResultList();
    }

}