[ic] SOAP access to Interchange

Chris Sendall cjs2 at admin.cam.ac.uk
Mon Apr 18 09:58:10 EDT 2005


interchange-users-bounces at icdevgroup.org wrote:
> Quoting Chris Sendall (cjs2 at admin.cam.ac.uk):
>> Hi
>> 
>> my $cat = 'foundcscp';
>> my $Tag = SOAP::Lite
>>             ->
>> uri('http://milton.internal.admin.cam.ac.uk/Vend/SOAP') 
>>             ->
>> proxy("http://milton.internal.admin.cam.ac.uk:7780/$cat") 
>> 
>> When I have interchange.cfg containing
>> 
>> Catalog       foundcscp /var/lib/interchange/foundcscp
>> /cgi-bin/foundcscp /foundcscp 
>> Catalog       tutcscp 
>> /var/lib/interchange/tutcscp /cgi-bin/tutcscp 
>> 
>> My debug line ::logDebug("variable
>> FILE_NAME=$::Variable->{FILE_NAME}"); gives Vend::UserDB:debug:
>> variable FILE_NAME=tutcscp/catalog.cfg 
>> which is wrong
>> 
>> BUT
>> Catalog       foundcscp /var/lib/interchange/foundcscp
>> /cgi-bin/foundcscp /foundcscp 
>> #Catalog       tutcscp 
>> /var/lib/interchange/tutcscp /cgi-bin/tutcscp 
>> 
>> My debug line ::logDebug("variable
>> FILE_NAME=$::Variable->{FILE_NAME}"); gives  Vend::UserDB:debug:
>> variable FILE_NAME=foundcscp/catalog.cfg which is right 
>> 
>> Any ideas please?
> 
> I am afraid I don't understand the proxy call. But what you need to do
> is know what call is coming in to the Vend::Server::http_soap()
> routine. 
> Uncomment some of the debug statements in that routine and you should
> be 
> able to figure out what is going on.

Mike

I will have a look at Vend::Server.pm

Apologies for sketchy e-mail, perl script is
#!/usr/bin/perl -w
use SOAP::Lite;
my $cat = 'foundcscp';

my $Tag = SOAP::Lite
            -> uri('http://milton.internal.admin.cam.ac.uk/Vend/SOAP')
            -> proxy("http://milton.internal.admin.cam.ac.uk:7780/$cat")
            -> on_debug (sub {print @_});

my $id = $Tag -> session_name ()->result;

my $proxy = "http://milton.internal.admin.cam.ac.uk:7780/$cat/$id";
$Tag->proxy($proxy);

$id = $Tag->session_name()->result();
$id = defined $id ? $id : 'undef';
print "id=$id\n";

my $login_opt = {
    username => 'cjs2',
    password => 'cjs2',
    function => 'login'
    };
my $ok = $Tag->userdb( $login_opt )->result;
...

The userdb routine displays the value of $::Variable->{FILE_NAME}

This is defined in the two catalog.cfg files
grep FILE_NAME /var/lib/interchange/*/catalog.cfg
/var/lib/interchange/foundcscp/catalog.cfg:Variable FILE_NAME
foundcscp/catalog.cfg
/var/lib/interchange/tutcscp/catalog.cfg:  Variable FILE_NAME
tutcscp/catalog.cfg

Chris Sendall



More information about the interchange-users mailing list