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_path must be set if the jolie service includes .iol files belonging to Jolie standard library (e.g., console.iol). For example this path, in a Linux environment, is /opt/jolie/include;
  • --namespace target_name_space name of WSDL namespace used by jolie types
  • --portName name_of_the_port name of the port that is exposing the interface callable via SOAP
  • --portName name_of_the_port address of the listening port
  • --outputFile output_filename is the file name where the generated WSDL document is stored (MyWsdl.wsdl is the default value).
  • filename.ol is 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 )
}