Passo a passo para migração de uma aplicação executada no WebSphere Application Server para execução no Open Liberty

Julio da Silva
3 min readSep 26, 2023

--

Este artigo é um passo a passo de migração, caso você queira entender mais sobre os servidores WebSphere Liberty e Open Liberty, além dos seus benefícios acesse meu primeiro artigo disponível em Migração de uma aplicação WebSphere.

Passo 1: Realizar o build da aplicação

O primeiro passo para migrar uma aplicação é realizar o build da mesma.

Passo 2: Download do Migration Toolkit for Application Binaries

  1. Faça o download do Migration Toolkit for Application Binaries.
  2. Após o download, extraia o conteúdo do arquivo zip em um diretório de trabalho do WebSphere Liberty.
  3. Crie um diretório chamado “app” e mova as aplicações que deseja analisar para dentro dele.
  4. Realize a análise da aplicação executando o seguinte comando:
java -jar binaryAppScanner.jar [caminho-da-aplicação] --all

Exemplo:

java -jar binaryAppScanner.jar "app/applicationx.ear" --all

5. Verifique o conteúdo da análise de migração em um arquivo HTML gerado na raiz do diretório do Migration Toolkit for Application Binaries com o mesmo nome do arquivo analisado seguido do sufixo “_MigrationReport.html”. Exemplo: applicationx-ear-7.10.1.ear_MigrationReport.html

Passo 3: Download do Open Liberty

Faça o download do Open Liberty

Passo 4: Criar servidor da aplicação no Open Liberty

  1. Extraia o Open Liberty baixado.
  2. Acesse o diretório “wlp” dentro do diretório extraído.
  3. Execute o comando para criar um servidor:
./bin/server create [nome_do_servidor]

Exemplo:

./bin/server create app

4. Após a execução do comando, o servidor será criado dentro do diretório “usr/servers”.

Passo 6: Criar um diretório “sharedlib”

  1. Crie um diretório “sharedlib” dentro do servidor. Exemplo: /wlp/usr/servers/app/sharedlib
  2. Copie as bibliotecas necessárias para a aplicação para dentro deste diretório.

Passo 7: Configurar o arquivo server.xml

Dentro do diretório da aplicação, edite o arquivo “server.xml” e insira as features e configurações necessárias para a execução da aplicação. No relatório gerado pelo “Migration Toolkit for Application Binaries,” há uma seção chamada “Configuração de Liberty” que descreve todas as features necessárias na aplicação.

Aqui está um exemplo de um arquivo server.xml:

<?xml version="1.0" encoding="UTF-8"?>
<server description="new server">
<library id="app-dependencies">
<fileset dir="${server.config.dir}/sharedlib" includes="*.jar" />
</library>

<dataSource id="name-data-source" jndiName="jdbc/datasource">
<jdbcDriver libraryRef="app-dependencies"/>
<properties.oracle URL="${DB_URL}" user="${DB_USER}" password="${DB_PASSWORD}"/>
</dataSource>

<!-- Outras configurações e features aqui -->
</server>

Passo 8: Instalar uma feature

bin/featureUtility installFeature [feature-name]

Exemplo

bin/featureUtility installFeature jpa-2.0

Você também pode apontar o repositório das features, o que é útil para usar um repositório open source:

./bin/featureUtility installFeature io.openliberty.features:[feature-name]

Passo 9: Executar a aplicação

Para iniciar a aplicação, dentro do diretório “wlp,” execute o seguinte comando:

./bin/server start [aplicação]

Exemplo:

./bin/server start app

O sistema deve apresentar um mensagem indicando o início da aplicação. Após a conclusão da inicialização, verifique o arquivo de log localizado em “wlp/usr/servers/app/logs” com o nome “console.log” para verificar se há erros. Corrija quaisquer erros de features não encontradas ou falhas na construção dos datasources, se necessário.

Passo 10: Execução em Ambiente Docker

Para executar a aplicação em um container do Websphere Liberty, siga os seguintes passos:

  1. Faça ajustes no arquivo “server.xml” para permitir a passagem de variáveis de ambiente em tempo de execução. Nas configurações dos datasources, substitua as propriedades URL, user e password por variáveis de ambiente.

Exemplo:

<dataSource id="name-data-source" jndiName="jdbc/datasource">
<jdbcDriver libraryRef="app-dependencies"/>
<properties.oracle URL="${DB_URL}" user="${DB_USER}" password="${DB_PASSWORD}"/>
</dataSource>

2. Crie um arquivo Dockerfile com o seguinte conteúdo:

FROM websphere-liberty:full-java8-ibmjava

COPY --chown=1001:0 server.xml /config/
COPY --chown=1001:0 /apps/app-ear-7.10.1.ear /opt/ibm/wlp/usr/servers/defaultServer/apps/
COPY --chown=1001:0 /sharedlib/*.jar /opt/ibm/wlp/usr/servers/defaultServer/sharedlib/
RUN features.sh
RUN configure.sh

3. Copie o arquivo server.xml, o arquivo Dockerfile e o executável da aplicação para um mesmo diretório.

4. Dentro deste diretório execute o seguinte comando para criar a imagem Docker:

docker build -t [tag-da-imagem-da-aplicação] .

Exemplo:

docker build -t company/app .

4. Para executar a aplicação Docker localmente, use o seguinte comando:

docker run --name [nome-da-aplicação] --network host -p 9080:9080 -e DB_USER=[usuario-de-banco-de-dados] -e DB_PASSWORD=[senha-de-banco-de-dados] -e DB_URL=[url-de-banco-de-dados] [tag-da-imagem-da-aplicação]

Exemplo:

docker run --name app --network host -p 9080:9080 -e DB_USER=*** -e DB_PASSWORD=*** -e DB_URL="jdbc:oracle:thin:@//DATABASE:1521/SCHEMA" company/app

Referências

--

--