Link to home
Start Free TrialLog in
Avatar of vebram
vebram

asked on

WSDL not working

Hi

I have written a WSDL file and tested it and it is not working.

I do not know what I have left out or entered wrongly. It is valid and well formed, but not working!

All help and advice greatly appreciated.

Veb
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="check-policy" 
targetNamespace="http://homepages.feis.herts.ac.uk/~3com0109/cgi-bin/policy.cgi"
xmlns:tns="http://homepages.feis.herts.ac.uk/~3com0109/cgi-bin/policy.cgi" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
xmlns:ns="http://homepages.feis.herts.ac.uk/~3com0109/cgi-bin/policy.cgi"  
>
 
	<wsdl:types>
		<xs:schema targetNamespace="http://homepages.feis.herts.ac.uk/~3com0109/cgi-bin/policy.cgi" elementFormDefault="qualified"/>
	</wsdl:types>
	<wsdl:message name="check-policyRequest">
		<wsdl:part name="policycode" type="xs:string"/>
		<wsdl:part name="date" type="xs:string"/>
	</wsdl:message>
	<wsdl:message name="check-policyResponse">
		<wsdl:part name="price" type="xs:string"/>
	</wsdl:message>
	<wsdl:portType name="policy_PortType">
		<wsdl:operation name="check-policy">
			<wsdl:input message="tns:check-policyRequest"/>
			<wsdl:output message="tns:check-policyResponse"/>
		</wsdl:operation>
	</wsdl:portType>
	<wsdl:binding name="policy_Binding" type="tns:policy_PortType">
		<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
		<wsdl:operation name="check-policy">
			<soap:operation soapAction="check-policy"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>
	<wsdl:service name="check-policy">
		<wsdl:port name="policy_Port" binding="tns:policy_Binding">
			<soap:address location="http://homepages.feis.herts.ac.uk/~3com0109/cgi-bin/policy.cgi"/>
		</wsdl:port>
	</wsdl:service>
</wsdl:definitions>

Open in new window

Avatar of cwichoski
cwichoski

hi,

what or where is not working? dont work in your tool? what tool? or the call of WS dont work? you can explain with more detail what is not working?
Avatar of vebram

ASKER

Hi

I am testing it through

 http://soapclient.com/soaptest.html  
 
and getting the error report:

Error parsing the WSDL file: C:\Documents and Settings\Home PC\My Documents\UH\PAWS unit\Assignmnet 3\q3.1.1.wsdl Error retrieving WSDL file at C:\Documents and Settings\Home PC\My Documents\UH\PAWS unit\Assignmnet 3\q3.1.1.wsdl

I am expecting to be prompted for two pieces of information: policycode and date and then receive one response: price. I am new to this and don't know what it is that I have done wrong.

thanks for your help

Veb
Hi,

you must type an URL to your WSDL file on field "WSDL File Address:", something like http://homepages.feis.herts.ac.uk/~3com0109/q3.1.1.wsdl, the error occurs because you put a local file and the Generic SOAP Client needs a remote file.

i hope this helps
Avatar of vebram

ASKER

Hi

Can I clarify what you mean: when I enter the file location in the soapclient field it must be a remote address but still to the actual file I have?

Therefore I have to store my file on a server somewhere to test it?

thanks

Veb
hi, vebram

to test using the soapclient you must use a URL to your WSDL file, not a reference to a file in your hard disk, like C:\someFolder\someDir, you must type something like http://yourdomain.com/yourWSDLfile.wsdl and this must be on-line, because  http://soapclient.com/soaptest.html get this file, parse the file at server-side then show the test page.

i hope to be more clearly now.
Avatar of vebram

ASKER

Hi

That did not help, I think there is something wrong with my code but I don't know what.

Veb
Avatar of vebram

ASKER

Hi again,

when I run this i get the message:

invalid WSDL file no definition found

Can someone explain what is meant be definition please
ASKER CERTIFIED SOLUTION
Avatar of cwichoski
cwichoski

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of vebram

ASKER

Thanks for the help, it got me a bit further on but I still haven't solved my problem
can someone help on this solution please?
Hi,

I'm also doing this and have the same error "nvalid WSDL file, no definition found".  when testing my WSDL file using http://www.soapclient.com/soaptest.html

I'm not sure what this means, not a very helpful message
<?xml version="1.0" encoding="UTF-8"?>
 
<definitions name="StockLevel"
	targetNamespace="urn:CheckStockLevel"
	xmlns="http://schemas.xmlsoap.org/wsdl/"
	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
	xmlns:tns="urn:CheckStockLevel"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 
 
 
<!--Input message for the service-->
	<message name="CheckStockLevel_Request">
		<part name="productCode" type="xsd:string"/>
		<part name="Date" type="xsd:date"/>
	</message>
	
<!--Output message for the service-->	
	<message name="CheckStockLevel_Response">
		<part name="quantity" type="xsd:integer"/>
 
	</message>
 
<portType name="CheckStockLevel_PortType">
		<operation name="CheckStockLevel">
			<input message="tns:checkStockLevel_Request"/>
			<output message="tns:checkStockLevel_Response"/>
		</operation>
	</portType>
	
<binding name="checkStockLevel_Binding">
		<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
		<operation name="checkStockLevelService">
			<soap:operation soapAction="checkStockLevelService"/>
			<input>
				<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:Example1:stock"/>
			</input>
			<output>
				<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:Example1:stock"/>
			</output>
		</operation>
	</binding>
	
<service name="checkStockLevel_Service">
		<documentation>WSDL File for checking Stocl Levels</documentation>
		<port name="checkStockLevel_PortType" binding="checkStockLevel_Binding">
			<soap:address location="http://homepages.feis.herts.ac.uk/~3com0135/cgi-bin/stock.cgi"/>
		</port>
	</service>
 
</definitions>

Open in new window