# Servidor de Aplicação WildFly

## Visão Geral

O Servidor de Aplicação WildFly (antigo JBoss) é o servidor de aplicação responsável pela integração entre o SURICATO e o TOTVS.

* **Função:** Executa o WebService que permite a comunicação segura entre os sistemas.
* **Compatibilidade:** Roda em qualquer sistema operacional (32 ou 64 bits) com suporte a Java.

## Regra de Negócio

Para o funcionamento da integração, certifique-se de atender a todos os pontos abaixo:

* [x] **Versão Suricato 3.1:** Requer a versão do Java JDK 17 (ou superior) e WildFly 39.0.1.Final.
* [x] **Versões Anteriores:** Requer a versão do Java 1.8.0.
* [x] **Instalação Prévia:** O Suricato deve estar instalado previamente, pois a pasta WildFly será gerada neste processo.
* [x] O Prompt de Comando (CMD) deve ser executado como Administrador.
* [x] **Banco de Dados:** Apenas uma string de conexão ativa no arquivo `persistence.xml`.
* [x] **Serviço:** O serviço WildFly deve estar instalado e "Em Execução" no Windows.
* [x] **Configuração:** O arquivo `suricato-totvs.war` deve ser configurado antes do upload.

## Pré-requisitos

Através do prompt do DOS, digite o comando `java -version` para verificar a versão do Java instalada.

Você deverá visualizar algo semelhante à imagem abaixo:

<figure><img src="/files/q8HkkpITCmtSR72aREPp" alt=""><figcaption><p><em>Verificando versão Java</em></p></figcaption></figure>

{% hint style="warning" %}

#### Atenção:

1. Para o **Suricato 3.1**, é obrigatório o **Java JDK 17 ou superior**.
2. Para versões anteriores, era necessário o **Java 1.8.0**. Caso não possua a versão correta, realize a instalação do Java antes de prosseguir.
   {% endhint %}

## Como instalar o Servidor WildFly

Após a instalação do SURICATO, a pasta de configuração do WildFly estará disponível dentro do diretório do sistema.&#x20;

O caminho padrão é:

```
C:\Program Files\Telematica\SURICATO
```

{% stepper %}
{% step %}

#### Instalação do WildFly

1. Abra o prompt de comando em modo administrador (se necessário, autorize o controle de usuário a abrir o prompt de comando).

<figure><img src="/files/wjV9taNEaR4L0Y776AKH" alt=""><figcaption><p><em>Autorização de execução como Administrador</em></p></figcaption></figure>

2. Para navegar até o diretório, no prompt de comando utilize o comando `cd`, conforme o exemplo abaixo:

<pre><code><strong>cd C:\Program Files\Telematica\SURICATO\Wildfly\docs\contrib\scripts\service\
</strong></code></pre>

3. Depois de acessar o diretório, ainda no prompt de comando, execute o camndo abaixo:

```
service.bat install
```

4. A execução deste arquivo `.bat` irá instalar os componentes necessários para o funcionamento do WildFly.

<figure><img src="/files/2INfAzfKqB6Mi4e7kAV9" alt=""><figcaption><p><em>Exemplo – install service.bat</em></p></figcaption></figure>

5. Após a instalação, será exibida no prompt de comando uma mensagem informando que o serviço **SuricatoWSTotvs** foi instalado com sucesso.

<figure><img src="/files/otEaSzxtw8cyeAJuvTJK" alt=""><figcaption><p><em>Exemplo – Solicitação de permissão do WildFly</em></p></figcaption></figure>

{% hint style="warning" %}
**Importante:** Antes de prosseguir para a verificação do serviço, é necessário apontar o caminho do Java no arquivo de inicialização do WildFly.
{% endhint %}
{% endstep %}

{% step %}

#### Configuração do JDK

1. Acesse a pasta:  `C:\Program Files\Telematica\Suricato\wildfly\bin`\
   (*este caminho pode variar se você alterou o local de instalação do Suricato*)
2. Localize o arquivo `standalone.bat` e abra-o com um editor de texto.\
   (*Sugerido Notepad++*)
3. Vá até a **linha 79** e aponte o caminho de instalação do seu Java JDK.
4. Salve e feche o arquivo.

<figure><img src="/files/ysahLtCvtZZDQgRRbgha" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Verificação do Serviço

1. Para verificar se o serviço foi instalado corretamente, confirme se ele está iniciado no Gerenciador de Serviços do Windows.
2. Clique no menu iniciar e procure a opção de busca, ou utilize o atalho **Windows + R** e digite:   `services.msc`

<figure><img src="/files/OVeh00xsoRQK6cJ3w4GN" alt=""><figcaption><p> <em>Serviços Suricato WS Totvs</em></p></figcaption></figure>

3. Caso o serviço não esteja iniciado, clique duas vezes sobre o serviço **SURICATO TOTVS WS** e, em seguida, clique em **Iniciar** ou **Start**, conforme o idioma do sistema operacional.
   {% endstep %}

{% step %}

#### Acesso ao WildFly

1. Para verificar se o serviço foi instalado corretamente, acesse o navegador de internet e utilize o seguinte endereço:

```
http://(IP do Servidor):9998
```

<figure><img src="/files/xLct776WUuyX8JqpRfdk" alt=""><figcaption></figcaption></figure>

2. Para acesso ao WebService, utilize as credenciais abaixo:
   * Usuário: `admin`
   * Senha: `admin`
3. Com a conclusão da instalação do serviço, feche o prompt de comando.
   {% endstep %}
   {% endstepper %}

## Como fazer o Deploy da Aplicação de Integração

{% stepper %}
{% step %}

#### Configurando o Properties

1. Para realizar a configuração do arquivo `SURICATO-totvs.war`, localize o diretório abaixo:

```
C:\Program Files\Telematica\SURICATO\SURICATO-TOTVS
```

<figure><img src="/files/4lf2leaLDnSbXT10PWlz" alt=""><figcaption><p><em>Pasta – Suricato-TOTVS</em></p></figcaption></figure>

2. Abra o arquivo `SURICATO-totvs.war` utilizando o WinRAR e localize o arquivo `persistence.xml`, que está no caminho:

```
\WEB-INF\classes\META-INF
```

3. Extraia o arquivo `persistence.xml` para edição.

<figure><img src="/files/lkBi5vzpnVg4VQs19HnR" alt=""><figcaption><p><em>Exemplo – Winrar</em></p></figcaption></figure>

4. No primeiro bloco de código contendo a tag `<properties>`, será realizada a configuração da conexão com o banco de dados do sistema SURICATO.

{% hint style="info" %}
**Observação:** Somente uma string de conexão pode estar habilitada no arquivo XML.
{% endhint %}
{% endstep %}

{% step %}

#### Banco de dados SQL Server

1. Edite as informações referentes ao IP do servidor de banco de dados e ao nome do banco, conforme o exemplo abaixo:

```
<property name="hibernate.connection.driver_class" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="hibernate.connection.url" value="jdbc:sqlserver://172.16.14.155;databaseName=suricato;" />
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect" />
```

2. Após realizar as alterações, salve o arquivo e substitua o `persistence.xml` dentro do `suricato-totvs.war`.

<figure><img src="/files/9s1Y5kZlR7ehGOlC0Bzz" alt=""><figcaption><p> <em>Persistence.xml</em></p></figcaption></figure>
{% endstep %}

{% step %}

#### Banco de dados SQL Server com conexão JTDS

1. Seguindo a mesma lógica da conexão SQL Server, edite as informações do servidor de banco de dados e substitua o driver e a URL conforme o exemplo abaixo:

```
<property name="hibernate.connection.driver_class" value="net.sourceforge.jtds.jdbc.Driver" />
<property name="hibernate.connection.url" value="jdbc:jtds:sqlserver://172.16.14.249:1433/suricato;useLOBs=true;" />
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect" />
```

<figure><img src="/files/zN4EvuT4Ht7Px0XPS5oA" alt=""><figcaption><p><em>Persistence.xml</em></p></figcaption></figure>
{% endstep %}

{% step %}

#### Banco de dados Oracle

Para configurar a base Oracle, remova os comandos de comentário das linhas de `property name`, retirando o `!--` do início e o `--` do final das linhas.

Na linha de configuração, altere o IP do servidor, o número da porta e o nome do SID do banco Oracle conforme o ambiente utilizado.

Exemplo de configuração:

```
<property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver" />
<property name="hibernate.connection.url" value="jdbc:oracle:thin:@192.168.0.89:1521/XE" />
<property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect" />
```

<figure><img src="/files/on37ijaU3x59mC78iOhB" alt=""><figcaption><p><em>Persistence.xml</em></p></figcaption></figure>
{% endstep %}

{% step %}

#### Carregando o arquivo suricato-totvs.war

1. Acesse o WildFly pelo navegador utilizando o endereço:

```
http://(IP do Servidor):9998/console/index.html#deployments
```

2. Com a página aberta, acesse o menu **Deployments**.
3. Caso já exista uma aplicação definida como deploy, será necessário removê-la.&#x20;
4. Para isso, clique sobre a aplicação, selecione a opção 1) **Disable** depois, clique em 2) **Undeploy** e confirme a remoção.

<figure><img src="/files/lQJhbLAI3KMn0RaPPdnx" alt=""><figcaption><p><em>Exclusão de aplicações anteriores</em></p></figcaption></figure>

5. Ao confirmar a remoção, clique no botão **+**, e em seguida clique em Upload Deployment.

<figure><img src="/files/zwnvTs7U80reX2ngXkLW" alt=""><figcaption><p><em>Adicionar Deploys</em></p></figcaption></figure>

6. Na nova janela, clique em '<mark style="color:blue;">Choose a file or drag it here</mark>' localize e selecione o arquivo `suricato-totvs.war`, que está no diretório:

<pre><code><strong>C:\Program Files\Telematica\SURICATO\SURICATO-TOTVS
</strong></code></pre>

<figure><img src="/files/oyV5spFZAT6I0UyQH69b" alt=""><figcaption><p><em>Tela de Upload de Deploy</em></p></figcaption></figure>

<figure><img src="/files/heKNWJd2oZNh1gQakuqU" alt=""><figcaption><p><em>Botão Next</em></p></figcaption></figure>

7. Após localizar o arquivo e realizar o upload, clique em **Next**.
8. Na tela seguinte, mantenha os nomes preenchidos e clique em **Finish** para concluir o upload.
9. Verifique se ocorreu algum erro durante o processo.
10. Os logs do sistema podem ser encontrados no diretório:

```
C:\Program Files\Telematica\SURICATO\WildFly\standalone\log
```

{% hint style="warning" %}
**Atenção:** O WebService é executado sobre a aplicação do WildFly. Sempre que for necessário interromper ou parar o serviço, será preciso finalizar o processo Java no Gerenciador de Serviços do Windows.
{% endhint %}
{% endstep %}
{% endstepper %}

## Guia Rápido de Uso

1. Verifique a versão do Java (JDK 17 para Suricato 3.1).
2. Instale o serviço via prompt (modo administrador) com `service.bat install`.
3. Aponte o caminho do JDK na linha 79 do arquivo `standalone.bat` (pasta \wildfly\bin).
4. Inicie o serviço no Gerenciador de Serviços do Windows.
5. Configure o banco no `persistence.xml` e realize o Deploy no console do WildFly.

## Glossário

* **Deploy:** Processo de instalação e disponibilização de uma aplicação em um servidor, tornando-a acessível para uso após a configuração.
* **JBoss:** Nome pelo qual o WildFly também é conhecido. Trata-se da mesma tecnologia de servidor de aplicação Java, mantida pela Red Hat.
* **WAR (Web Application Archive):** Arquivo compactado que contém uma aplicação web Java, incluindo código, configurações e dependências necessárias para execução no servidor de aplicação.
* **SID (System Identifier):** Identificador único de uma instância de banco de dados Oracle, utilizado para estabelecer a conexão com o servidor.
* **Hibernate Dialect:** Configuração que informa ao Hibernate qual banco de dados está sendo utilizado, permitindo a correta geração e execução dos comandos SQL.

## FAQ – Perguntas Frequentes

<details>

<summary>O serviço SURICATO TOTVS WS não aparece no Gerenciador de Serviços. O que fazer?</summary>

Verifique se o prompt de comando foi executado em modo administrador e se o comando `service.bat install` foi executado corretamente.

</details>

<details>

<summary>Ao acessar o endereço do WildFly, a página não carrega. Qual pode ser o problema?</summary>

Confirme se o serviço do WildFly está iniciado e se a porta 9998 não está sendo bloqueada por firewall.

</details>

<details>

<summary>Posso configurar mais de uma conexão de banco no persistence.xml?</summary>

Não. Apenas uma string de conexão pode estar habilitada por vez.

</details>

<details>

<summary>Após o deploy, a aplicação apresenta erro. Onde verificar?</summary>

Verifique os arquivos de log localizados no diretório `WildFly\standalone\log`.

</details>

<details>

<summary>Preciso parar o serviço. Como faço corretamente?</summary>

O serviço deve ser interrompido finalizando o processo Java no Gerenciador de Serviços do Windows.

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://software-telematica-com.gitbook.io/suricato-docs/central-tecnica/instalacao-e-configuracao-do-suricato/instalacao-do-suricato/integracao-suricato-totvs/webservice-suricato-totvs/servidor-de-aplicacao-wildfly.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
