[Users] BPEL - FTP - WSDL

vzurczak vincent.zurczak at petalslink.com
Wed Mar 16 10:41:15 CET 2011


Hi,


tbarbey wrote:
> Any other idea? I'm stuck on this and I really need to use FTP services in a BPEL process :(


I tried to use the DnD feature for the BPEL in Petals, with the generated WSDL.
And it failed, since the port type cannot be found (it is in the imported WSDL). This is a a limitation I will have to remove.

To make it work, I merged the two WSDLs into a single one.
The merge is given below.


Code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions 
	name="Ftp"
	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:tns="http://petals.ow2.org/components/ftp/version-3"
	targetNamespace="http://petals.ow2.org/components/ftp/version-3">

	<wsdl:types>
		<xsd:schema 
			xmlns:xsd="http://www.w3.org/2001/XMLSchema"
			elementFormDefault="qualified" 
			targetNamespace="http://petals.ow2.org/components/ftp/version-3">
			
			<xsd:element name="get" type="tns:getType"></xsd:element>
			<xsd:complexType name="getType">
				<xsd:sequence>
					<xsd:element name="filename" type="xsd:string"
						maxOccurs="1" minOccurs="1"></xsd:element>
					<xsd:element name="connection" type="tns:ConnectionType"
						maxOccurs="1" minOccurs="0">

					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>

			<xsd:element name="ioFault" type="tns:ioFaultType"></xsd:element>
			<xsd:complexType name="ioFaultType">
				<xsd:sequence>
					<xsd:element name="message" type="xsd:string"></xsd:element>
				</xsd:sequence>

			</xsd:complexType>

			<xsd:element name="mget" type="tns:mgetType"></xsd:element>
			<xsd:complexType name="mgetType">
				<xsd:sequence>
					<xsd:element name="filename" type="xsd:string"
						maxOccurs="unbounded" minOccurs="1"></xsd:element>
					<xsd:element name="connection" type="tns:ConnectionType"
						maxOccurs="1" minOccurs="0"></xsd:element>
				</xsd:sequence>
			</xsd:complexType>

			<xsd:element name="mgetResponse" type="tns:mgetResponse">
			</xsd:element>
			<xsd:complexType name="mgetResponse">
				<xsd:sequence>
					<xsd:element name="filename" type="xsd:string"
						maxOccurs="unbounded" minOccurs="0"></xsd:element>
				</xsd:sequence>
			</xsd:complexType>

			<xsd:element name="getFiles_fault">

				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="getFiles_fault" type="xsd:string">
						</xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:complexType name="anyType"></xsd:complexType>
			<xsd:element name="files" type="tns:filesType"></xsd:element>

			<xsd:complexType name="filesType">
				<xsd:sequence>
					<xsd:element name="file" type="xsd:base64Binary"
						maxOccurs="unbounded" minOccurs="0"></xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:element name="put">
				<xsd:complexType>
					<xsd:sequence>

						<xsd:element name="body" type="xsd:string" maxOccurs="1"
							minOccurs="1">
						</xsd:element>
						<xsd:element name="filename" type="xsd:string"
							maxOccurs="1" minOccurs="1">
						</xsd:element>
						<xsd:element name="connection" type="tns:ConnectionType"
							maxOccurs="1" minOccurs="0">
						</xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>

			<xsd:element name="mput">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="connection" type="tns:ConnectionType"
							maxOccurs="1" minOccurs="0"></xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>

			<xsd:element name="dir">

				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="connection" type="tns:ConnectionType"
							maxOccurs="1" minOccurs="0">
						</xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="dirResponse">
				<xsd:complexType>

					<xsd:sequence>
						<xsd:element name="filename" type="xsd:string"
							maxOccurs="unbounded" minOccurs="0"></xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>

			<xsd:complexType name="ConnectionType">
				<xsd:sequence>
					<xsd:element name="server" type="xsd:string" />
					<xsd:element name="port" type="xsd:string" />
					<xsd:element name="user" type="xsd:string" />
					<xsd:element name="password" type="xsd:string" />
					<xsd:element name="folder" type="xsd:string" />
					<xsd:element name="transfer-type" type="tns:transfer-typeType" />
					<xsd:element name="connection-mode" type="tns:connection-modeType" />
				</xsd:sequence>
			</xsd:complexType>

			<xsd:simpleType name="transfer-typeType">
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="auto" />
					<xsd:enumeration value="ascii" />
					<xsd:enumeration value="binary" />

				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="connection-modeType">
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="active" />
					<xsd:enumeration value="passive" />
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:schema>
	</wsdl:types>
	
	<wsdl:message name="getRequest">
		<wsdl:part name="getRequest" element="tns:get" />
	</wsdl:message>
	<wsdl:message name="getResponse">

	</wsdl:message>
	<wsdl:message name="mgetRequest">
		<wsdl:part name="mgetRequest" element="tns:mget"></wsdl:part>
	</wsdl:message>
	<wsdl:message name="mgetResponse">
		<wsdl:part name="mgetResponse" element="tns:mgetResponse"></wsdl:part>
		<wsdl:part name="files" element="tns:files" />
	</wsdl:message>
	<wsdl:message name="getFile_faultMsg">
		<wsdl:part name="ioFault" element="tns:ioFault"></wsdl:part>
	</wsdl:message>

	<wsdl:message name="getFiles_faultMsg">
		<wsdl:part name="ioFault" element="tns:ioFault"></wsdl:part>
	</wsdl:message>
	<wsdl:message name="putRequest">
		<wsdl:part name="putRequest" element="tns:put"></wsdl:part>
	</wsdl:message>
	<wsdl:message name="mputRequest">
		<wsdl:part name="mputRequest" element="tns:mput"></wsdl:part>
	</wsdl:message>

	<wsdl:message name="dirRequest">
		<wsdl:part name="dirRequest" element="tns:dir"></wsdl:part>
	</wsdl:message>
	<wsdl:message name="dirResponse">
		<wsdl:part name="dirResponse" element="tns:dirResponse"></wsdl:part>
	</wsdl:message>
	<wsdl:message name="dir_faultMsg">
		<wsdl:part name="ioFault" element="tns:ioFault"></wsdl:part>
	</wsdl:message>
	
	<wsdl:portType name="Ftp">
		<wsdl:operation name="get">
			<wsdl:input message="tns:getRequest" />
			<wsdl:output message="tns:getResponse" />
			<wsdl:fault name="fault" message="tns:getFile_faultMsg"></wsdl:fault>
		</wsdl:operation>
		<wsdl:operation name="mget">
			<wsdl:input message="tns:mgetRequest"></wsdl:input>

			<wsdl:output message="tns:mgetResponse"></wsdl:output>
			<wsdl:fault name="fault" message="tns:getFiles_faultMsg"></wsdl:fault>
		</wsdl:operation>
		<wsdl:operation name="put">
			<wsdl:input message="tns:putRequest"></wsdl:input>
		</wsdl:operation>
		<wsdl:operation name="mput">
			<wsdl:input message="tns:mputRequest"></wsdl:input>
		</wsdl:operation>

		<wsdl:operation name="dir">
			<wsdl:input message="tns:dirRequest"></wsdl:input>
			<wsdl:output message="tns:dirResponse"></wsdl:output>
			<wsdl:fault name="fault" message="tns:dir_faultMsg"></wsdl:fault>
		</wsdl:operation>
	</wsdl:portType>
	
	<wsdl:binding name="FtpBinding" type="tns:Ftp">
		<soap:binding style="document"
			transport="http://schemas.xmlsoap.org/soap/http" />
			
		<wsdl:operation name="get">
			<wsdl:input>
				<soap:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal" />
			</wsdl:output>
			<wsdl:fault name="fault">
				<soap:fault use="literal" name="fault" />
			</wsdl:fault>
		</wsdl:operation>
		
		<wsdl:operation name="mget">
			<wsdl:input>
				<soap:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal" />
			</wsdl:output>
			<wsdl:fault name="fault">
				<soap:fault use="literal" name="fault" />
			</wsdl:fault>
		</wsdl:operation>
		
		<wsdl:operation name="put">
			<wsdl:input>
				<soap:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal" />
			</wsdl:output>
			<wsdl:fault name="fault">
				<soap:fault use="literal" name="fault" />
			</wsdl:fault>
		</wsdl:operation>
		
		<wsdl:operation name="mput">
			<wsdl:input>
				<soap:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal" />
			</wsdl:output>
			<wsdl:fault name="fault">
				<soap:fault use="literal" name="fault" />
			</wsdl:fault>
		</wsdl:operation>
		
		<wsdl:operation name="dir">
			<wsdl:input>
				<soap:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal" />
			</wsdl:output>
			<wsdl:fault name="fault">
				<soap:fault use="literal" name="fault" />
			</wsdl:fault>
		</wsdl:operation>
	</wsdl:binding>
	
	<wsdl:service name="Toto">
		<wsdl:port name="TotoEndpoint" binding="tns:FtpBinding">
			<soap:address location="http://petals.ow2.org/Toto/TotoEndpoint"/>
		</wsdl:port>
	</wsdl:service>
</wsdl:definitions>



To check your merge, right-click on the WSDL and select Validate.
If your merge worked, you should have only one warning about multi-parts.
This is due to an unperfect declaration of attachments in the WSDL.
This should be fixed later on when moving on a MTOM declaration... 

Then, in my BPEL, I simply used the DnD feature for BPEL.
I found my end-point (for the FTP component) in the view "Petals Services".
I dragged and dropped this end-point on the BPEL designer, and an invoke, and all the related elements (e.g. WSDL import), were created.
Eventually, if you go in the properties of this invoke, you will find the FTP operations in the combo box.

[Image: http://img30.imageshack.us/img30/1919/clipboard02it.jpg ]




-------------------- m2f --------------------

Subscribe/Unsubscribe emails notifications.

Response to this email will be posted on the Petals forum.
Please delete the existing text before responding :)

Read the topic online:
http://forum.petalslink.com/viewtopic.php?p=30582#30582

-------------------- m2f --------------------


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://forum-list.petalslink.org/pipermail/users/attachments/20110316/688238dd/attachment.htm>


More information about the Users mailing list