Overview
Wise is a Java framework for invoking deployed webservices through a GUI interface. The user does not need to write an invocation application to access a webservice.
Background
To call a webservice a user typically must write an invocation application. The application development requires the use of JAX-WS tools such as wsconsume, for wsdl-to-java generation. Wise provides a simpler solution to this process. It references the WSDL, uses the JAX-WS tools to generate code and Java reflection to access the objects. The GUI provides a 4 screen wizard, that walks the user through a three step process of invoking a deployed webservice, and displaying the results. In addition the user has the option of viewing the raw SOAP message send and received.
Issue Metadata
DEV CONTACTS: Rebecca Searls (primary), Alessio Soldano (secondary), (HAL) Harald Pehl
QE CONTACTS: (TBD)
AFFECTED PROJECTS OR COMPONENTS: Wildfly, HAL
Requirements
Hard requirements
- Accept a valid URL to the WSDL of a deployed webservice. The URL can be to a local or remote machine. https://developer.jboss.org/wiki/WiseGWTGUIVersion100#homePage
- Validate URL for correctness. Report identified issues.
- Return a list of endpoints declared in the WSDL. https://developer.jboss.org/wiki/WiseGWTGUIVersion100#Step1of3
- Supported input argument types
- boolean
- char
- byte
- short
- int
- long
- double
- float
- string
- An array of any of the types except byte[]
- Custom types: classes that can be introspected and their fields are the supported types listed.
- Parameterize Types: the parameterized type must be a supported type listed.
- List<>
- Map<>
- Display message when an input argument datatype can not be identified, (i.e. unknown). https://developer.jboss.org/wiki/WiseGWTGUIVersion100#UnknownInputArguments
- Provide a means for data to be added and removed from an input argument type of array, List, Map. https://developer.jboss.org/wiki/WiseGWTGUIVersion100#ListInputArguments
- Provide a means to add and remove data from a complex input argument type. https://developer.jboss.org/wiki/WiseGWTGUIVersion100#ComplexObjectList
- An input argument can be flagged to be xsi:nil=true. Note a field can be left blank. In this case the field is transmitted with no data. This is different from declaring a field nil. In this cause "Null" is transmitted as the data value. (This does not apply to types int, long, float, double) https://developer.jboss.org/wiki/WiseGWTGUIVersion100#TheCheckbox
- Provide a means to call the webservice.
- Display the data returned from the webservice. https://developer.jboss.org/wiki/WiseGWTGUIVersion100#ViewMessage
- Display any SOAP errors return by a webservice. https://developer.jboss.org/wiki/WiseGWTGUIVersion100#SoapErrorReporting
- Display the raw SOAP message that is to be transmitted. https://developer.jboss.org/wiki/WiseGWTGUIVersion100#PreviewMessagePanel
- Display the raw SOAP message that is returned by the webservice. https://developer.jboss.org/wiki/WiseGWTGUIVersion100#ViewMessage
- It is possible a webservice is running on another machine as well. The user is allowed to specify an alter URL to the webserivce. https://developer.jboss.org/wiki/WiseGWTGUIVersion100#Runtheserviceendpoint
- The webservice may be password protected. Prompt the user for the credentials. It is possible that the WSDL is password protected. It is also possible that the endpoint is password protected.
- Wise can be accessed by a link from the admin console. And directly from the start page url, http://localhost:8080/wise.
- Wise runs in the same security domain as HAL. If start page accessed from HAL line user should not be prompted for credentials. If user accesses start page via URL he may be prompted for login credentials.
Nice-to-have requirements
Non-requirements
- Support of REST endpoints.
- Auto discovery of multiple WSDLs in an webservice app.
- Tight integration into HAL.
- WISE is an app that runs in the local standalone environment. It does not attempt to detect if the server is running in domain mode and ferret out related address information.
- HAL has limitations. The administrator can disable http and enable https, change port offset, and have different firewall rules to access the public http(s) ports. In such cases this can make it impossible for HAL to provide the correct link to WISE. The app can still be used but the administrator must know the app's start page URL.
Design Details
Wise is a web application. It consists of 2 components, wise-core and wise-gwt-gui.
It is loosely tied to HAL. HAL provides a link to wise from its deployed web service WSLD page. Wise is also be accessible from its start page URL.
wise-core
It is a library that simplifis web service invocation from a client point of view. It provides a near zero-code solution to find and parse the WSDL, select the service and endpoint ,and call operations that map user defined object models to the JAX-WS objects required to perform the call.
wise-gwt-gui
The GUI provides a 4 screen wizard, that walks the user through a three step process of invoking a deployed webservice, and displaying the results.
Comments