Я хочу создать веб-сервис в Java с использованием Netbeans 7. У меня есть две сущности Продукт и Категория , аннотированные аннотациями JAXB.Я создал EJB-компоненты с использованием этих классов сущностей и веб-службы productservice с использованием этих EJB-компонентов.Например, метод в классе веб-сервиса
@WebMethod(operationName = "find")
public Product find(@WebParam(name = "id") Long id) {
Product p = ejbRef.find(id);
Category c = ejbRef2.find(p.getCategoryId());
return p;
}
Этот метод возвращает Product, маршалированный в XML.Одним из элементов в XML является categoryId , который ссылается на категорию, к которой он принадлежит.Я хочу сгенерировать XML с cat_id, замененным маршалированной формой объектов Category.Как я могу это сделать?
Ответ SOAP для продукта выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:findResponse xmlns:ns2="http://services/">
<return>
<categoryId>1</categoryId>
<description>Great for reducing mouse populations</description>
<id>1</id>
<imageurl>/images/cat1.gif</imageurl>
<name>Hairy Cat</name>
</return>
</ns2:findResponse>
</S:Body>
Ответ SOAP для категории выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:findResponse xmlns:ns2="http://services/">
<return>
<description>Loving and finicky friends</description>
<id>1</id>
<imageurl>/images/cats_icon.gif</imageurl>
<name>Cats</name>
</return>
</ns2:findResponse>
</S:Body>
</S:Envelope>