Vous trouverez sur mon blog des infos sur différents sujets techniques. Ils proviennent de mes expériences chez BEA, Versata ... et actuellement ORACLE
mercredi 28 avril 2010
SOA Suite PS2 - disponible
Soa Suite PS2 vient de sortir avec notamment des ajouts importants:
- BPMN 2.0 (execution de vos processus)
- BPEL 2.0
- des adapters en plus
- utilisation du cache Coherence dans OSB ....
c'est disponible sur le site: edelivery
Tout savoir sur Oracle Soa Suite
C'est en anglais ;)
pour y accèder rendez-vous : ICI
jeudi 22 avril 2010
SOA Suite PS2 - SCA - Ejb Adapter

Avant tout, il faut disposer d'un EJB (session ou entity) sur votre serveur j2ee local ou distant.
Récupérer le fichier jar utilisé pour le déploiement.
Créer un project SOA comportant par exemple un processus BPEL.

Copier le jar de votre EJB dans le répertoire de votre projet, exemple:
D:\dev_hugu\11\Application2EJBPS2\Project3\SCA-INF\lib
faites un ajout dans votre projet Jdev au niveau des librairies pour utiliser le jar de l'EJB:

Ajouter au composite un service dit 'ejb adapter' et compléteé-le ainsi:

Compléter ensuite le processus BPEL (ajouter l'invoke vers votre service EJB, puis initialiser les varibales input & output) et déployer pour avoir dans Enterprise Manager (http://monserveur:port/em)

PS: pour utiliser un EJB distant ou sur un autre serveur que Weblogic, il suffit de rajouter les propriétées suivantes dans votre composite.xml sur la définition du lien avec l'ejb :
Voici les propriétés de la documentation:
disponible sur ce lien: ICIil faudra ajouter également une map au niveau sécurité, le détail est ici
J'ai testé personnellement les 2 type de propriétés (ci-dessus & ci-dessous):

Lors de l' éxecution on a alors dans Enterprise Manager:
PS: Pour que tout foncitonne bien entre vos domaines, il est important de configurer la cross certification des domaines weblogic en mode 'compatibility'
jeudi 15 avril 2010
mardi 13 avril 2010
Soa 11G PS1 - activer le composant Spring


Rechercher ${SPRING_COMPONENT_NAME_L} et retirer les commentaires xml autour.
mercredi 7 avril 2010
Management Pack pour Weblogic

mercredi 31 mars 2010
Appeler un composite SCA en java
Avant tout il faut créer un projet SOA comprenant un composant Bpel (par exemple) qui fait un "hello world" en synchrone ou en asynchrone ...
Ensuite dans le composite il suffit de rajouter une interface "Direct Binding Service"

Nous avons donc ci-dessus un composite offrant une interface Web Service et une interface type RMI.
Oracle SOA suite propose nativement l'ensemble des API java afin de déclencher un composite SCA en RMI.
Pour cela il suffit de créer une connexion RMI via l'api "Locator" décrite dans ce code ci-dessous:
public class ClassTestRmi {
public ClassTestRmi() {
super();
Hashtable jndiProps = new Hashtable();
jndiProps.put(Context.PROVIDER_URL, "t3://10.0.0.1:7001/soa-infra");
jndiProps.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
jndiProps.put(Context.SECURITY_PRINCIPAL, "weblogic");
jndiProps.put(Context.SECURITY_CREDENTIALS, "welcome1");
jndiProps.put("dedicated.connection", "true");
Locator locator = null;
try {
// connect to the soa server
locator=LocatorFactory.createLocator(jndiProps);
System.out.println("Got locator : "+ locator.toString());
// find composite default domain, Helloworld Composite, version 1.0
CompositeDN compositedn = new CompositeDN("default", "Project1RMI", "1.0");
// call the direct binding of the Helloworld composite - spécifier le nom de l'interface de direct binding
DirectConnection conn = locator.createDirectConnection(compositedn,"Service1RMI");
String
inputPayload =
"
VOTRE XML d'appel du composite (sans les balise SOAP)
"
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = docBuilderFactory.newDocumentBuilder();
Document doc = builder.parse(new InputSource(new StringReader(inputPayload)));
Element root = doc.getDocumentElement();
//
//
//
Map
// have to use payload see BPELProcess1RequestMessage
partData.put("payload", root);
Payload
//Messages are created using the MessageFactory
Message
request.setPayload(payload);
//
//
//
//
//
//
// this is a request-reply service so we need to use conn.request else use conn.post
// need to provide operation name so we need to use process
Message
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
transformer.setOutputProperty("indent", "yes");
StringWriter sw = new StringWriter();
StreamResult result = new StreamResult(sw);
//
//
//
// need to use payload again
DOMSource source = new DOMSource((Node)response.getPayload().getData().get("payload"));
transformer.transform(source, result);
System.out.println("Result\n"+sw.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
Je vous propose en attachement dans ce zip mon projet SOA composite, avec le projet Jdev d'appel en java : ICI
ps: Il est important d'importer les jar nécessaires aux api java. Voici la liste:

