[omniORB] How to connect and call C++/Qt client and Java Server
Juaci Monteiro de Carvalho
juacimc at yahoo.com.br
Mon Nov 30 17:38:53 GMT 2009
Ok, thanks for your help.
I'm beginner, I was thinking that code (Corba) would be to use for client.
It's possible you send me an example C++ Corba for client and using
javaEE5 (server)?
This I'm trying to do.
> I've no idea what are you trying to do. Firstly, you say you want to connect
> a C++ client to Java server but you throw a C++ server code. Secondly, my
> assumption was that the you were using CORBA but I see a J2EE 3.0 session
> bean in your Java code.
>
>
>
>
> Juaci Monteiro de Carvalho-2 wrote:
>
>> Hi all,
>> I'm programming in C++/Qt. Today I intend to use C++/Qt just to
>> client and Java to server using glassfish and DB PostgreSQL.
>> This example(1) in java (client and server), it's working.
>> I'm searching a solution to mix this two technologies(C++/Qt and
>> Java server).
>> I did a bean class to return a little message(java)
>>
>> Ex 1: server
>>
>> package br.com.cadastro;
>>
>> import java.util.List;
>> import javax.ejb.Stateless;
>>
>> /**
>> *
>> * @author juaci
>> */
>> @Stateless
>> public class CadastroBean implements CadastroRemote, CadastroLocal {
>>
>> public String getName() {
>> return "<<<<<<<<<< My first test..... >>>>>>>>>>>>>>>>";
>> }
>> }
>>
>>
>> Ex 2: client C++/Qt
>>
>> 1 - How can I pass the parameter using this command line to test this
>> code below?
>> Command line: ./cliente corbaname:iiop:localhost:3700/NameService
>>
>> 2 - The name of package in java is "br.com.cadastro.CadastroRemote".
>> I would like adjust the command line above calling my package and
>> to fix this piece of code below.
>>
>> CosNaming::Name name;
>> name.length(1);
>> name[0].id = CORBA::string_dup("CadastroRemote");
>> // name[0].id =
>> CORBA::string_dup("br.com.cadastro.CadastroRemote");
>> name[0].kind = CORBA::string_dup("");
>>
>>
>> #include "CadastroRemote.h"
>> #include <iostream>
>> #include <CORBA.h>
>> #include <Naming.hh>
>> using namespace std;
>> int main(int argc, char ** argv)
>> {
>> try {
>> // init ORB
>> CORBA::ORB_ptr orb = CORBA::ORB_init(argc, argv);
>> // resolve service
>> CadastroRemote_ptr cadastro = 0;
>> try {
>> CORBA::Object_var ns_obj =
>> orb->resolve_initial_references("NameService");
>> if (!CORBA::is_nil(ns_obj)) {
>> CosNaming::NamingContext_ptr nc =
>> CosNaming::NamingContext::_narrow(ns_obj);
>> CosNaming::Name name;
>> name.length(1);
>> name[0].id = CORBA::string_dup("CadastroRemote");
>> // name[0].id =
>> CORBA::string_dup("br.com.estante.cadastro.CadastroRemote");
>> name[0].kind = CORBA::string_dup("");
>> CORBA::Object_ptr obj = nc->resolve(name);
>> if (!CORBA::is_nil(obj)) {
>> cadastro = CadastroRemote::_narrow(obj);
>> }
>> }
>> } catch (CosNaming::NamingContext::NotFound &) {
>> cerr << "not found" << endl;
>> } catch (CosNaming::NamingContext::InvalidName &) {
>> cerr << "invalid name" << endl;
>> } catch (CosNaming::NamingContext::CannotProceed &) {
>> cerr << "cannot proceed" << endl;
>> }
>>
>> if (!CORBA::is_nil(cadastro)) {
>> char * server = cadastro->getNome();
>> cout << "answer from: " << server << endl;
>> CORBA::string_free(server);
>> }
>>
>> // destroy ORB
>> orb->destroy();
>> } catch (CORBA::UNKNOWN) {}
>> }
>>
>> // EOF
>>
>>
>>
>> If I made a mistake with codes please correct me.
>> Someone has another better idea I appreciate your help.
>> Thanks.
>>
>> __________________________________________________
>> Faça ligações para outros computadores com o novo Yahoo! Messenger
>> http://br.beta.messenger.yahoo.com/
>>
>>
>> _______________________________________________
>> omniORB-list mailing list
>> omniORB-list at omniorb-support.com
>> http://www.omniorb-support.com/mailman/listinfo/omniorb-list
>>
>>
>>
>
>
__________________________________________________
Faça ligações para outros computadores com o novo Yahoo! Messenger
http://br.beta.messenger.yahoo.com/
More information about the omniORB-list
mailing list