1
resposta

Problemas ao criar o metodo teste de adicionar produtos com jax-rs

Olá amigos, estou tentando criar um método de teste para um metodo post para adicionar uma entidade chamada produto porem estou tomando um erro dizendo que nao foi possivel mapear minha classe product, sera que conseguem me ajudar a a fazer a requisicao soap via WebTarget?

Seguem codigo fonte:

Minha entidade

@Entity
@XmlRootElement(name="product")
@XmlAccessorType(XmlAccessType.FIELD)
public class Product {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private Double price;

    @XmlElement(name="product", type=Product.class)
    @ManyToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE })
    private Product parent;

    @XmlElement(name="image", type=Image.class)
    @OneToMany(fetch = FetchType.EAGER, mappedBy="product", cascade = CascadeType.ALL)
    private List<Image> images = new ArrayList<Image>();

    public Product() {
        this.name = "";
        this.price = 0.0;
    }

    public Double getPrice() {
        return price;
    }

    public void setDouble(Double price) {
        this.price = price;
    }

    public Product getParent() {
        return parent;
    }

    public void setParent(Product parent) {
        this.parent = parent;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<Image> getImages(){
        return images;
    }

    public void setImages(List<Image> images){
        this.images = images;
    }

}

Meu metodo de adicionar

public Response addProduct(String productString){

        try {
            Product product = (Product) new XStream().fromXML(productString);
            product = new ProductDAO().addProduct(product);
            URI uri = URI.create("/product/" + product.getId());
            return Response.created(uri).build();
        } catch (Exception e) {
            e.printStackTrace();
            return Response.serverError().build();
        }
    }
    @Test
    public void addProduct(){

        Product product = new Product();
        product.setName("test1");

        WebTarget target = getTarget();
        Response resp = target.path("/products/add").request().post(Entity.xml(product));
        Assert.assertEquals(200, resp.getStatus());



    }

Desde já obrigada :)

1 resposta

Oi Tatiane, precisamos saber o erro que é disparado no console do servidor para conseguirmos te ajudar.