Provide data - Web service

Integration module Provide data Contents
General
Provide web service
Permissions
HTTPS certification
AXIS2 configuration

1. General

Web services are services that provide functionality and data via the internet. Similarly to a search engine, queries will be sent from a sender, which in this case is not a person, rather a software program. The web service returns the results to the program querying it. Web services can be provided for use either internally or externally to the company.

If you'd like to, for example, find the name of a bank based on a routing code, a web service can determine and return the desired data using an operation. The operations are described using WSDL (Web Services Description Language) files. The exchange of information takes place via an exchange of XML files.

In order to use a web service, the URL with which the web service is identified must be known. Additionally, special software is required to interpret the information that is delivered.

With Intrexx, web service provisions can be consumed without requiring additional programming efforts. Furthermore, you can provide your own web services.

The current version of Intrexx exclusively supports web services that are specified under the WSI Basic Profile Version 1.1. Here you can find information on this topic: http://docs.intrexx.com/intrexx/version/8000/api/webservice/basic-profile-1.1.redirect.

2. Provide web service




A new web service can by added via the context menu.



Information about the context menu functions can be found here.

3. Permissions

To be able to configure web services, the user needs to have the portal permission Provide web services and permission to access the Tools module.

4. HTTPS certification

In the following it is assumed in the following that the relevant certificate and keystore and truststore are already present. It should be noted that both keystore and truststore have the file type Java Keystore (file ending jks).

4.1 AXIS2 configuration

To setup a transport using HTTPS, modifications to the Axis2 configuration file need to be carried out. Switch to the directory

<intrexx>/org/<portal>/internal/webservice/provider/axis2/conf/

to do that and open the file axis2.xml in your preferred text editor. Now search for the following entry:
<!-- ================================================= -->
<!-- Non-blocking http/s Transport Listener  -->
<!-- the non blocking http transport based on HttpCore + NIO extensions -->
<transportReceiver class="de.uplanet.lucy.server.webservice.provider.axis2.transport.nhttp.HttpCore NIOListener" name="http">
	<parameter locked="false" name="port">WS_PORT</parameter>
	<parameter locked="false" name="non-blocking">true</parameter>
	<parameter locked="false" name="hostname">HOST_NAME</parameter>
</transportReceiver>
Beneath this entry is another <transportreceiver> element that is currently commented out. Remove the comment tags to activate the entry.
<!-- the non blocking https transport based on HttpCore + SSL-NIO extensions -->
<transportReceiver class="de.uplanet.lucy.server.webservice.provider.axis2.transport.nhttp.HttpCore
NIOSSLListener" name="https">
	<parameter locked="false" name="port">SSL_WS_PORT</parameter>
	<parameter locked="false" name="non-blocking">true</parameter>
	<parameter locked="false" name="keystore">
		<KeyStore>
			<Location>KEYSTORE.jks</Location>
			<Type>JKS</Type>
			<Password>KEYSTORE_PASSWORD</Password>
			<KeyPassword>KEY_PASSWORD</KeyPassword>
		</KeyStore>
	</parameter>
	<parameter locked="false" name="truststore">
		<TrustStore>
			<Location>TRUSTSTORE.jks</Location> 
			<Type>JKS</Type>
			<Password>TRUSTSTORE_PASSWORD</Password>
		</TrustStore>
	</parameter>
	<parameter name="SSLVerifyClient">require</parameter>
<!--supports optional|require or defaults to none -->
</transportReceiver>
The following values need to be filled in correctly:

ParameterDescription
SSL_WS_PORTPort that can be used to call up the HTTPS Web service. It should be noted that this port is different to the port for unsecured Web service calls.
KEYSTORE.jksPath to the Keystore in the format JKS. The path must be entered relevant to the directory <intrexx>\org\<portal>\internal\webservice\provider\
KEYSTORE_PASSWORDPassword for the stated Keystore.
KEY_PASSWORDPassword for the used key.
TRUSTSTORE.jksPath to the Truststore in the format JKS. The path must be entered relevant to the directory <intrexx>\org\<portal>\internal\webservice\provider\
TRUSTSTORE_PASSWORDPassword for the stated Truststore.

Once the values have been entered correctly, the next entry to search for is:
<transportSender class="org.apache.axis2.transport.http.CommonsHTTPTransportSender" name="https">
	<parameter name="PROTOCOL">HTTP/1.1</parameter>
	<parameter name="Transfer-Encoding">chunked</parameter>
</transportSender>
Beneath this entry is another <transportsender> element that is currently commented out. Remove the comment tags to activate the entry.
<!-- the non-blocking https transport sender based on HttpCore + NIO SSL extensions-->
<transportSender name="https" class="de.uplanet.lucy.server.webservice.provider.axis2.transport.nhttp.Http
CoreNIOSSLSender">
<parameter name="non-blocking" locked="false">true</parameter>
<parameter name="keystore" locked="false">
	<KeyStore>
		<Location>KEYSTORE.jks</Location>
		<Type>JKS</Type>
		<Password>KEYSTORE_PASSWORD</Password>
		<KeyPassword>KEY_PASSWORD</KeyPassword>
	</KeyStore>
</parameter>
<parameter locked="false" name="truststore">
	<TrustStore>
		<Location>TRUSTSTORE.jks</Location>
		<Type>JKS</Type>
		<Password>TRUSTSTORE_PASSWORD</Password>
	</TrustStore>
</parameter>
<parameter name="HostnameVerifier">DefaultAndLocalhost</parameter>
	;<!--supports Strict|AllowAll|DefaultAndLocalhost or the default if none 	specified-->
</transportSender>
The following values need to be filled in correctly:

ParameterDescription
KEYSTORE.jksPath to the Keystore in the format JKS. The path must be entered relevant to the directory <intrexx>\org\<portal>\internal\webservice\provider\
KEYSTORE_PASSWORDPassword for the stated Keystore.
KEY_PASSWORDPassword for the used key.
TRUSTSTORE.jksPath to the Truststore in the format JKS. The path must be entered relevant to the directory <intrexx>\org\<portal>\internal\webservice\provider\
TRUSTSTORE_PASSWORDPassword for the stated Truststore.

Save the file and then restart the portal service. Afterwards, call up the WSDL file in the browser to test the HTTPS authentication. When doing this, make sure that the entries are correct, i.e. the port and https instead of http. If the URL has been correctly entered, the applied certificate must be accepted. Subsequently, the WSDL file will be shown in the browser.