The move to a new Application Server can either be the greatest thing since sliced bread or the worst nightmare ever. Whether it is a forced migration from an archaic version that is no longer supported or a move to greener pastures.

From the opinions of people in industry there is a lot said about the WebSphere Application Server (WAS) and how it does too much for what they are trying to achieve. Can they go lighter? It really depends on the design and architecture of systems. In some cases an EJB compliant JEE server is required. There are lighter alternatives and there are open source options such as WildFly.  In other cases the move into the microservices architectural world can alleviate other pains.

If you are planning to move to WAS 9 then here are a few things to thing about:

JPA

WAS now supports 2.1 of the JPA specification (feature overview). Standard installations of WAS 9 will use the JPA 2.1 spec with Eclipse Link. These default settings might not be what your App is ready for. On application startup, it is possible for issues to occur such as no class definitions found for a specific JPA implementation – e.g. openjpa. Luckily, it is still backwards compatible with 2.0. How to change this?

1) Via the WAS UI console: navigate to the server -> Container Settings -> Default Java Persistence API settings

2) Under configuration: update the general properties to suit your requirements (JPA specification and persistence provider)

jpa-spec-general-properties

3) Restart the server

Resources:

WAS 9.0.0.x – Java Persistence API 2.1 behavior changes

WAS 8.5.5.x – Java Persistence API 2.1 behavior changes

JAX-RS

WAS now supports 2.0 of the JAX-RS spec. Standard installations of WAS 9 will use the JAX-RS 2.0 spec with an Apache CXF based implementation. Older releases were using Apache Wink as the provider. It is recommended to upgrade to the latest version. When migrating older applications to the server, there might be issues when calling REST services. These could be missing classes or media type issues. How to keep 1.1?

1) Via the WAS UI console: navigate to the server -> Container Services -> Default JAXRS provider settings -> Select 1.1

jax-rs-general-properties

2) Copy over JAX-RS JARS from WAS to lib, alternatively this could be added to the classpath.

There are jaxrs plugin JARs in the WAS directory. There might be a better way to do this (perhaps a WAS expert can shed some light here) but for now the plugins are in:

  • ./plugins/selectableBundles/jaxrs/*
  • ./plugins/com.ibm.ws.prereq.jackson.jar

3) Restart the server

Resources:

WAS JAX-RS service example

Leave a comment

Your email address will not be published. Required fields are marked *