diff options
Diffstat (limited to 'sca-cpp/branches/cpp-M1/sca/samples/ides/devstudio7/projects/Calculator/WSClient')
2 files changed, 247 insertions, 0 deletions
diff --git a/sca-cpp/branches/cpp-M1/sca/samples/ides/devstudio7/projects/Calculator/WSClient/BuildInstructions.txt b/sca-cpp/branches/cpp-M1/sca/samples/ides/devstudio7/projects/Calculator/WSClient/BuildInstructions.txt new file mode 100644 index 0000000000..3716551f14 --- /dev/null +++ b/sca-cpp/branches/cpp-M1/sca/samples/ides/devstudio7/projects/Calculator/WSClient/BuildInstructions.txt @@ -0,0 +1,95 @@ + +These sample projects will build: + +A basic calculator SCA service. +A client to test that service. +A WSClient to test the service as exposed by AXIS2C as a web service. + +The sample depdends on the current versions of Tuscany SDO and Tuscany SCA, which in turn +depend on axis2c version 0.92, and libxml2. See the SCA and SDO project installation +details. + +The sample already has the pre-generated proxy and wrapper code in it, but should +you need to regenerate these, you will need the command line tool "scagen" which is +part of the Tuscany SCA project. + +The projects expect to following environment variables to be set: +TUSCANY_SCACPP: +The directory in which the sca runtime is deployed - probably something ending in sca/deploy. + +TUSCANY_SDOCPP: +The directory where the sdo runtime is deployed - probably something ending in sdo/deploy. + +TUSCANY_SCACPP_DEFAULT_MODULE: +This is the default module to be loaded by SCA. It consists of <subsystem>/<component>. +In the case of this sample - its set programatically by the client - thats easier when +using visual studio. + +TUSCANY_SCACPP_SYSTEM_ROOT +This is the point from which SCA will start looking for modules to load. Again this is +set programmatically by the sample. + +AXIS2C_HOME: +This is where axis2c is deployed- this is only required by the WSClient project. + +The Calculator project contains a simple calculator service, and the descriptive files +which help the runtime to find the service. + + +Rebuilding the proxy and wrapper classes +======================================== + +If required, go to the Calculator sample main directory, and +type: +"scagen -dir CalculatorModule -output CalculatorModule" + +The generated code is put into the CalculatorModule subdirectory. + +Building the Client project +=========================== + +Set the active project to be "Client", and then build all. +This will re-build Calculator, then rebuild the Client, +The final step of the build will call a batch file "deploy.cmd", +which copies all the required files to the directory samples/Calculator/deploy + +Use Project..Settings..Debug and check the path to the executable, check also the +path to the working directory. Alter these to match your configuration. + +Run the project, and your SCA service should be called. + +Building the WSClient project +============================= + +Modify the services.xml file, and make the SCA system root defined +within it comply with your SCA system root. + +Set the active project to WSClient and build all. + +The last step of the build will run a wsdeploy script, which +tries to use the environment variable AXIS2C_HOME, to create +a services/Calculator directory, and deploy the services.xml file. +The dll which resolves SCA services is called +tuscany_sca_ws_service.dll - this will be copied to the axis +tree by the same script file. + +To run the axis2 http server, go to the %AXIS2C_HOME%/bin +directory, and launch the executable. + +Now verify that the path to the WSClient executable makes sense +in your project settings, and run the project. + + +Note +==== + +It can be quite hard to debug services which are invoked through axis, as the +dll including the service is loaded on call. One useful technique is to +load the axis http server in visual studio (create an empty project and make +the executable path point to axis2_http_server.exe). +Now use the Project..Settings..Debug..Addition DLLs option and add +services/Calculator/tuscany_sca_ws_service.dll. +You will now be able to set breakpoints in the dll (Axis2EntryPointService_invoke +is a good place - in Axis2EntryPointService_skeleton.cpp). +Run your WSclient from another debugger, and the server debugger will break +on the service code. diff --git a/sca-cpp/branches/cpp-M1/sca/samples/ides/devstudio7/projects/Calculator/WSClient/WSClient.vcproj b/sca-cpp/branches/cpp-M1/sca/samples/ides/devstudio7/projects/Calculator/WSClient/WSClient.vcproj new file mode 100644 index 0000000000..f76277238b --- /dev/null +++ b/sca-cpp/branches/cpp-M1/sca/samples/ides/devstudio7/projects/Calculator/WSClient/WSClient.vcproj @@ -0,0 +1,152 @@ +<?xml version="1.0" encoding = "Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.00"
+ Name="WSClient"
+ SccProjectName=""
+ SccLocalPath="">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="$(TUSCANY_SCACPP),$(TUSCANY_SDOCPP)/include,$(AXIS2C_HOME)/include"
+ PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="5"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\Debug/WSClient.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="4"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalOptions="/MACHINE:I386"
+ AdditionalDependencies="odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib axis2_engine.lib axis2_parser.lib axis2_util.lib axiom.lib"
+ OutputFile=".\Debug/WSClient.exe"
+ LinkIncremental="2"
+ SuppressStartupBanner="TRUE"
+ AdditionalLibraryDirectories="$(TUSCANY_SCACPP)\lib,$(TUSCANY_SDOCPP)\lib,$(AXIS2C_HOME)\lib"
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile=".\Debug/WSClient.pdb"
+ SubSystem="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\Debug/WSClient.tlb"/>
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="..\wsdeploy.cmd Debug"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="2057"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="$(TUSCANY_SCACPP),$(TUSCANY_SDOCPP)/include,$(AXIS2C_HOME)/include"
+ PreprocessorDefinitions="WIN32,NDEBUG,_CONSOLE"
+ StringPooling="TRUE"
+ RuntimeLibrary="4"
+ EnableFunctionLevelLinking="TRUE"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\Release/WSClient.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalOptions="/MACHINE:I386"
+ AdditionalDependencies="odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib axis2_engine.lib axis2_parser.lib axis2_util.lib axiom.lib"
+ OutputFile=".\Release/WSClient.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ AdditionalLibraryDirectories="$(TUSCANY_SCACPP)\lib,$(TUSCANY_SDOCPP)\lib,$(AXIS2C_HOME)\lib"
+ ProgramDatabaseFile=".\Release/WSClient.pdb"
+ SubSystem="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\Release/WSClient.tlb"/>
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="..\wsdeploy.cmd Release"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="2057"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ </Configuration>
+ </Configurations>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+ <File
+ RelativePath="..\..\..\..\..\Calculator\WSClient\Calculator_Client.cpp">
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\Calculator\WSClient\axis2_Calculator_stub.cpp">
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\Calculator\WSClient\axis2_Calculator_stub.h">
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl">
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+ </Filter>
+ <File
+ RelativePath=".\BuildInstructions.txt">
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
|