jolie2wsdl
Jolie2wsdl is the counterpart of wsdl2jolie tool. It supports the creation of a WSDL document starting from a Jolie Interface.
The syntax
The syntax of jolie2wsdl follows:
jolie2wsdl [ -i include_file_path ] --namespace [target_name_space] --portName [name_of_the_port] --portAddr [address_string] --outputFile [output_filename]  filename.ol
where:
- -i include_file_pathmust be set if the jolie service includes- .iolfiles belonging to Jolie standard library (e.g.,- console.iol). For example this path, in a Linux environment, is- /opt/jolie/include;
- --namespace target_name_spacename of WSDL namespace used by jolie types
- --portName name_of_the_portname of the port that is exposing the interface callable via SOAP
- --portName name_of_the_portaddress of the listening port
- --outputFile output_filenameis the file name where the generated WSDL document is stored (- MyWsdl.wsdlis the default value).
- filename.olis the jolie service file whose input port must be transformed into a soap one
Jolie interface guidelines
When programming a Jolie interface to be transformed into a WSDL document, its recommended to follow these guidelines:
Native types in operation declaration are not permitted. For example, the following declaration is forbidden:
interface MyInterface {
    RequestResponse:
        myOp( string )( int )
}
All complex types must have a void value in the root. Hence, the following declaration are not permitted:
type Type1: int {
    .msg: string
}
type Type2: string {
    .msg: string
}
interface MyInterface {
    myOp( Type1 )( Type2 )
}
Thus, the right types and interface declaration for our example may be:
type Type1: void {
    .msg: int
}
type Type2: void {
    .msg: string
}
interface MyInterface {
    RequestResponse:
        myOp( Type1 )( Type2 )
}