Invoking the Generator
In this section, we will use the following steps to generate code from the HelloWorld.wsdl file.
1. Set up your environment as described in Chapter 2, Setup in the HydraExpress User Guide.
2. Open a command prompt, and change to the <installdir>\examples\webservices\HelloWorld directory, as shown below:
Windows
cd %RWSF_HOME%\examples\webservices\HelloWorld
UNIX/Linux
cd $RWSF_HOME/examples/webservices/HelloWorld
3. Generate code by running rwsfgen with the name of the WSDL file and the project name.
 
prompt> rwsfgen -projectname HelloWorldExample HelloWorld.wsdl
Note: You may also generate code using as a sole argument the provided HydraExpress project file example-project.xml, as follows:
 
prompt> rwsfgen example-project.xml
Using this file results in the same generated code as the above invocation (with the exception that the project file sets the generator option whitespace to true to preserve whitespace in the marshaled data, while the default is nowhitespace).
For more information on the use of HydraExpress project files in the shipped examples, see “The Use of the HydraExpress Project File in Shipped Examples,” in Chapter 1 of the HydraExpress User Guide.
HydraExpress creates a project titled HelloWorld including client and server-side code, client and server sample applications, makefiles and MSVC project files, placing all files into the specified code generation directory HelloWorldExample.
These files are generated into several subdirectories, according to HydraExpress’s standard code generation directory hierarchy. For more information on the directory structure, see The Generated Project Directory. Table 2 lists the generated files for the Hello World example.
NOTE: HydraExpress supports only file paths without spaces, so when creating your directory names and structure, do not include spaces.
NOTE: Files that are overwrite-protected will be generated with a “.sample” extension if a file exists in the output directory of the same name. See Overwrite Protection.
Table 2 – Files generated for the HelloWorld example 
Directory
Files
Description
HelloWorldExample/
HelloWorldExample.xml
The project file defining all project elements (options, configurations, schemas, WSDLs, etc.). See The Project File .
 
makefile
makefile_debug
Project-level makefiles. These call all makefiles in subdirectories. Overwrite-protected.
 
makefile.include
Include makefile. Contains all makefile compiler and linker options. Edits to this file cascade down to all makefiles. Overwrite-protected.
 
HelloWorldExample.sln
MSVC solution file. Generated for Windows platforms.
 
deployDebug.bat
deployRelease.bat
Convenience debug and release deployment batch files generated for use with MSVC projects.
    app/
makefile
makefile_debug
Makefiles. Builds contents of app/ directory. Overwrite-protected.
        /client
GreetingPortClient.cpp
Sample client implementation using the client proxy. Overwrite-protected.
 
makefile
makefile_debug
Makefiles. Builds contents of app/client directory. Overwrite-protected.
 
GreetingPortClient.vcproj
MSVC project file generated for Windows platforms.
        /server
GreetingPortTypeImp.cpp
GreetingPortTypeImp.h
Sample service implementation and header files. Derives from GreetingBase. You can implement your service by implementing the methods of this class, or you can derive your own class from GreetingBase. Overwrite-protected.
 
makefile
makefile_debug
Makefiles. Builds contents of app/server directory. Overwrite-protected.
 
GreetingPortServiceSample.vcproj
MSVC project file generated for Windows platforms.
    codegen/
makefile
makefile_debug
Makefiles for codegen directory. Overwrite-protected.
        /client
GreetingBindingProxy.cpp
Implementation file for the generated client proxy class
 
makefile
makefile_debug
Makefiles. Builds contents of codegen/client directory. Overwrite-protected.
 
GreetingBinding.vcproj
MSVC project file generated for Windows platforms.
        /server
GreetingBindingSkeleton.cpp
GreetingPortTypeBase.cpp
Implementation files for the class that handles messaging and the base class for the server-side implementation.
 
makefile
makefile_debug
Makefiles. Builds contents of codegen/server directory. Overwrite-protected.
 
GreetingPortService.vcproj
MSVC project file generated for Windows platforms.
     conf/
transports.xml
client-transports.xml
Configuration files for:
1. Server and client transports
 
helloworld_handlers.xml
2. Server-side handlers to support handler chaining and configuration
 
client-handlers.xml
3. Client-side handlers containing default client logger
 
helloworld_objects.xml
4. Server-side named objects required by this service. These are registered and created when the Agent is started.
 
client-objects.xml
5. Client-side named objects.
 
helloworld_web.xml
6. Deployment XML file for the service.
 
makefile
makefile_debug
Deployment makefiles. Overwrite-protected.
    docs/
index.html
The generated documentation. Use index.html as the entry point to all docs contained in the docs subdirectories.
    include/
 
Header files, as follows:
        /HelloWorldExample
subdirectory <projectname>
 
GreetingBindingProxy.h
Client proxy class
 
GreetingBindingSkeleton.h
Class that handles messaging
 
GreetingPortTypeBase.h
Base class for the server-side implementation.
The generator also produces HTML documentation. The generator may produce other support files. The generator uses the support files while generating code, but the files are not required for compiling and running the generated code.
For other Web services, additional files may be generated; see Chapter 20, The HydraExpress Code Generator, for more information on topics such as generating with datatypes, faults, and using multiple WSDL and XML Schema files.