Hi all,
Finally I got C WS Core examples of Counter Service and BlogService running
perfectly on my Grid nodes. Below is some summary of the process.
Counter Service:
Client:
1. download all the source files from website and set the environment
export GLOBUS_LOCATION=/usr/local/globus-4.0.5
source $GLOBUS_LOCATION/etc/globus-user-env.sh
2. generate your own makefile header and run make
The command-line for using globus-makefile-header for this example is:
globus-makefile-header --flavor=FLAVOR globus_c_wsrf_sample_counter_bindings
Where FLAVOR is typically gcc32dbg (on linux systems) or vendorcc32dbg (some
unix systems without gcc).
There is a bug in globus-makefile-header which causes it to leave \\ in some
header path elements. Filter those out with
globus-makefile-header --flavor=gcc32dbg
globus_c_wsrf_sample_counter_bindings | sed -e 's:\\::g' > makefile_header
This will complain if the bindings package isn't installed.
The Makefile requires the GLOBUS_FLAVOR_NAME macro to be defined, so the
command to build the examples is:
make -f Makefile.example GLOBUS_FLAVOR_NAME=gcc32dbg
3. run
a. start container: $GLOBUS_LOCATION/bin/globus-wsc-container -port
8080
b. run counter client: ./create-count
<https://debiangrid002:8080/wsrf/services/CounterService>
https://debianGrid002:8080/wsrf/services/CounterService counter.xml
note:
1. if gcc32dbg is not installed, run
gpt-build --nosrc gcc32dbg
2. if the above instructions don't work, maybe you're hitting this bug:
<http://bugzilla.globus.org/> http://bugzilla.globus.org/
bugzilla/show_bug.cgi?id=4659. In brief, that bug causes the packaging
system to omit generated headers from the binary installers.
Some possible solutions:
- Upgrade to 4.0.4 or higher which contain a workaround for this bug
(4.0.6 is the current): <http://www.globus.org/ftppub/gt4/4.0/4.0.6/>
http://www.globus.org/ftppub/gt4/4.0/4.0.6/
installers/bin/
- Build GT 4.0.x from a source installer
Blog Service:
Client(dir: /usr/local/globus-4.0.1/share/schema/tutorials/blog):
1. export GLOBUS_LOCATION=/usr/local/globus-4.0.1
2. source $GLOBUS_LOCATION/etc/globus-user-env.sh
3. Generate Service Bndings:
$GLOBUS_LOCATION/bin/globus-wsrf-cgen -no-service -s blog_client -flavor
gcc32dbg -d bindings blog_service.wsdl
4. Build Client Bindings:
$GLOBUS_LOCATION/sbin/gpt-build bindings/blog_client_bindings-1.2.tar.gz
gcc32dbg
5. $GLOBUS_LOCATION/bin/globus-makefile-header --flavor=gcc32dbg
blog_client_bindings > BlogClientMakefile.include
6. make
7. $./create-blog https://debianGrid002:32768/wsrf/service/BlogService test
ade erp.xml
Server(dir: /usr/local/globus-4.0.1/share/schema/tutorials/blog):
1. export GLOBUS_LOCATION=/usr/local/globus-4.0.1
2. source $GLOBUS_LOCATION/etc/globus-user-env.sh
3. $GLOBUS_LOCATION/bin/globus-wsrf-cgen -no-client -s blog_service -flavor
gcc32dbg -d bindings blog_service.wsdl
4. copy the implemented BlogService_skeleton.c to bindings/BlogService
5. make dist
6. $GLOBUS_LOCATION/sbin/gpt-build bindings/blog_service_bindings-1.2.tar.gz
gcc32dbg
7. $GLOBUS_LOCATION/bin/globus-wsc-container
Output:
Contact: <https://debiangrid002:32768/> https://debianGrid002:32768/
note:
1. if you got some errors as below when generating Client/Service
Bindings,
output:
Creating Bindings Package
Error: Failed to configure build package
See /usr/local/globus-4.0.1/share/schema/tutorials/blog/
bindings/configure.log for further info
configure.log:
/usr/local/globus-4.0.1/bin/globus-wsrf-cgen: line 447: ./
configure: No such file or directory
then try:
Download:
<http://www.globus.org/ftppub/gt4/4.0/4.0.1/gpt/gpt-3.2autotools2004-src.tar
.gz>
http://www.globus.org/ftppub/gt4/4.0/4.0.1/gpt/gpt-3.2autotools2004-src.tar.
gz
tar zxf gpt-3.2autotools2004-src.tar.gz
cd gpt-3.2autotools2004
./build_gpt
Download:
<http://www.globus.org/ftppub/gt4/4.0/4.0.0/gpt/autotools-for-gpt3.2autotool
s2004.tar.gz>
http://www.globus.org/ftppub/gt4/4.0/4.0.0/gpt/autotools-for-gpt3.2autotools
2004.tar.gz
tar zxf autotools-for-gpt3.2autotools2004.tar.gz
./install-autotools PATH
with PATH being where you want the patched autotools to be installed
Then add that PATH to your $PATH environment variable, and you should be
able to build the source package.
My Globus configuration:
Debian 3.1 r0a "Sarge"
Globus 4.0.5 Binary
$GLOBUS_LOCATION=/usr/local/globus-4.0.1
Regards,
Denny Yin