TIF ENOVIA/3DExperience Connector - Custom REST Services
TIF allows deploying custom developed RESTful Webservice’s.
Deployment
You have to package your RESTful services in a JAR file together with a special file within the "META-INF/" folder of the JAR file that defines what packages TIF should scan for the annotated RESTful service classes.
The file inside the META-INF folder should have the name jax-rs-packages.properties
and this file should contain the package names (one per line in the file).
- jax-rs-packages.properties
com.acme.integrations.erp.rest
com.acme.integrations.sap.rest
The JAR file should be dropped into the ${TIF_ROOT}/modules/enovia/webapps/jaxrs/WEB-INF/lib
directory. Upon startup of TIF, the REST services will be initialized.
Custom Resource and Provider Classes
Custom resource and provider classes can be registered by creating file jax-rs-classes.properties
into "META-INF/" folder. It should contain the class names one per line in the file.
- jax-rs-classes.properties
com.acme.provider.MyProvider
com.acme.resource.MyResource
JAR file(s) containing registered classes must be dropped into the ${TIF_ROOT}/modules/enovia/webapps/jaxrs/WEB-INF/lib directory.
|
Accessing a RESTful Service
The default context URL to a RESTful service is shown below.
- JAXRS default context URL
The port number may be different, see this page for details how to change it.
The context path to a web-application may be changed, see [Module Settings] for more info.
Use the example JAXRS bundled with TIF to test that everything is correctly setup. The current date will be returned in case all is okay.
- URL to example JAXRS
Logging
Hosted RESTful web service is automatically logged in the TIF database. It appears as a REST service in Admin UI with display name that is a combination of invoked web service class and method name. The unique service name is constructed based on the values of Path annotation in both class and method. The service name is not visible in Admin UI, but it is used to identify the service.
For example:
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
@Path("/example")
public class MyExample {
@Path("/{param}")
@GET
public String success(@PathParam("param") String param) {
return param;
}
}
Considering the above example, the service display name would be "MyExample/success" and service name is "example/{param}".
Limiting Logged Payload
There are configurable webapp init parameters to set maximum length for logged inbound (request) and outbound (response) payloads. Parameters help to limit usage of heap memory and storage by preventing to persist too large payloads to TIF DB.
See parameters "inboundPayloadMaxLength" and "outboundPayloadMaxLength" in web.xml
.
Default value for parameters is 1 000 000 bytes, if not defined. |