Ошибка HTTP 400 в веб-службе REST во время POST с FormParam, содержащей собственные объекты (например, enities)

Для оформления заказа в моем REST-сервисе я должен отправить список "статьи» от клиента к серверу. Эти объекты статьи имеют самодельный тип сущности. Я уже обнаружил, что отправка списка объектов STRING или INTEGER работает, отправка его через @FormParam.

Но как только я пытаюсь отправить список своих собственных объектов (даже только ОДНОГО объекта), я всегда получаюОшибка HTTP 400 "Плохой запрос ".

Я попытался точно такой же код, как показано ниже (только параметры form.add () и параметры метода сервера были изменены) и успешно постет строки, целые числа и списки строк. Это только создает проблемы при отправке собственных типов объектов.

Регистрация сказала мне, что метод сервера нет достиг. Процесс где-то сломан раньше.

Я также пытался получить запрос с помощью прокси (Apache JMeter). Здесь сказано, что параметрkunde содержит значениеentities.Kunde%40af8358, Таким образом, я предполагаю, что объект не сериализован полностью (или вообще). Но отправка такого объекта от сервера клиенту в ответе работает нормально - здесь XML-сериализация не проблема.

В чем может быть причина? Возможно, НЕ возможно отправить собственные типы через POST?

(PS: типKundeв моем примере сериализуем и аннотирован@XmlRootElement.)

Заранее спасибо за вашу помощь!

Jana

Заметка: Ям с использованием SAP Netweaver AS. Но до сих пор он вел себя как любая другая Java AS, поэтому я неНе думаю, что это будет причиной. Любая другая операция REST работает, даже POST без собственных сущностей.

прибавление: Ям с использованием библиотеки JERSEY.

Мой код на стороне сервера:

@Path("/test")
    @POST
    @Produces(MediaType.TEXT_XML)
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)    
    public String test(
        @FormParam("kunde") Kunde kunde) {    

        return "The name of the customer is: "
           +kunde.getVorname()+" "+kunde.getNachname();        
    }

Мой код на стороне клиента (метод в Session Bean):

public String  test() {

    Kunde kunde = new Kunde();
    kunde.setNachname("Müller");
    kunde.setVorname("Kurt");

    Form form = new Form();
    form.add("kunde", kunde);       

    return service
        .path("test")
        .type(MediaType.APPLICATION_FORM_URLENCODED)
        .accept(MediaType.TEXT_XML)
        .post(String.class, form);
}

гдеоказание услуг построен так:

com.sun.jersey.api.client.Client;
com.sun.jersey.api.client.WebResource;
com.sun.jersey.api.client.config.ClientConfig;
com.sun.jersey.api.client.config.DefaultClientConfig;

ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
service = client.resource(UriBuilder.fromUri("").build());

Ответы на вопрос(1)

Ваш ответ на вопрос