Après windows pour les nuls, voici PB pour les bons (ou presque).

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 28-02-2008 09:08:41

noel_lalaina  
Membre
Lieu: Antananarivo
Date d'inscription: 22-02-2008
Messages: 7
Pépites: 3,535
Banque: 0
Site web

Comment intégrer des EJBs qui se trouvent dans JBOSS dans PB

Bonjour,

J'ai développé des EJBs (accès aux données) qui sont déployés sur un serveur d'application EJB.

J'aimerais appeler ces EJB dans mon application PowerBuilder (c'est à dire créer des datawindows dont les sources de données sont les EJBs). Est ce que c'est possible ?

A+
-----------------------------------
Noel
Découvrir Madagascar

Hors ligne

 

#2 28-02-2008 09:15:14

noel_lalaina  
Membre
Lieu: Antananarivo
Date d'inscription: 22-02-2008
Messages: 7
Pépites: 3,535
Banque: 0
Site web

Re: Comment intégrer des EJBs qui se trouvent dans JBOSS dans PB

Désolé j'utilise PB11 et JBoss AS 4.0.5.GA

A+

--------------------------
Noël
Découvrir Madagascar

Hors ligne

 

#3 28-02-2008 09:46:58

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: Comment intégrer des EJBs qui se trouvent dans JBOSS dans PB

Le lien suivant pointe sur un vieille article qui présente plus la démarche inverse : comment déployer des EJB PB sur un JBoss.
Peut-être qu'en t'en inspirant tu pourras trouver une solution à ton problème (déclaration des variables d'env, path, etc...)
http://pbdj.sys-con.com/read/184903.htm


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#4 28-02-2008 09:56:12

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Comment intégrer des EJBs qui se trouvent dans JBOSS dans PB

Bonjour, il y a tout un chapitre dans l'aide HTML : (c'est un peu le même principe que pour appeler une classe java)

Chapter 29 Building an EJB client
About this chapter
This chapter describes how to build a PowerBuilder client for an Enterprise JavaBeans component running on a J2EE-compliant application server. Reference information for the objects described in this chapter is in the PowerBuilder Extension Reference and in the online Help.

Contents
Topic
About building an EJB client
Adding pbejbclient110.pbx to your application
Generating EJB proxy objects
Creating a Java VM
Connecting to the server
Invoking component methods
Exception handling
Client-managed transactions
Debugging the client


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#5 29-02-2008 12:12:32

noel_lalaina  
Membre
Lieu: Antananarivo
Date d'inscription: 22-02-2008
Messages: 7
Pépites: 3,535
Banque: 0
Site web

Re: Comment intégrer des EJBs qui se trouvent dans JBOSS dans PB

Salut,

J'ai utilisé l'aide de PB11 comme tu l'as dit ErAsORz.

J'ai effectué les taches suivantes :
J'ai ajouté le pbejbclient110.pbx à mon applicaton
J'ai créé un projet pour la construction du "proxy object"(J'ai utilisé le fichier jar qui sera intégré dans l'applicaiton cliente)
J'ai déployé le projet
J'ai créé une fenetre pou l'interface utilisateur
J'ai instancié le JavaVM comme indiqué dans l'aide
J'ai établi la connexion au serveur

Tous ces processus n'a présenté aucun erreur.

Mais quand j'ai fait un lookup sur l'EJB je reçoit l'erreur suivant :
     "Failed to lookup the EJB:mg.aaa.TestHomeA
      Need to specify classname in environment or system property, or as applet parameteror in an application resource file java.naming.factory.initial"

Je ne sais pas qu'est ce qui se passe ? Or quand je teste l'EJB sur une simple application java, ca marche.

De plus, je ne comprend pas pourquoi même si le serveur est déconnecté, je n'obtient aucune erreur.

-----------------------------------------
Noel
http://www.jeannoeltours.com

Hors ligne

 

#6 29-02-2008 13:04:50

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Comment intégrer des EJBs qui se trouvent dans JBOSS dans PB

ça sent un problème sur le CLASSPATH...

tu peux mettre ton code ?


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#7 29-02-2008 17:36:59

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Comment intégrer des EJBs qui se trouvent dans JBOSS dans PB


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#8 03-03-2008 05:42:27

noel_lalaina  
Membre
Lieu: Antananarivo
Date d'inscription: 22-02-2008
Messages: 7
Pépites: 3,535
Banque: 0
Site web

Re: Comment intégrer des EJBs qui se trouvent dans JBOSS dans PB

Bonjour,

Voila le code.

Code: pb

boolean lb_isdebug
string ls_classpath, properties[]
ejbconnection conn

if not gb_jvm_started then
  //-- create JAVAVM
  g_jvm = create javavm
  
  //-- The Java package for the EJB
  ls_classpath = "D:\temp\jboss2;"
  
  lb_isdebug = true
  choose case g_jvm.createjavavm( ls_classpath, lb_isdebug)
    case 0
      gb_jvm_started = true
    case -1
      MessageBox("Error","Failed to load JavaVM")
    case -2
      MessageBox("Error","Failed to load EJBLocator")
  end choose
end if

properties[1] = "javax.naming.Context.INITIAL_CONTEXT_FACTORY = org.jnp.interfaces.NamingContextFactory"
properties[2] = "javax.naming.Context.PROVIDER_URL=jnp://KKKKKK:1099"
properties[3] = "javax.naming.Context.SECURITY_PRINCIPAL=admin"
properties[4] = "javax.naming.Context.SECURITY_CREDENTIALS=astrum1"

conn = CREATE EJBCONNECTION

TRY 
  CONN.connecttoserver( properties)
  MessageBox("Connection","Connecté")
catch ( exception e)
  MessageBox("exception",e.getmessage())
end try

pf_testhome testobj

try
//  testobj = conn.lookup( "pf_testhome", "mg.astrum.ddp.test.businessLayer.interfaces.TestHome","ejb.DDPTEST.business.Test")
  testobj = conn.lookup( "pf_testhome", "ejb/DDPTEST/business/Test","mg.astrum.ddp.test.businessLayer.interfaces.TestHome")
catch ( exception e1)
  CONN.disconnectserver( )
  MessageBox("exception",e1.getmessage())
end try

Open ( w_test )

-------------------------------------------------
Noel
Découvrir Madagascar

Hors ligne

 

#9 03-03-2008 07:53:38

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Comment intégrer des EJBs qui se trouvent dans JBOSS dans PB

Bonjour, à quel niveau s'arrête le code ?
quels sont les msgs au niveau de createjavavm, connecttoserver, lookup ?

les properties ne correspondent pas tout à fait à :

Code:

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory 
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces 
java.naming.provider.url=jnp://localhost:1099

pour info :


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#10 05-03-2008 05:28:46

noel_lalaina  
Membre
Lieu: Antananarivo
Date d'inscription: 22-02-2008
Messages: 7
Pépites: 3,535
Banque: 0
Site web

Re: Comment intégrer des EJBs qui se trouvent dans JBOSS dans PB

Bonjour,

J'ai modifié le code comme ci-dessous (au niveau des propriétés).

Code: pb

properties[1] = "java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory"
properties[3] = "javax.naming.Context.PROVIDER_URL=jnp://localhost:1099"
properties[2] = "java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces "

J'obtiens une nouvelle erreur :

Code:

Failed to connect to EJB server. Can not instantiate class : org.jnp.interfaces.NamingContextFactory

Or j'ai déjà ajouté dans le répertoire "D:\temp\jboss2" les fichiers : "jndi.properties" et "jnp-client.jar"

-------------------------------------
Noel
Découvrir Madagascar

Hors ligne

 

#11 06-03-2008 06:26:12

noel_lalaina  
Membre
Lieu: Antananarivo
Date d'inscription: 22-02-2008
Messages: 7
Pépites: 3,535
Banque: 0
Site web

Re: Comment intégrer des EJBs qui se trouvent dans JBOSS dans PB

Bonjour,

J'ai trouvé l'erreur.

J'ai modifié le classpath comme suit :

Code: pb

ls_classpath = "D:\temp\jboss2\jboss-j2ee.jar;D:\temp\jboss2\jbossall-client.jar"


Et les chaines de propriétés :

Code: pb

properties[1] = "javax.naming.Context.INITIAL_CONTEXT_FACTORY = org.jnp.interfaces.NamingContextFactory"
properties[2] = "javax.naming.Context.PROVIDER_URL=jnp://localhost:1099"
properties[3] = "javax.naming.Context.SECURITY_PRINCIPAL="
properties[4] = "javax.naming.Context.SECURITY_CREDENTIALS="


Et ça marche. J'arrive à me connecter au serveur d'application.

Le problème qui est au niveau du lookup.

Mon code pour le lookup est comme suit :

Code: pb

testhome testobj

try
  testobj = conn.lookup( "testhome", "ejb/DDPTEST/business/Test","mg.astrum.ddp.test.businessLayer.interfaces.TestHome")
catch ( exception e1)
  CONN.disconnectserver( )
  MessageBox("exception",e1.getmessage())
end try


Et je reçoit l'erreur suivant :

Code:

Failed to lookup the EJB : mg.astrum.ddp.test.businessLayer.interfaces.TestHome
javax.naming.CommunicationException[Root exception is java.lang.ClassNotFoundException:mg.astrum.ddp.test.businessLayer.interfaces.TestHome(no security manager:RMI class loader disabled)]

Je ne sais pas qu'est ce que ça signifie.

A+

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22