You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yoko-commits@incubator.apache.org by br...@apache.org on 2006/06/26 14:03:07 UTC
svn commit: r417194 - in /incubator/yoko/trunk/distribution/src/main/samples:
orb/hello_world/src/corba/server/Server.java ws/hello_world/README.txt
ws/hello_world/src/corba/server/Server.java
Author: bravi
Date: Mon Jun 26 07:03:06 2006
New Revision: 417194
URL: http://svn.apache.org/viewvc?rev=417194&view=rev
Log:
Updated the hello_world readme and the demo corba server code.
JIRA: http://issues.apache.org/jira/browse/YOKO-54
Modified:
incubator/yoko/trunk/distribution/src/main/samples/orb/hello_world/src/corba/server/Server.java
incubator/yoko/trunk/distribution/src/main/samples/ws/hello_world/README.txt
incubator/yoko/trunk/distribution/src/main/samples/ws/hello_world/src/corba/server/Server.java
Modified: incubator/yoko/trunk/distribution/src/main/samples/orb/hello_world/src/corba/server/Server.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/distribution/src/main/samples/orb/hello_world/src/corba/server/Server.java?rev=417194&r1=417193&r2=417194&view=diff
==============================================================================
--- incubator/yoko/trunk/distribution/src/main/samples/orb/hello_world/src/corba/server/Server.java (original)
+++ incubator/yoko/trunk/distribution/src/main/samples/orb/hello_world/src/corba/server/Server.java Mon Jun 26 07:03:06 2006
@@ -34,15 +34,15 @@
public class Server {
static int run(ORB orb, String[] args) throws UserException {
- // Resolve Root POA
- POA rootPOA = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
+ // Resolve Root POA
+ POA rootPOA = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
- // Get a reference to the POA manager
- POAManager manager = rootPOA.the_POAManager();
+ // Get a reference to the POA manager
+ POAManager manager = rootPOA.the_POAManager();
- // Create implementation object
- HelloWorldImpl hwImpl = new HelloWorldImpl(rootPOA);
- HelloWorld hello = hwImpl._this(orb);
+ // Create implementation object
+ HelloWorldImpl hwImpl = new HelloWorldImpl(rootPOA);
+ HelloWorld hello = hwImpl._this(orb);
// Add reference to the boot manager
try {
@@ -56,11 +56,12 @@
throw new RuntimeException();
}
- // Run implementation
- manager.activate();
- orb.run();
+ // Run implementation
+ manager.activate();
+ System.out.println("Server ready...");
+ orb.run();
- return 0;
+ return 0;
}
public static void main(String args[]) {
@@ -68,30 +69,30 @@
props.put("org.omg.CORBA.ORBClass", "org.apache.yoko.orb.CORBA.ORB");
props.put("org.omg.CORBA.ORBSingletonClass",
"org.apache.yoko.orb.CORBA.ORBSingleton");
- props.put("yoko.orb.id", "HelloWorld-Server");
+ props.put("yoko.orb.id", "HelloWorld-Server");
// for this demo, start on localhost, port 40000
props.put("yoko.orb.oa.endpoint", "iiop --host localhost --port 40000");
- int status = 0;
- ORB orb = null;
+ int status = 0;
+ ORB orb = null;
- try {
- orb = ORB.init(args, props);
- status = run(orb, args);
- } catch(Exception ex) {
- ex.printStackTrace();
- status = 1;
- }
-
- if(orb != null) {
- try {
- orb.destroy();
- } catch(Exception ex) {
- ex.printStackTrace();
- status = 1;
- }
- }
+ try {
+ orb = ORB.init(args, props);
+ status = run(orb, args);
+ } catch(Exception ex) {
+ ex.printStackTrace();
+ status = 1;
+ }
+
+ if(orb != null) {
+ try {
+ orb.destroy();
+ } catch(Exception ex) {
+ ex.printStackTrace();
+ status = 1;
+ }
+ }
- System.exit(status);
+ System.exit(status);
}
}
Modified: incubator/yoko/trunk/distribution/src/main/samples/ws/hello_world/README.txt
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/distribution/src/main/samples/ws/hello_world/README.txt?rev=417194&r1=417193&r2=417194&view=diff
==============================================================================
--- incubator/yoko/trunk/distribution/src/main/samples/ws/hello_world/README.txt (original)
+++ incubator/yoko/trunk/distribution/src/main/samples/ws/hello_world/README.txt Mon Jun 26 07:03:06 2006
@@ -1,8 +1,8 @@
Hello World Demo
-=============================================
+================
-Prerequisite
-------------
+Prerequisites
+=============
If your environment already includes yoko.jar on the
CLASSPATH, and the JDK and ant bin directories on the PATH
@@ -12,162 +12,203 @@
javac, and java to build and run the demos, you must include the yoko.jar
in the CLASSPATH. Also set YOKO_HOME to the installation directory.
-This demo allows the user to run 3 use cases.
+Demo Use Cases
+==============
-- Yoko client & Yoko server.
+This demo allows the user to run three use cases.
- In this usecase, it is assumed that we have an existing wsdl interface
-and we want to migrate our corba servers & clients to use the web services
-interface. We start by adding a corba binding to the wsdl interface using the wsdltoidl tool.
-Then we add a corba service to this wsdl and use the celtix wsdl2java tool to generate
-java server & client code from this wsdl.
+- Case 1: Web services client & Web services server.
-- Yoko client & corba server.
+ In this use case, a Web services client talks to a Web services server
+through the IIOP protocol. Both the client and the server are implemented using
+the celtix Web services framework and the IIOP protocol is enabled by installing
+the Yoko CORBA binding into celtix.
- In this usecase, we want to access an existing corba server via a web services
-client. So first we use the idl interface of the corba server & use the idltowsdl tool
-to convert the idl to a wsdl with a corba binding & a corba service. Then we can use the
-celtix wsdl2java tool to generate the client code.
+ Note: celtix is _not_ part of the Yoko product, but a celtix kit is bundled
+with Yoko for convenience of testing and running the Web services demos.
-- Corba Client & Yoko Server.
+- Case 2: Web services client & CORBA server.
- In this usecase, we want existing corba clients to access the web service enabled
-corba server. If we have an idl, we can use the idltowsdl to generate the wsdl for our
-server implementation or if we have a wsdl, use the wsdltoidl tool to generate the idl
-for our client.
+ In this use case, a Web services client talks to a CORBA server through the
+IIOP protocol. The client, which is implemented using celtix, loads the
+Yoko CORBA binding to enable the IIOP protocol. The server is implemented using
+the Yoko ORB.
+This use case illustrates how a Web services client can be configured to access
+a CORBA server, by converting the server's OMG IDL interface into a WSDL interface
+with a CORBA binding.
-Building and running the demo using ant.
-----------------------------------------
+- Case 3: CORBA client & Web services server.
-From the samples/ws/hello_world directory, the ant build script
-can be used to build and run the demo.
+ In this use case, a CORBA client talks to a Web services server through the
+IIOP protocol. The client is implemented using the Yoko ORB. The server, which is
+implemented using celtix, loads the Yoko CORBA binding to enable the IIOP protocol.
-Using either UNIX or Windows:
+This use case illustrates how a Web service can be made accessible to CORBA clients,
+by exposing the service through an OMG IDL interface that can be accessed
+using the IIOP protocol.
- ant generate.corba.wsdl
-This will add a corba binding to the HelloWorld.wsdl & generate a
-HelloWorld-corba.wsdl. Add a corba service to this wsdl before proceeding.
+Building the Demo
+=================
-<wsdl:service name="HelloWorldCORBAService">
- <wsdl:port name="HelloWorldCORBAPort" binding="tns:HelloWorldCORBABinding">
- <corba:address location="corbaloc::localhost:40000/hw" />
- </wsdl:port>
-</wsdl:service>
+To build the demo code, perform the following steps:
-Please make sure that the address location you specify for the service & in the
-Server(yoko/server/Server.java) class matches. Also ensure that the
-address matches those defined in the corba client (corba/client/Client.java) and
-server (corba/server/Server.java) classes if you are using the second and
-third use cases.
+1. Open a command prompt and move into the directory <YOKO_HOME>/samples/ws/hello_world
-Then run,
+2. Enter the following command (UNIX or Windows):
- ant build
+ ant generate.corba.wsdl
-This will use the wsdl2java utility in celtix to generate the server & client code.
-
+ This command adds a CORBA binding to the samples/ws/resources/HelloWorld.wsdl file,
+ generating an output file, HelloWorld-corba.wsdl.
-To remove the code generated from the WSDL file and the .class
-files, run:
+3. Open the HelloWorld-corba.wsdl file using your favorite text editor and add the
+ following service definition in the scope of the wsdl:definitions element:
+
+ <wsdl:service name="HelloWorldCORBAService">
+ <wsdl:port name="HelloWorldCORBAPort" binding="tns:HelloWorldCORBABinding">
+ <corba:address location="corbaloc::localhost:40000/hw" />
+ </wsdl:port>
+ </wsdl:service>
- ant clean
+ The address specified here, localhost:40000, assumes that the client and server
+ both run on the same host. If you change this address, you should make sure it is
+ consistent with the address coded in the
+ hello_world/src/yoko/server/Server.java, hello_world/src/corba/server/Server.java and
+ hello_world/src/corba/client/Client.java files.
+4. From the samples/ws/hello_world directory, enter the following command (UNIX or Windows):
+ ant build
-Running the demo (First use case).
-----------------------------------
+ This command uses the celtix wsdl2java utility to generate the server & client code.
-From the samples/ws/hello_world directory run the commands, enter on a
-single command line:
-We have to set the Xbootclasspath because the ORB classes in yoko conflicts with the jdk classes.
+Running the Demo - Use Case 1
+=============================
-For UNIX (must use forward slashes):
- java -Xbootclasspath/p:$YOKO_HOME/lib/yoko-core-1.0-incubating-M1-SNAPSHOT.jar
+To run the demo for the first use case, perform the following steps:
+
+1. Open a command prompt and move into the directory <YOKO_HOME>/samples/ws/hello_world
+
+2. Enter the following command to start the server (on a single command line):
+
+ UNIX (must use forward slashes):
+
+ java -Xbootclasspath/p:$YOKO_HOME/lib/yoko-core-1.0-incubating-M1-SNAPSHOT.jar
-Dceltix.config.file=file:$YOKO_HOME/samples/ws/etc/corba_bus_config.xml
-classpath $CLASSPATH:build/classes yoko.server.Server &
- java -Xbootclasspath/p:$YOKO_HOME%/lib/yoko-core-1.0-incubating-M1-SNAPSHOT.jar
- -Dceltix.config.file=file:$YOKO_HOME/samples/ws/etc/corba_bus_config.xml
- -classpath $CLASSPATH:build/classes yoko.client.Client <Name>
-
-The server process starts in the background. After running the client,
-use the kill command to terminate the server process.
+ Windows (may use either forward or back slashes):
-For Windows (may use either forward or back slashes):
- start
- java -Xbootclasspath/p:%YOKO_HOME%\lib\yoko-core-1.0-incubating-M1-SNAPSHOT.jar
+ start java -Xbootclasspath/p:%YOKO_HOME%\lib\yoko-core-1.0-incubating-M1-SNAPSHOT.jar
-Dceltix.config.file=file:/%YOKO_HOME%\samples\ws\etc\corba_bus_config.xml
-classpath %CLASSPATH%;build\classes yoko.server.Server
- java -Xbootclasspath/p:%YOKO_HOME%\lib\yoko-core-1.0-incubating-M1-SNAPSHOT.jar
+ The server process starts in the background. We have to set the Xbootclasspath,
+ because the ORB classes in Yoko conflict with the JDK ORB classes.
+
+3. Enter the following command to start the client, substituting <Name> with your name:
+
+ UNIX:
+
+ java -Xbootclasspath/p:$YOKO_HOME/lib/yoko-core-1.0-incubating-M1-SNAPSHOT.jar
+ -Dceltix.config.file=file:$YOKO_HOME/samples/ws/etc/corba_bus_config.xml
+ -classpath $CLASSPATH:build/classes yoko.client.Client <Name>
+
+ Windows:
+
+ java -Xbootclasspath/p:%YOKO_HOME%\lib\yoko-core-1.0-incubating-M1-SNAPSHOT.jar
-Dceltix.config.file=file:/%YOKO_HOME%\samples\ws\etc\corba_bus_config.xml
-classpath %CLASSPATH%;build\classes yoko.client.Client <Name>
-A new command windows opens for the server process. After running the
-client, terminate the server process by issuing Ctrl-C in its command window.
+4. After running the client, use the kill command to terminate the server process (UNIX) or
+ type Ctrl-C in the server's command window (Windows).
+
+Running the Demo - Use Case 2
+=============================
-Running the demo (Second use case).
-----------------------------------
+To run the demo for the second use case, perform the following steps:
-From the samples/ws/hello_world directory run the commands, enter on a
-single command line:
+1. Open a command prompt and move into the directory <YOKO_HOME>/samples/ws/hello_world
-For UNIX (must use forward slashes):
- java -Xbootclasspath/p:$YOKO_HOME/lib/yoko-core-1.0-incubating-M1-SNAPSHOT.jar
+2. Enter the following command to start the CORBA server (on a single command line):
+
+ UNIX (must use forward slashes):
+
+ java -Xbootclasspath/p:$YOKO_HOME/lib/yoko-core-1.0-incubating-M1-SNAPSHOT.jar
-classpath $CLASSPATH:build/classes corba.server.Server &
- java -Xbootclasspath/p:$YOKO_HOME%/lib/yoko-core-1.0-incubating-M1-SNAPSHOT.jar
+ Windows (may use either forward or back slashes):
+
+ start java -Xbootclasspath/p:%YOKO_HOME%\lib\yoko-core-1.0-incubating-M1-SNAPSHOT.jar
+ -classpath %CLASSPATH%;build\classes corba.server.Server
+
+ The server process starts in the background. We have to set the Xbootclasspath,
+ because the ORB classes in Yoko conflict with the JDK ORB classes.
+
+3. Enter the following command to start the Web services client, substituting <Name> with your name:
+
+ UNIX:
+
+ java -Xbootclasspath/p:$YOKO_HOME/lib/yoko-core-1.0-incubating-M1-SNAPSHOT.jar
-Dceltix.config.file=file:$YOKO_HOME/samples/ws/etc/corba_bus_config.xml
-classpath $CLASSPATH:build/classes yoko.client.Client <Name>
-The server process starts in the background. After running the client,
-use the kill command to terminate the server process.
-
-For Windows (may use either forward or back slashes):
- start
- java -Xbootclasspath/p:%YOKO_HOME%\lib\yoko-core-1.0-incubating-M1-SNAPSHOT.jar
- -classpath %CLASSPATH%;build\classes corba.server.Server
+ Windows:
- java -Xbootclasspath/p:%YOKO_HOME%\lib\yoko-core-1.0-incubating-M1-SNAPSHOT.jar
+ java -Xbootclasspath/p:%YOKO_HOME%\lib\yoko-core-1.0-incubating-M1-SNAPSHOT.jar
-Dceltix.config.file=file:/%YOKO_HOME%\samples\ws\etc\corba_bus_config.xml
-classpath %CLASSPATH%;build\classes yoko.client.Client <Name>
-A new command windows opens for the server process. After running the
-client, terminate the server process by issuing Ctrl-C in its command window.
+4. After running the client, use the kill command to terminate the server process (UNIX) or
+ type Ctrl-C in the server's command window (Windows).
+
+
+Running the Demo - Use Case 3
+=============================
+To run the demo for the third use case, perform the following steps:
-Running the demo (Third use case).
-----------------------------------
+1. Open a command prompt and move into the directory <YOKO_HOME>/samples/ws/hello_world
-From the samples/ws/hello_world directory run the commands, enter on a
-single command line:
+2. Enter the following command to start the Web services server (on a single command line):
-For UNIX (must use forward slashes):
- java -Xbootclasspath/p:$YOKO_HOME/lib/yoko-core-1.0-incubating-M1-SNAPSHOT.jar
+ UNIX (must use forward slashes):
+
+ java -Xbootclasspath/p:$YOKO_HOME/lib/yoko-core-1.0-incubating-M1-SNAPSHOT.jar
-Dceltix.config.file=file:$YOKO_HOME/samples/ws/etc/corba_bus_config.xml
-classpath $CLASSPATH:build/classes yoko.server.Server &
- java -Xbootclasspath/p:$YOKO_HOME%/lib/yoko-core-1.0-incubating-M1-SNAPSHOT.jar
- -classpath $CLASSPATH:build/classes corba.client.Client <Name>
+ Windows (may use either forward or back slashes):
-The server process starts in the background. After running the client,
-use the kill command to terminate the server process.
-
-For Windows (may use either forward or back slashes):
- start
- java -Xbootclasspath/p:%YOKO_HOME%\lib\yoko-core-1.0-incubating-M1-SNAPSHOT.jar
+ start java -Xbootclasspath/p:%YOKO_HOME%\lib\yoko-core-1.0-incubating-M1-SNAPSHOT.jar
-Dceltix.config.file=file:/%YOKO_HOME%\samples\ws\etc\corba_bus_config.xml
-classpath %CLASSPATH%;build\classes yoko.server.Server
- java -Xbootclasspath/p:%YOKO_HOME%\lib\yoko-core-1.0-incubating-M1-SNAPSHOT.jar
+ The server process starts in the background. We have to set the Xbootclasspath,
+ because the ORB classes in Yoko conflict with the JDK ORB classes.
+
+3. Enter the following command to start the CORBA client, substituting <Name> with your name:
+
+ UNIX:
+
+ java -Xbootclasspath/p:$YOKO_HOME/lib/yoko-core-1.0-incubating-M1-SNAPSHOT.jar
+ -classpath $CLASSPATH:build/classes corba.client.Client <Name>
+
+ Windows:
+
+ java -Xbootclasspath/p:%YOKO_HOME%\lib\yoko-core-1.0-incubating-M1-SNAPSHOT.jar
-classpath %CLASSPATH%;build\classes corba.client.Client <Name>
-A new command windows opens for the server process. After running the
-client, terminate the server process by issuing Ctrl-C in its command window.
+4. After running the client, use the kill command to terminate the server process (UNIX) or
+ type Ctrl-C in the server's command window (Windows).
+
+
+Cleanup
+=======
To remove the code generated from the WSDL file and the .class
files, either delete the build directory and its contents or run:
Modified: incubator/yoko/trunk/distribution/src/main/samples/ws/hello_world/src/corba/server/Server.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/distribution/src/main/samples/ws/hello_world/src/corba/server/Server.java?rev=417194&r1=417193&r2=417194&view=diff
==============================================================================
--- incubator/yoko/trunk/distribution/src/main/samples/ws/hello_world/src/corba/server/Server.java (original)
+++ incubator/yoko/trunk/distribution/src/main/samples/ws/hello_world/src/corba/server/Server.java Mon Jun 26 07:03:06 2006
@@ -34,15 +34,15 @@
public class Server {
static int run(ORB orb, String[] args) throws UserException {
- // Resolve Root POA
- POA rootPOA = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
+ // Resolve Root POA
+ POA rootPOA = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
- // Get a reference to the POA manager
- POAManager manager = rootPOA.the_POAManager();
+ // Get a reference to the POA manager
+ POAManager manager = rootPOA.the_POAManager();
- // Create implementation object
- HelloWorldImpl hwImpl = new HelloWorldImpl(rootPOA);
- HelloWorld hello = hwImpl._this(orb);
+ // Create implementation object
+ HelloWorldImpl hwImpl = new HelloWorldImpl(rootPOA);
+ HelloWorld hello = hwImpl._this(orb);
// Add reference to the boot manager
try {
@@ -56,11 +56,12 @@
throw new RuntimeException();
}
- // Run implementation
- manager.activate();
- orb.run();
+ // Run implementation
+ manager.activate();
+ System.out.println("Server ready...");
+ orb.run();
- return 0;
+ return 0;
}
public static void main(String args[]) {
@@ -68,30 +69,30 @@
props.put("org.omg.CORBA.ORBClass", "org.apache.yoko.orb.CORBA.ORB");
props.put("org.omg.CORBA.ORBSingletonClass",
"org.apache.yoko.orb.CORBA.ORBSingleton");
- props.put("yoko.orb.id", "HelloWorld-Server");
+ props.put("yoko.orb.id", "HelloWorld-Server");
// for this demo, start on localhost, port 40000
props.put("yoko.orb.oa.endpoint", "iiop --host localhost --port 40000");
- int status = 0;
- ORB orb = null;
+ int status = 0;
+ ORB orb = null;
- try {
- orb = ORB.init(args, props);
- status = run(orb, args);
- } catch(Exception ex) {
- ex.printStackTrace();
- status = 1;
- }
-
- if(orb != null) {
- try {
- orb.destroy();
- } catch(Exception ex) {
- ex.printStackTrace();
- status = 1;
- }
- }
+ try {
+ orb = ORB.init(args, props);
+ status = run(orb, args);
+ } catch(Exception ex) {
+ ex.printStackTrace();
+ status = 1;
+ }
+
+ if(orb != null) {
+ try {
+ orb.destroy();
+ } catch(Exception ex) {
+ ex.printStackTrace();
+ status = 1;
+ }
+ }
- System.exit(status);
+ System.exit(status);
}
}