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
Line 3: Line 3:
 
[[Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_10.png|400px]]
 
[[Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_10.png|400px]]
  
 +
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].
  
 
== Change return type ==
 
== Change return type ==
The WSDL file sho
+
To edit the return value, click on the arrow-link on the very right side of the output parameter [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_20.png]. That opens you the <code>getCompaniesResponse</code> element of that parameter [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_30.png]. On the right side, you see the anonymous type <code>getCompaniesResponseType</code> associated with the response element. There you find the <code>out</code> element. Left-click on its datatype (string) and choose 'New' [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_40.png]. Chose <code>Complex Type</code> and give it the name <code>Company</code> [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_50.png]. Right-click on the <code>out</code> element and change the multiplicity to <code>0..*</code> [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_60.png]. That allows you to return zero or more company objects [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_70.png].
[[Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_10.png|thumb|width=300px;WSDL file in WSDL editor]]
+
Open the 'Schema Index View' by clicking on the schema link on the very top-left corner [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_80.png]. In type 'Types'-section you find the <code>Company</code> type which we created before. Double-click on the <code>Company</code> type to open it [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_90.png]. What you see is an empty complex type. Right-click on the element's name to add the two child elements <code>name</code> and <code>symbol<code>[http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_100.png]. The element <code>Name</code> will hold the company name and the element <code>symbol</code> its stock symbol. It should look like this: [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_110.png]. Save the WSDL file and go back to the PortType overview to remove the input parameter. Thereto, 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 Types' | 'New' [http://wiki.eclipse.org/Image:org.eclipse.scout.jaxws.tutorial.EditWsdl_140.png]. A dialog will pop up to create a 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].
 +
 
 +
 
 +
 
 +
 
  
  

Revision as of 07:00, 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.

Change return type

To edit the return value, click on the arrow-link on the very right side of the output parameter [1]. That opens you the getCompaniesResponse element of that parameter [2]. 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' [3]. Chose Complex Type and give it the name Company [4]. Right-click on the out element and change the multiplicity to 0..* [5]. That allows you to return zero or more company objects [6]. Open the 'Schema Index View' by clicking on the schema link on the very top-left corner [7]. In type 'Types'-section you find the Company type which we created before. Double-click on the Company type to open it [8]. What you see is an empty complex type. Right-click on the element's name to add the two child elements name and symbol<code>[9]. The element <code>Name will hold the company name and the element symbol its stock symbol. It should look like this: [10]. Save the WSDL file and go back to the PortType overview to remove the input parameter. Thereto, click on the arrow-link on the very right side of the input parameter [11]. There you see the anonymous getCompaniesType with in as its child element [12]. To get rid of this, right-click on the getCompanies element and choose 'Set Types' | 'New' [13]. A dialog will pop up to create a new type. Choose 'Create a local anonymous type' and click OK [14]. As a result, the getCompanies element will look like this: [15].




On server node, go to the node 'Webservices (JAX-WS RI 2.1.6)' | 'Provider' | 'Services'. Right-click on that node to create a new webservice provider [16]. In the first wizard step, choose the 1st option to create a webservice provider from scratch, meaning not based on an existing WSDL file [17]. Click next to enter the WSDL name which is CompanyWebService.wsdl. Also, change the name for the service operation to getCompanies [18]. Click Finish to create the webservice provider. The Scout documentation has been moved to https://eclipsescout.github.io/. to learn more about webservice provider creation. In case you encounter problems to build the webservice stub, refer to the The Scout documentation has been moved to https://eclipsescout.github.io/. for more information. Please find the created webservice provider CompanyWebService in Scout Explorer [19]. 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 Authentication and session context. For more information on that Property View, please The Scout documentation has been moved to https://eclipsescout.github.io/..

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 [20], To open the implementing port type, double click the webservice node or click on the 'CompanyWebService' link in the PropertyView [21]. As you can see, this webservice consists of a single operation getCompanies with a String as its return value and a String 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 [22] to change the service. Click The Scout documentation has been moved to https://eclipsescout.github.io/. to follow detailed instructions.


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