Skip to Main Content

Java EE (Java Enterprise Edition) General Discussion

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208

843830Jun 14 2005 — edited Jun 20 2005
Hello together.

I am new in the EJB subject and I try to perform a tutorial task in order to get started.

What I am trying to do is to call an enterprise bean from a standlone java client. Both the client and the bean are on the same machine.

I have a Windows 2000 machine on which I have installed the Sun Java� System Application Server Platform Edition 8.1 2005Q1.

Here is the directory- & file structure which I have created in order to accomplish the task:

c:\eduproject
c:\eduproject\classes
c:\eduproject\classes\business
c:\eduproject\classes\presentation
c:\eduproject\deployment
c:\eduproject\java
c:\eduproject\java\business
c:\eduproject\java\business\converter
c:\eduproject\java\business\converter\Converter.java
c:\eduproject\java\business\converter\ConverterEJB.java
c:\eduproject\java\business\converter\ConverterHome.java
c:\eduproject\java\presentation
c:\eduproject\java\presentation\converter
c:\eduproject\java\presentation\converter\ConverterCient.java

Here is my java source code of the enterprise bean:

--------------------------------------------------
Converter.java:
--------------------------------------------------
package business.converter;
import javax.ejb.EJBObject;
import java.rmi.RemoteException;

public interface Converter extends EJBObject {
public double dollarToYen(double dollars) throws RemoteException;
public double yenToEuro(double yen) throws RemoteException;
}
--------------------------------------------------

--------------------------------------------------
ConverterEJB.java:
--------------------------------------------------
package business.converter;

import java.rmi.RemoteException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;

public class ConverterEJB implements SessionBean {
public double dollarToYen(double dollars) {
return dollars * 121.6000;
}
public double yenToEuro(double yen) {
return yen * 0.0077;
}
public ConverterEJB() {}
public void ejbCreate() {}
public void ejbRemove() {}
public void ejbActivate() {}
public void ejbPassivate() {}
public void setSessionContext(SessionContext sc) {}
}
--------------------------------------------------

--------------------------------------------------
ConverterHome.java
--------------------------------------------------
package business.converter;
import java.io.Serializable;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;

public interface ConverterHome extends EJBHome {
Converter create() throws RemoteException, CreateException;
}
--------------------------------------------------

Here is my java source code of the java client:

--------------------------------------------------
ConverterClient.java
--------------------------------------------------
package presentation.converter;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import business.converter.*;

public class ConverterClient {

public static void main(String[] args) {
try {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.cosnaming.CNCtxFactory");
env.put(Context.PROVIDER_URL, "iiop://localhost:8080"); // TZE.metropolis.com.gr:8080
Context initial = new InitialContext(env);
Object objref = initial.lookup("TheConverterBean");

ConverterHome home = (ConverterHome) PortableRemoteObject.narrow(objref, ConverterHome.class);

Converter currencyConverter = home.create();

double amount = currencyConverter.dollarToYen(100.00);
System.out.println(String.valueOf(amount));
amount = currencyConverter.yenToEuro(100.00);
System.out.println(String.valueOf(amount));

currencyConverter.remove();

} catch (Exception ex) {
System.out.println("Caught an unxpected exception!");
ex.printStackTrace();
}
}
}
--------------------------------------------------

Having this situation, I perform the following steps:

==================== Step1: =======================
I start the application server by using
Start-Programs-Sun Microsystems-Application Server PE- Start Default Server

A Command Prompt Window comes up with the following content:

Starting Domain domain1, please wait.
Log redirected to C:\Sun\AppServer\domains\domain1\logs\server.log.
Domain domain1 is ready to receive client requests. Additional services are bein
g started in background.
Press any key to continue . . .

==================== Step2: =======================
I compile the enterprise bean code with the following bat file (which I execute within the directory c:\eduproject):

--------------------------------------------------
compileEJB.bat:
--------------------------------------------------
set J2EE_HOME=c:\Sun\AppServer
set SRCPATH=c:\eduproject\java\business\converter
set CLSPATH=c:\eduproject\classes
set CPATH=.;%J2EE_HOME%\lib\j2ee.jar
javac -d %CLSPATH% -classpath %CPATH% %SRCPATH%\ConverterEJB.java %SRCPATH%\ConverterHome.java %SRCPATH%\Converter.java

after compilation, I automatically receive the following class files:

c:\eduproject\classes\business\converter\Converter.class
c:\eduproject\classes\business\converter\ConverterEJB.class
c:\eduproject\classes\business\converter\ConverterHome.class

==================== Step3: =======================
By using the deployment tool of the application server,
(Start->Programs->Sun Microsystems->Application Server PE->Deploytool) I create a new J2EE application (named ConverterApp), I create a new enterprise bean (named ConverterBaen), assign the JNDI name "TheConverterBean" to the bean, place it into the application and deploy the application by giving C:\eduproject\deployment as "Application Client Stub Directory".

After this, I automatically receive the following files:

c:\eduproject\deployment\ConverterApp.ear
c:\eduproject\deployment\ConverterAppClient.jar

==================== Step4: =======================
I compile the java client code with the following bat file (which I execute within the directory c:\eduproject):

--------------------------------------------------
compileClient.bat
--------------------------------------------------
set J2EE_HOME=c:\Sun\AppServer
set SRCPATH=c:\eduproject\java\presentation\converter
set CLSPATH=c:\eduproject\classes
set CPATH=.;%J2EE_HOME%\lib\j2ee.jar;%CLSPATH%
javac -d %CLSPATH% -classpath %CPATH% %SRCPATH%\ConverterClient.java

after compilation, I automatically receive the following class:

c:\eduproject\classes\presentation\converter\ConverterClient.class

==================== Step5: =======================
I run the java client as standalone by executing the following bat file testClient.bat within the directory c:\eduproject:

--------------------------------------------------
testClient.bat
--------------------------------------------------
set J2EE_HOME=c:\Sun\AppServer
set CLSPATH=c:\eduproject\classes
set CPATH=.;%J2EE_HOME%\lib\j2ee.jar;c:\eduproject\deployment\ConverterAppClient.jar;%CLSPATH%
java -classpath %CPATH% presentation.converter.ConverterClient

This file results to the following command:

java -classpath .;c:\Sun\AppServer\lib\j2ee.jar;c:\eduproject\deployment\ConverterAppClient.jar;c:\eduproject\classes presentation.converter.ConverterClient

And here comes the following amazing error:

Caught an unxpected exception!
javax.naming.CommunicationException: Cannot connect to ORB. Root exception is o
rg.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe
at com.sun.corba.se.internal.iiop.IIOPConnection.purge_calls(IIOPConnect
ion.java:438)
at com.sun.corba.se.internal.iiop.ReaderThread.run(ReaderThread.java:70)

I don't know what to do; the client is not even ... remote (!!!).

Thank you in advance for any hint
Kostas
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jul 18 2005
Added on Jun 14 2005
1 comment
558 views