User Tools

Site Tools


EASA Web Service Client

An EASA Web Service Client implementation is a computer program that creates requests and receives responses from the EASA Web Service. Interacting with an EASAP via these messages takes the place of the more traditional interaction where a human User modifies inputs and receives output via a web browser. The format of these messages is specified in EASA's WSDL file.

A Web Service Description Language (WSDL) file is an XML-based interface definition which outlines the functionality offered to a web service client implementation. This file describes the service name, message names, parameter inputs, operations, and the structure of returned data.


EASA's Web Service

EASA's WSDL file is available on a running EASA Server via:

  • http://<hostname>:<port>/easa-ws/service?wsdl

While an implementation of a Web Service Client for an EASAP may be done in any language, EASA provides two reference implementations in Java. These include:

  • .java reference code for two different web service clients
  • javadoc description of the methods
  • .jar file which contains the package com.easa.ws.client.stub

These files are, respectively:

To use either Java reference implementation, download the WSDL file from the server and use a zip archive manager to save it as service.wsdl into the folder below inside the easa-common.jar package:

  • easa-common.jar
    • com\easa\ws\client\stub

For the Plate2d.jar example:

  • Publish the examples/tutorial_cant_plate EASAP (The directory varies according to EASA version)

If the server name or ip address changes, download and save the new WSDL file to update hostname and port therein.

Using a Java IDE like Eclipse:

  • Create a new Project→A Java Application with a name other than Plate2D
  • Under the project's Libraries add easa-common.jar
  • Open the default java file that is created replace the file contents with the contents of Plate2D.java
    • Edit the URL:
      • EasaService.setUrl("file:///c:/EASA/service.wsdl")
    • Add a username/password pair
      • ((BindingProvider) easap).getRequestContext().put(
        • BindingProvider.USERNAME_PROPERTY, “user1” );
      • ((BindingProvider) easap).getRequestContext().put(
        • BindingProvider.PASSWORD_PROPERTY, “password1” );

Alternative 'Web Service' implementations

Alternatively, if a customer wishes to implement a client in another high-level language such as C, C++, VBA, a SOAP reference implementation may be helpful.

SoapUI (https://www.soapui.org/) is a free tool that will create a SOAP implementation and a reference client or a test client automatically from a WSDL file. The resulting file contains XML SOAP messages for the EASA Web Service and may be useful to a developer.


Configure the 'easaws' User

Regardless of the particular implementation, the EASA Server will need to be configured to accept a Web Service Client as a valid User .

Go to the page below and create the easaws user:

  • EASA→Administrator→Configure→Users
    • Login→easaws
    • Password→easaws

Obtain a license from EASA Technical Services that specifically activates the Web Service Client as a valid User.(support@easasoftware.com)


Configure HTTP/tomcat authentication

Finally, configure HTTP authentication records in the two files below:

Add a <security constraint/> and <security role/> for easaws to the file:

  • <EASAROOT>\webapps\easa-ws\WEB-INF\web.xml
<webapp ...
  <security-constraint>
    ...
  </security-constraint>
  ...
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Tomcat</web-resource-name>
      <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      <role-name>easaws</role-name>
    </auth-constraint>
    <user-data-constraint>
      <!-- transport-guarantee can be CONFIDENTIAL, INTEGRAL, or NONE -->
      <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
  </security-constraint>
  <security-role>
    <role-name>easaws</role-name>
  </security-role>
...
</webapp>

Add a <role/> for easaws and assign a username/password pair to it:

  • <EASAROOT>\tomcat\conf\tomcat-users.xml
<tomcat-users>
...
  <role rolename="easaws"/>
  <user username="user1" password="password1" roles="easaws"/>
...
</tomcat-users>