Bartosz Borowiec

Bartosz Borowiec Salesforce and Java
backend/integration
developer at Inde...

Temat: Web Service Broker

czy ktos mógłby mi podesłać linka gdzie jest jakis sensowny opis patternu webservice broker?
http://www.corej2eepatterns.com/Patterns2ndEd/WebServi... jest jak dla mnie troche enigmatyczny...Bartosz Michal Borowiec edytował(a) ten post dnia 27.11.08 o godzinie 11:40
Jan B.

Jan B. WebSphere
Connectivity
Community of
Practice, Central
and...

Temat: Web Service Broker

Bartosz Michal Borowiec:
czy ktos mógłby mi podesłać linka gdzie jest jakis sensowny opis patternu webservice broker?
http://www.corej2eepatterns.com/Patterns2ndEd/WebServi... jest jak dla mnie troche enigmatyczny...Bartosz Michal Borowiec edytował(a) ten post dnia 27.11.08 o godzinie 11:40

W książce - na google books są większe fragmenty [link]http://books.google.pl/books?id=1dx34EMVyi8C&pg=PA558&...[/link]
Bartosz Borowiec

Bartosz Borowiec Salesforce and Java
backend/integration
developer at Inde...

Temat: Web Service Broker

dokladnie tego szukalem
Borys Mądrawski

Borys Mądrawski Architekt/Developer
EAI/Java

Temat: Web Service Broker

Nie chce nic mówić, ale jak ogólny i poprawny by był ten wzorzec, to trochę traci on rację bytu, że względu na to, że JAX-RPC jest przestarzałą i toporną technologią rodem z J2EE, której nie powinno się używać (chyba, że nie można zmigrować projektu na Java 5).

Teraz stosuje się JAX-WS z JEE5 + JAXB z Java 5/6, gdzie wcale nie trzeba posługiwać się klasami pomocniczymi i tym samym wzorcami, aby to opisać: wystarczy po prostu zdefiniować klasy adnotowane JAXB i napisać prostą klasę beana EJB, adnotowaną "WebService" i "Stateless".

Klasy adnotowane JAXB mogą być generowane automatycznie z XML Schema i na odwrót. WSDL'a można łatwo uzyskać z sygnatury takiego serwisu w czasie kompilacji, albo po jego umieszczeniu na serwere w czasie uruchomienia (runtime).


import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.WebResult;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;

/**
* @author Borys Madrawski
*/
@Stateless()
@TransactionAttribute(TransactionAttributeType.SUPPORTS)
@WebService(portName=CoreName.PortName)
public class CoreWebService {
private final Logger logger = Logger.getLogger(CoreWebService.class.getName());
@EJB
ReceiveTeamQueueOrdersMediatorLocal receiveTeamQueueOrdersMediator;
@EJB
ReceiveOrderDetailsMediatorLocal receiveOrderDetailsMediator;
@EJB
ModifyOrderDetailsMediatorLocal modifyOrderDetailsMediator;
@EJB
AuthenticateMediatorLocal authenticateMediator;
@EJB
ReceiveOutdatedInfoMediatorLocal receiveOutdatedInfoMediator;
/**
* To jest Web Service!
*/
@WebMethod(operationName = CoreName.ReceiveTeamQueueOrders)
@WebResult(name = CoreName.OrdersResponse)
@TransactionAttribute(TransactionAttributeType.SUPPORTS)
public TeamQueueOrdersResponse receiveTeamQueueOrders(@WebParam(name = CoreName.OrdersRequest) TeamQueueOrdersRquest request) {
logger.entering(null, CoreName.ReceiveTeamQueueOrders, request);
//TODO
logger.exiting(null, CoreName.ReceiveTeamQueueOrders, response);
return response;
}
...
...
...
}


Klasy TeamQueueOrdersResponse i TeamQueueOrdersRquest są niczym transfer objekty, są POJO, ale adnotowanym przez adnotacje JAXB, tak że implementacja JAX-WS wie jak je serializować i deserializować realizując usługę zgodną z Web Services. W tym przypadku klasy te były generowane taskiem Maven2 ze zbioru plików (*.xsd) XML Schema.

Warto zauważyć, że po stronie klienta Web Services, używając Java 6 i nowszej nie trzeba używać żadnych dodatkowych bibliotek: JAXB 2.x jak i klient WS jest wbudowany w rt.jar (jedynie warto wygenetować sobie stub bibliotek klienckich do serwisu z pliku/URL'a do WSDL).

Standardowo JAX-WS ma jednak ograniczenie: nie wspiera wiadomości typu XML-RPC.Borys M. edytował(a) ten post dnia 07.12.09 o godzinie 12:45

Następna dyskusja:

Web Service Broker




Wyślij zaproszenie do