Pour chaque service ESB, une ou plusieurs gateway sont définies.
Pour une gateway HTTP attachée a un provider JBR définissant un bus HTTP, il faut a chaque fois déclarer un nouveau port.
Ce qui peut etre problématique (ouvrir de multiple port HTTP, par service ESB)
La version 4.6 de Jboss ESB ne prend pas en charge un routage basé sur l'url (type JBossWS)
Ce sera peut être pris en charge dans la version 4.7
https://jira.jboss.org/jira/browse/JBESB-1557
En attendant, voici une implémentation d'un nouveau ListenerGateway, qui prend en charge un routage basé sur l'url passée, l'authentification http, etc :
http://www.jboss.org/community/wiki/HTTPGatewayListenerConfiguration
Affichage des articles dont le libellé est jboss esb. Afficher tous les articles
Affichage des articles dont le libellé est jboss esb. Afficher tous les articles
mardi, octobre 06, 2009
lundi, septembre 14, 2009
JBoss ESB : archives, services, messages
Archive .esb
Fichier zip contenant tout ce qu'on retrouverait dans un fichier ear avec en sus
META-INF\jboss-esb.xml
META-INF\deployment.xml
fichier.war (optionnel)
etc...
Fichier jboss-esb.xml
Fichier descriptif de l'application esb. On y retrouve
* des BUS instanciés depuis des providers (HTTP, socket, JMS, ...)
* des services
Services
Un service de JBoss ESB défini
* des listeners gateway
* des listeners ESB-aware
* une sequence d'action
Les messages et listeners
- listeners qui lisent des messages au format ESB (dit listener ESB-Aware)
- listener dit "gateway" qui sont en charge de transformer le message recu de l'extérieur de l'ESB en message de type ESB.
--> Bus GATEWAY (ou EPR End Point Reference) --> LISTENER GATEWAY --> Bus ESB-Aware --> LISTENER ESB-Aware --> Service
Structure d'un message ESB (org.jboss.soa.esb.message)
Fichier zip contenant tout ce qu'on retrouverait dans un fichier ear avec en sus
META-INF\jboss-esb.xml
META-INF\deployment.xml
fichier.war (optionnel)
etc...
Fichier jboss-esb.xml
Fichier descriptif de l'application esb. On y retrouve
* des BUS instanciés depuis des providers (HTTP, socket, JMS, ...)
* des services
Services
Un service de JBoss ESB défini
* des listeners gateway
* des listeners ESB-aware
* une sequence d'action
Les messages et listeners
- listeners qui lisent des messages au format ESB (dit listener ESB-Aware)
- listener dit "gateway" qui sont en charge de transformer le message recu de l'extérieur de l'ESB en message de type ESB.
--> Bus GATEWAY (ou EPR End Point Reference) --> LISTENER GATEWAY --> Bus ESB-Aware --> LISTENER ESB-Aware --> Service
Structure d'un message ESB (org.jboss.soa.esb.message)
- Header: the header information contains information such as the destination EPR, the sender EPR, and where the reply goes--general message-level functional information.
- Context: additional information that further explains the message; for example, transaction or security data, the identity of the ultimate receiver, or HTTP-cookie-like information.
- Body: the actual payload of the message.
- Fault: any error information associated with the message.
- Attachment: any attachments (additional files) associated with the message.
- Properties: any message specific properties (for example the jbossesb.message.id property is a unique value for each message.
<xs:complexType name="Envelope">
<xs:attribute ref="Header" use="required"/>
<xs:attribute ref="Context" use="required"/>
<xs:attribute ref="Body" use="required"/>
<xs:attribute ref="Attachment" use="optional"/>
<xs:attribute ref="Properties" use="optional"/>
<xs:attribute ref="Fault" use="optional"/>
Les actions de JBoss ESB
Un service définit une succession d'action.
<actions> <action name="ACTION1" class="fr.com.Action"> </action>
Voici une liste d'actions possible
<actions> <action name="ACTION1" class="fr.com.Action"> </action>
Voici une liste d'actions possible
WebServices
org.jboss.soa.esb.actions.soap.wise.SOAPClient
org.jboss.soa.esb.actions.soap.SOAPClient
Core Action
org.jboss.soa.esb.actions.SystemPrintln
Scripting
org.jboss.soa.esb.actions.scripting.GroovyActionProcessor
Business Process Management (jBPM)org.jboss.soa.esb.services.jbpm.actions.BpmProcessor
Routingorg.jboss.soa.esb.actions.ContentBasedRouterorg.jboss.soa.esb.actions.StaticRouterorg.jboss.soa.esb.actions.StaticWiretap
Jboss ws + jboss esb : WS embarqué dans un esb ET autodefini en EBWS
VALABLE POUR JBOSS ESB 4.5
Pour faire cohabiter des webservices
* embarqué dans un war (par exemple utilisé dans une action de JBOSS ESB via SOAPClient) lui même embarqué dans le fichier esb
* et ceux générés automatiquement avec EBWS (un webservice endpoint sur l'ESB est défini automatiquement quand on défini les contract sur <actions> d'un service ESB)
Il faut intégrer dans le web.xml en plus des webservices qu'on aura défini ceux qui seront générés automatiquement.
<servlet>
<servlet>
<servlet-name>MonWS</servlet-name>
<servlet-class>fr.com.MonWS</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MonWS</servlet-name>
<url-pattern>/MonWS</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>NOM-CATEGORIE_NOM-SERVICE</servlet-name>
<servlet-class>esb.ws.NOM-CATEGORIE.NOM-SERVICE.Implementation</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>NOM-CATEGORIE_NOM-SERVICE</servlet-name>
<url-pattern>/NOM-CATEGORIE/NOM-SERVICE</url-pattern>
</servlet-mapping>
</servlet>
<servlet-mapping><url-pattern></url-pattern>
</servlet-mapping>
Le problème vient du fait que la fonctionnalité EBWS génère son propre war qu'il embarque automatiquement dans le fichier ESB. On se retrouve avec deux war et deux fichiers web.xml. Celui qu'on aura défini masquant celui généré automatiquement.
Pour vérifier la publication de tous les webservices : http://localhost:8080/jbossws/services
Pour faire cohabiter des webservices
* embarqué dans un war (par exemple utilisé dans une action de JBOSS ESB via SOAPClient) lui même embarqué dans le fichier esb
* et ceux générés automatiquement avec EBWS (un webservice endpoint sur l'ESB est défini automatiquement quand on défini les contract sur <actions> d'un service ESB)
Il faut intégrer dans le web.xml en plus des webservices qu'on aura défini ceux qui seront générés automatiquement.
<servlet>
<servlet>
<servlet-name>MonWS</servlet-name>
<servlet-class>fr.com.MonWS</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MonWS</servlet-name>
<url-pattern>/MonWS</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>NOM-CATEGORIE_NOM-SERVICE</servlet-name>
<servlet-class>esb.ws.NOM-CATEGORIE.NOM-SERVICE.Implementation</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>NOM-CATEGORIE_NOM-SERVICE</servlet-name>
<url-pattern>/NOM-CATEGORIE/NOM-SERVICE</url-pattern>
</servlet-mapping>
</servlet>
<servlet-mapping><url-pattern></url-pattern>
</servlet-mapping>
Le problème vient du fait que la fonctionnalité EBWS génère son propre war qu'il embarque automatiquement dans le fichier ESB. On se retrouve avec deux war et deux fichiers web.xml. Celui qu'on aura défini masquant celui généré automatiquement.
Pour vérifier la publication de tous les webservices : http://localhost:8080/jbossws/services
Libellés :
jboss esb,
jboss ws,
soa,
webservice
Inscription à :
Articles (Atom)