Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Scout/Tutorial/3.8/webservices/Change WSDL file to return a list of companies"

< Scout‎ | Tutorial‎ | 3.8
(Remove input parameter)
Line 4: Line 4:
  
 
What you see is your webservice, that has one service included which is bound to your CompanyWebServicePortType. For more information on that topic, please refer to [http://www.w3.org/TR/wsdl [http://www.w3.org/TR/wsdl].
 
What you see is your webservice, that has one service included which is bound to your CompanyWebServicePortType. For more information on that topic, please refer to [http://www.w3.org/TR/wsdl [http://www.w3.org/TR/wsdl].
 +
 +
{{note|Pleae note|If adding or removing an operation, you have to generate the binding content anew. Right-Click on the binding box [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_200.png] and choose 'Generate binding content...' [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_210.png]. Afterwards, check 'Overwrite existing binding information' and press OK [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_220.png].}}
 +
  
 
== Change output parameter ==
 
== Change output parameter ==
Line 11: Line 14:
 
== Remove input parameter==
 
== Remove input parameter==
 
To remove the input parameter, click on the arrow-link on the very right side of the input parameter [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_120.png]. There you see the anonymous <code>getCompaniesType</code> with <code>in</code> as its child element [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_130.png]. To get rid of this, right-click on the <code>getCompanies</code> element and choose 'Set Type' | 'New' [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_140.png]. A dialog will pop up to create the new type. Choose 'Create a local anonymous type' and click OK [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_150.png]. As a result, the <code>getCompanies</code> element will look like this: [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_160.png].
 
To remove the input parameter, click on the arrow-link on the very right side of the input parameter [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_120.png]. There you see the anonymous <code>getCompaniesType</code> with <code>in</code> as its child element [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_130.png]. To get rid of this, right-click on the <code>getCompanies</code> element and choose 'Set Type' | 'New' [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_140.png]. A dialog will pop up to create the new type. Choose 'Create a local anonymous type' and click OK [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_150.png]. As a result, the <code>getCompanies</code> element will look like this: [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_160.png].
 
 
 
 
 
 
On server node, go to the node <code>'Webservices (JAX-WS RI 2.1.6)' | 'Provider' | ''''Services''''</code>. Right-click on that node to create a new webservice provider [http://wiki.eclipse.org/Image:Org.eclipse.scout.jaxws.CreateWebServiceProvider_0.png]. In the first wizard step, choose the 1st option to create a webservice provider from scratch, meaning not based on an existing [http://en.wikipedia.org/wiki/Web_Services_Description_Language WSDL] file [http://wiki.eclipse.org/Image:Org.eclipse.scout.jaxws.CreateWebServiceProvider_10.png]. Click next to enter the WSDL name which is <code>CompanyWebService.wsdl</code>. Also, change the name for the service operation to <code>getCompanies</code> [http://wiki.eclipse.org/Image:Org.eclipse.scout.jaxws.CreateWebServiceProvider_20.png]. Click Finish to create the webservice provider. {{ScoutLink|SDK|JAXWS-SDK/Create webservice provider|name=Click here}} to learn more about webservice provider creation. In case you encounter problems to build the webservice stub, refer to the {{ScoutLink|Tutorials|Webservices with JAX-WS/Console Output for CompanyWebService|name=Console Output}} for more information.
 
Please find the created webservice provider <code>CompanyWebService</code> in Scout Explorer [http://wiki.eclipse.org/Image:Org.eclipse.scout.jaxws.provider_10.png]. In the Scout Property View of this provider, you can access the various files such as the WSDL file, implementation class or the JAX-WS service type. Also, there you find links to rebuild the webservice stub, to change build properties for stub generation process, to edit binding customization files and more. Also, the authentication mechanism can be changed in the section <code>Authentication and session context</code>. For more information on that Property View, please {{ScoutLink|SDK|JAXWS-SDK/Webservice provider Property View|name=click here}}.
 
 
So far, our webservice consists of a single operation to return companies. To open the WSDL file in the WSDL editor, click on the link 'CompanyWebService.wsdl' in the Scout Property View [http://wiki.eclipse.org/Image:Org.eclipse.scout.jaxws.CreateWebServiceProvider_50.png], To open the implementing port type, double click the webservice node or click on the 'CompanyWebService' link in the PropertyView [http://wiki.eclipse.org/Image:Org.eclipse.scout.jaxws.CreateWebServiceProvider_60.png].
 
As you can see, this webservice consists of a single operation <code>getCompanies</code> with a <code>String</code> as its return value and a <code>String</code> as its parameter. We will change that to return a list of company objects with no input parameter. Because this webservice is a Contract-First webservice, meaning that we are designing the WSDL file by ourself rather than generating it based on Java classes, open the WSDL editor [http://wiki.eclipse.org/Image:Org.eclipse.scout.jaxws.CreateWebServiceProvider_50.png] to change the service. Click {{ScoutLink|Tutorials|Webservices with JAX-WS/Change WSDL file to return a list of companies|name=here}} to follow detailed instructions.
 
 
  
 
[[Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_10.png|thumb|Create webservice consumer]]
 
[[Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_10.png|thumb|Create webservice consumer]]
Line 40: Line 31:
 
[[Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_150.png|thumb|Create webservice consumer]]
 
[[Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_150.png|thumb|Create webservice consumer]]
 
[[Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_160.png|thumb|Create webservice consumer]]
 
[[Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_160.png|thumb|Create webservice consumer]]
 +
[[Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_200.png|thumb|Create webservice consumer]]
 +
[[Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_210.png|thumb|Create webservice consumer]]
 +
[[Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_220.png|thumb|Create webservice consumer]]

Revision as of 07:11, 10 November 2011

Open the WSDL file in the built-in Eclipse WSDL editor. This editor is part of the WTP project of Eclipse. If not available on your IDE, update your Eclise IDE accordingly.
The WSDL file should look as following:

Org.eclipse.scout.jaxws.tutorial.EditWsdl 10.png

What you see is your webservice, that has one service included which is bound to your CompanyWebServicePortType. For more information on that topic, please refer to [http://www.w3.org/TR/wsdl.

Note.png
Pleae note
If adding or removing an operation, you have to generate the binding content anew. Right-Click on the binding box [1] and choose 'Generate binding content...' [2]. Afterwards, check 'Overwrite existing binding information' and press OK [3].


Change output parameter

To change the output parameter, click on the arrow-link on the very right side of the output parameter [4]. That opens you the getCompaniesResponse element of that parameter [5]. On the right side, you see the anonymous type getCompaniesResponseType associated with the response element. There you find the out element. Left-click on its datatype (string) and choose 'New' [6]. Chose Complex Type and give it the name Company [7]. Right-click on the out element and change the multiplicity to 0..* [8]. That allows you to return zero or more company objects [9]. Open the 'Schema Index View' by clicking on the schema link on the very top-left corner [10]. In type 'Types'-section you find the Company type which we created before. Double-click on the Company type to open it [11]. What you see is an empty complex type. Right-click on the element's name to add the two child elements name and symbol[12]. The element Name will hold the company name and the element symbol its stock symbol. It should look like this: [13]. Save the WSDL.

Remove input parameter

To remove the input parameter, click on the arrow-link on the very right side of the input parameter [14]. There you see the anonymous getCompaniesType with in as its child element [15]. To get rid of this, right-click on the getCompanies element and choose 'Set Type' | 'New' [16]. A dialog will pop up to create the new type. Choose 'Create a local anonymous type' and click OK [17]. As a result, the getCompanies element will look like this: [18].

Create webservice consumer
Create webservice consumer
Create webservice consumer
Create webservice consumer
Create webservice consumer
Create webservice consumer
Create webservice consumer
Create webservice consumer
Create webservice consumer
Create webservice consumer
Create webservice consumer
Create webservice consumer
Create webservice consumer
Create webservice consumer
Create webservice consumer
Create webservice consumer
Create webservice consumer
Create webservice consumer
Create webservice consumer

Back to the top