I am having more problems with using rope. I have created a simple
function that takes one string and returns one string. I have written
the SDL my self. My VBScript client appears to be successfully
recieving the service description and my services.asp file is being
called. However it dosn't get through the listener.asp file as the
request is empty. How is services.asp called and why is my request
empty? When I view the error file it says theat nothing was posted.
However I appear to be using the proxy correctly.
Any suggestions gratefully recieved. If you are bored I have included
my SDL, asp and client code below:
-----------------------------------------------------------------------
SDL File:
-----------------------------------------------------------------------
<?xml version="1.0" ?>
<serviceDescription
name="Soapservice"
xmlns:dt="url"
xmlns:svc ="services.xml"
xmlns:ss ="#pcws">
<import namespace="#pcws"
location ="#pcws"/>
<soap xmlns="urn:schemas-xmlsoap-org:soap-sdl-2000-01-25">
<interface name = "scilogin">
<requestResponse name="Login">
<request ref="ss:LoginInput" />
<response ref="ss:LoginOutput" />
<parameterorder>xmlLogInReq</parameterorder>
</requestResponse>
</interface>
<service>
<addresses>
<location url="url/services.asp" />
</addresses>
<implements name="scilogin" />
</service>
</soap>
<ss:schema id="pcws"
targetNamespace="services.xml"
xmlns:dt="url/1999/XMLSchema"
xmlns="url/1999/XMLSchema">
<element name="LoginInput">
<type>
<element name="xmlLogInReq"
type="dt:string"/>
</type>
</element>
<element name="LoginOutput">
<type>
<element name="xmlLogInResp"
type="dt:string" />
</type>
</element>
</ss:schema>
</serviceDescription>
----------------------------------------------------------------------
Client VBS Code
----------------------------------------------------------------------
sub proceed
dim uName, uPassWord
dim strMessage
dim CRLF
dim strLoginXML
dim oProxy
dim sBuffer
dim bRetVal
dim ServicesDescription
dim cData
dim ParentListener
dim URI_Listener
dim ogSoap
CRLF = chr(13) & chr(10)
'get user name and password entered
uName = Document.All("uname").Value
uPassWord = Document.All("pword").Value
'create soap proxy
set ogSoap = CreateObject("ROPE.SOAPPackager")
bRetVal = ogSoap.LoadServicesDescription(1,
URI_ServicesDescription)
if (bRetVal = False) Then
MsgBox "SOAP Error: LoadServicesDescription" & CRLF
& "Please contact the SCI team"
reloadPage
Exit Sub
end if
set cData = ogSoap.GetServiceDescriptors(0)
If VarType(cData(0)) = vbString then
ParentListener = cData(0)
else
ParentListener = cData(0).URI
end if
URI_Listener = ParentListener
ServicesDescription = ogSoap.ServicesDescription
set oProxy = CreateObject("ROPE.Proxy")
msgBox ServicesDescription
bool = oProxy.LoadServicesDescription 2, ServicesDescription
msgBox bool
sBuffer = oProxy.Login("glug")
MsgBox sBuffer
set OProxy = Nothing
set ogSoap = Nothing
end sub
----------------------------------------------------------------------
services.asp
----------------------------------------------------------------------
<%@ Language=VBScript %>
<%
OPTION EXPLICIT
dim ctFileObject
dim txtDebug
Response.Expires = 0
set ctFileObject = Server.CreateObject
("Scripting.FileSystemObject")
set txtDebug = ctFileObject.CreateTextFile
("file\Login_SoapTest.txt")
txtDebug.writeLine("jg")
CONST SOAP_SDLURI = "services.xml" 'URI of SDL file
%>
<!--#include file="listener.asp"-->
<%
Function Login(xmlLogInReq)
Login = "hjggjhgh"
End Function
%>
----------------------------------------------------------------------
Sent via Deja.com http://www.deja.com/
Before you buy.
Have solved this. The ref to the SDL file from services.asp was
relative. ie. because listener.asp and services.xml are in the same
directory on the web server I assumed 'services.xml' would suffice.
However it appears that the whole url must be specified eg. the full IP
address of the file.
I knew this, as I made the same mistake previously. Sorry. Who knows
someone may be having the same problem,
Proteus.