Вызов веб-сервисов из вашего кода JSF - PullRequest
5 голосов
/ 17 мая 2010

Допустим, у вас есть уровень представления в JSF и что доступ к вашему бизнес-уровню осуществляется с помощью веб-сервисов. Как бы вы назвали свои веб-сервисы от JSF?

Я подумывал о том, чтобы мои бэк-бины вызывали веб-службы, но я просто мог использовать Ajax с JSF для подключения к веб-службам. Что бы вы выбрали и почему? Любой другой выбор, который вы могли бы порекомендовать?

РЕДАКТИРОВАТЬ: Я использую Spring на бизнес-уровне, возможно, эта информация может помочь с предложениями.

Спасибо.

Ответы [ 3 ]

10 голосов
/ 17 мая 2010

Я бы обернул вызов веб-службы в класс обслуживания, доступ к которому осуществляется через управляемый компонент. Таким образом, интерфейс не будет знать, как именно данные поступают на него - через веб-сервисы или с помощью любых других средств.

3 голосов
/ 18 мая 2010

Допустим, у вас есть уровень представления в JSF и что доступ к вашему бизнес-уровню осуществляется с помощью веб-служб. Как бы вы назвали свои веб-сервисы от JSF?

«Классическим» подходом будет внедрение класса фабрики прокси JAX-WS (сгенерированного из WSDL) в ManagedBean:

public class ItemController {
    @WebServiceRef(wsdlLocation = "http://localhost:8080/CatalogService/Catalog?wsdl")
    private CatalogService service;

    public DataModel getItems() {
        if (model==null  || index != firstItem){
            model=getNextItems();
        }
        return this.model;
    }
    public DataModel getNextItems() {
        Catalog port = service.getCatalogPort();
        model = new ListDataModel(port.getItems( firstItem,batchSize));
        return model;
    }
}

Образец взят из Образца приложения с использованием JAX-WS, JSF, EJB 3.0 и Java .

2 голосов
/ 18 мая 2010

Я бы реализовал EJB и выставил их как веб-сервис (для независимого от языка удаленного доступа) внутри приложения. Я бы получил доступ к EJB через поиск и прямой вызов их (для повышения производительности). К сожалению, вы не сказали, какую платформу вы используете, поэтому я не уверен, будут ли мои предложения выполнимыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...