DocumentCentricUI
Contents |
Document Centric Web Services
Purpose of this document is to create a generic document oriented Web Service(not necessarily SOAP/WSDL), that receives an XML Document as request and returns an XML Document as response. Instead of implementing/calling WS Operations - RPC approach user works directly with XML Document (or with the body of SOAP Message) - Document approach.
User specifies the Messaging Type that defines the format of the messages on the wire: HTTP/XML or HTTP/SOAP.
Then, user specifies the technique used to process/generate the request/response :
- direct access to XML content (javax.xml.transform.Source)
- JAXB
- SAAJ API (javax.xml.soap.SOAPMessage)
Optionally, or mandatory for JAXB, user specifies the list of XML Schemas or WSDL file.
Note: the wizards are restricted to HTTP/XML or HTTP/SOAP protocol(binding)
New Document Centric Web Service
+-------------------------------------------------------------------------------- + | | | Web Service Name: |_NewWebService'''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''| | | | | Project: |_ModuleX '''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''___| | | Location: |_Source Packages'''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''v| | | Package: |_com.acme'''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''__v| | | | | ------------------------------------------------------------------------------- | | Select the format of the messages on the wire : | | | | (*) HTTP/XML (plain XML documents used to transfer data, e.g.REST WS) | | (*) Use direct access to XML content (javax.xml.transform.Source) | | ( ) Use JAXB to process XML Request and to generate XML Response | | XML Schemas:'''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''' [Browse... ] | | URL's for XML schemas specifying XML documents | | use comma (,) to separate multiple schemas | | | | ( ) HTTP/SOAP SOAP Version: (*)1.1 ( )1.2 | | (*) Use direct access to SOAP content (javax.xml.transform.Source) | | ( ) Use SAAJ API to process SOAP Request and to generate SOAP Response | | ( ) Use JAXB to process SOAP Request and to generate SOAP Response | | WSDL File: '''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''[Browse... ] | | URL for WSDL file | | | | This is an error message | +---------------------------------------------------------------------------------+
Components:
- Web Service Name text field - contains default value "NewWebService"
- HTTP/XML: specifies the HTTP_BINDING type (e.g. REST web services)
- Use direct access to XML content: javax.xml.transform.Source is used
(schould be selected if no schemas are specified)
- Use JAXB : javax.xml.bind.JAXBElement is used to process XML Request and to generate XML Response
Only has sense if at least one schema file is specified: Finish button should be disabled if no XML schema is specified
- XML Schemas: list of XML schemas that will be downloaded to project, and for which JAXB classes are generated (required when JAXB is selected)
- <<Browse>> browse button for local XML Schemas
- HTTP/SOAP: specifies the SOAP11_HTTP_BINDING type (SOAP/WSDL web services)
- SOAP version: specifies the SOAP version (1.1 or 1.2)
- Use direct access to SOAP content: javax.xml.transform.Source is used
- Use SAAJ API : javax.xml.soap.SOAPMessage is used to process SOAP Request and to generate SOAP Response
- Use JAXB : javax.xml.bind.JAXBElement is used to process SOAP Request and to generate SOAP Response
Only has sense if WSDL is specified: Finish button should be disabled otherwise
- WSDL File: specifies WSDL file that describes the service (required when JAXB is selected)
- <<Browse>> browse button for WSDL file
New Document Centric Web Service Client
+-------------------------------------------------------------------------------- + | | | Web Service Client Name: |_NewWebServiceClient'''_''''''_''''''_''''''_''''''_''''''_'''__| | | | | Project: |_ModuleX '''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''___| | | Location: |_Source Packages'''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''v| | | Package: |_com.acme'''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''__v| | | | | ------------------------------------------------------------------------------- | | Select the format of the messages on the wire : | | | | (*) HTTP/XML (plain XML documents used to transfer data, e.g.REST WS) | | (*) Use direct access to XML content (javax.xml.transform.Source) | | ( ) Use JAXB to generate XML Request and to process XML Response | | XML Schemas:'''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''' [Browse... ] | | URL's for XML schemas specifying XML documents | | use comma (,) to separate multiple schemas | | | | ( ) HTTP/SOAP SOAP Version: (*)1.1 ( )1.2 | | (*) Use direct access to SOAP content (javax.xml.transform.Source) | | ( ) Use SAAJ API to generate SOAP Request and to process SOAP Response | | ( ) Use JAXB to generate SOAP Request and to process SOAP Response | | WSDL File: '''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''[Browse... ] | | URL for WSDL file | | | | This is an error message | +---------------------------------------------------------------------------------+
Components:
- Web Service Client Name text field - contains default value "NewWebServiceClient"
- HTTP/XML: specifies the HTTP_BINDING type (e.g. REST web services)
- Use direct access to XML content: javax.xml.transform.Source is used
(schould be selected if no schemas are specified)
- Use JAXB : javax.xml.bind.JAXBElement is used to process XML Request and to generate XML Response
Only has sense if at least one schema file is specified: Finish button should be disabled if no XML schema is specified
- XML Schemas: list of XML schemas that will be downloaded to project, and for which JAXB classes are generated (required when JAXB is selected)
- <<Browse>> browse button for local XML Schemas
- HTTP/SOAP: specifies the SOAP11_HTTP_BINDING type (SOAP/WSDL web services)
- SOAP version: specifies the SOAP version (1.1 or 1.2)
- Use direct access to SOAP content: javax.xml.transform.Source is used
- Use SAAJ API : javax.xml.soap.SOAPMessage is used to generate SOAP Request and to process SOAP Response
- Use JAXB : javax.xml.bind.JAXBElement is used to generate SOAP Request and to process SOAP Response
Only has sense if WSDL is specified: Finish button should be disabled otherwise
- WSDL File: specifies WSDL file that describes the service (required when JAXB is selected)
- <<Browse>> browse button for WSDL file
Author: Milan Kuchtiak
Comments
- My first impression - wizards are too complicated and they contain a lot of text which will not fit well to the current (preferred) size of New File wizards
- Some other options to consider (for both wizards):
- Split the wizard into two distinct ones - one for HTTP/XML Doc. oriented ws/ws client and the second for HTTP/SOAP Doc. oriented ws/ws client
- Split the wizard into two distinct ones - one for HTTP/XML Doc. oriented ws/ws client and the second for HTTP/SOAP Doc. oriented ws/ws client
- does not make sense, IMHO
- Split the wizard into few panels/steps where the basic panel will be:
+-------------------------------------------------------------------------------- + | | | Web Service Name: |_NewWebService'''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''| | | | | Project: |_ModuleX '''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''___| | | Location: |_Source Packages'''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''v| | | Package: |_com.acme'''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''__v| | | | | ------------------------------------------------------------------------------- | | Select the format of the messages on the wire : | | | | (*) HTTP/XML (plain XML documents used to transfer data, e.g.REST WS) | | ( ) HTTP/SOAP 1.1 | | ( ) HTTP/SOAP 1.2 | | | | | | | | | | | | | | | | | | | | | | This is an error message | +---------------------------------------------------------------------------------+
2a) There will be one embedded panel in this basic panel which will allow user to select other options relevant to selected format of the message, for example if HTTP/SOAP 1.2 will be selected then the wizard will look like:
+-------------------------------------------------------------------------------- + | | | Web Service Name: |_NewWebService'''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''| | | | | Project: |_ModuleX '''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''___| | | Location: |_Source Packages'''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''v| | | Package: |_com.acme'''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''__v| | | | | ------------------------------------------------------------------------------- | | Select the format of the messages on the wire : | | | | ( ) HTTP/XML (plain XML documents used to transfer data, e.g.REST WS) | | ( ) HTTP/SOAP 1.1 | | (*) HTTP/SOAP 1.2 | | | | | | (*) Use direct access to SOAP content (javax.xml.transform.Source) | | ( ) Use SAAJ API to generate SOAP Request and to process SOAP Response | | ( ) Use JAXB to generate SOAP Request and to process SOAP Response | | WSDL File: '''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''[Browse... ] | | URL for WSDL file | | | | | | | | | | This is an error message | +---------------------------------------------------------------------------------+
2b) There will be next step in the wizard with "advanced" options related to the format of message chosen in the first step/basic wizard
- in the basic panel user will be allowed to press Finish button to finish the wizard with default options (by default Use direct access to ... will be used)
- the Next button will be enabled as well and after pressing it user will see eg. following panel:
+-------------------------------------------------------------------------------- + | | | Format of the Message: |_HTTP/SOAP 1.2'''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''| | | | | | | (*) Use direct access to SOAP content (javax.xml.transform.Source) | | | | ( ) Use SAAJ API to generate SOAP Request and to process SOAP Response | | | | ( ) Use JAXB to generate SOAP Request and to process SOAP Response | | | | WSDL File: '''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_''''''_'''[Browse... ] | | URL for WSDL file | | | | | | | | | | | | | | This is an error message | +---------------------------------------------------------------------------------+
- where Format of the Message text field will be uneditable and will show the user what (s)he has selected in previous step
- there's also some space where we could put a brief description of each option (more TBD)
Author: Lukas Jungmann

