Implementando o Document Builder no perfil WebSphere Application Server Liberty

É possível implementar o Rational Publishing Engine Document Builder no WebSphere Application Server Liberty com o banco de dados do IBM® DB2, do Oracle ou do Derby que estiver incluído com o aplicativo da web Document Builder (apenas para fins de avaliação).

Antes de Iniciar

Deve-se instalar o WebSphere Application Server Liberty e o Rational Publishing Engine com o recurso RPE Document Builder antes de implementar o Document Builder.

Procedimento

  1. Crie um servidor de perfil Liberty para o Document Builder.
  2. Implemente o arquivo com.ibm.rpe.web.app.ear copiando-o do diretório RPE_HOME\document-builder para o diretório apps do Liberty. Consulte Implementando um aplicativo da web para o perfil Liberty na documentação do produto WebSphere Application Server Liberty.
  3. Crie um banco de dados para o Document Builder com 16 mil páginas e o conjunto de códigos UTF-8.
  4. Para DB2 ou Oracle, configure a variável VCAP_SERVICES (não necessária para Derby):
    • Para Windows: inclua o texto a seguir no arquivo <Liberty_install_dir>\bin\server.bat :
      set VCAP_SERVICES={"sqldb": [{}]}
    • Para Linux: inclua o texto a seguir no arquivo <Liberty_install_dir>\bin\server.sh:
      export VCAP_SERVICES={"sqldb":[{}]}
  5. (Opcional) se você tiver implementado os arquivos rpeng.war e dgaas.war em servidores ou máquinas de aplicativos diferentes, então deve-se configurar a variável DGAAS_URL. Se você tiver implementado o arquivo com.ibm.rpe.web.app.ear, será possível pular esta etapa.
    • Para Windows: inclua o texto a seguir no arquivo <Liberty_install_dir>\bin\server.bat :
      set DGAAS_URL="http://[server IP]:[port]/dgaas/"
    • Para Linux: inclua o texto a seguir no arquivo <Liberty_install_dir>\bin\server.sh:
      export DGAAS_URL="http://[server IP]:[port]/dgaas/" 
  6. Edite o arquivo server.xml para configurar a conectividade do banco de dados para o perfil Liberty.
    1. Inclua os seguintes recursos:
      <featureManager>
                 <feature>jsp-2.2</feature> 
                 <feature>servlet-3.0</feature> 
                 <feature>appSecurity-2.0</feature> 
                 <feature>jndi-1.0</feature>   
                 <feature>jpa-2.0</feature>  
                 <feature>jdbc-4.0</feature>
          </featureManager>
    2. Defina uma biblioteca compartilhada que aponte para o local do seu JAR do driver JDBC ou para arquivos compactados (não necessário para Derby).
      Para DB2:
      <jdbcDriver id="db2-lib">
                 <library>
                     <fileset caseSensitive="false" dir="C:\Program Files\IBM\SQLLIB\java"/>  
                 </library> 
                </jdbcDriver>
      Para Oracle:
      <jdbcDriver id="OracleLib">
                 <library>
                      <fileset caseSensitive="false" dir="/oracle_jdbc" includes="*.jar">  
                 </library> 
                </jdbcDriver>
    3. Defina uma origem de dados usando o driver JDBC para as origens de dados rpeng e dgaas com detalhes de conexão (não necessário para Derby).
      Para DB2:
      <dataSource id="rpeng" jdbcDriverRef="db2-lib" jndiName="jdbc/RPENG_DB">
                 <properties.db2.jcc databaseName="databasename" password="password" serverName="ipaddress" user="db2admin"/>
                </dataSource> 
               <id="DGAAS_DB" jdbcDriverRef="db2-lib" jndiName="jdbc/DGAAS_DB">
                 <properties.db2.jcc databaseName="databasename" password="password" serverName="ipaddress" user="db2admin"/>
                </dataSource> 
      Para Oracle:
       <dataSource id="rpeng_db" jdbcDriverRef="OracleLib" jndiName="jdbc/RPENG_DB">
             <properties.oracle password="password" URL="jdbc:oracle:thin:@//hostname/lib1" user="rpe_user"/>
          </dataSource>
          <dataSource id="DGAAS_DB" jdbcDriverRef="db2-lib" jndiName="jdbc/DGAAS_DB">
             <properties.oracle password="password" URL="jdbc:oracle:thin:@//hostname/lib1" user="rpe_user"/>
          </dataSource>
    Consulte Configurando a conectividade do banco de dados no perfil do Liberty na documentação do produto WebSphere Application Server Liberty.
  7. No arquivo server.xml, inclua a seguinte entrada para ativar o http://server:port/dgaas/debug:
    <classloading useJarUrls="true"/>
  8. No arquivo server.xml, inclua a seguinte entrada para invalidar uma sessão em vez de emitir uma mensagem de erro UnauthorizedSessionRequestException quando o gerenciador de sessão responde a uma solicitação desautorizada:
    <httpSession invalidateOnUnauthorizedSessionRequestException="true" cookieSecure="true"></httpSession>
  9. Inclua a seguinte configuração para o arquivo server.xml. Os atributos id e name são opcionais. O atributo location não precisa ser totalmente qualificado, uma vez que Liberty aparecerá no diretório de aplicativos por padrão.
    Para DB2:
    <application id="" name="rpeng" type="ear" location="[Liberty_install_dir]\usr\servers\rpeng\apps\com.ibm.rpe.web.app.ear" >
         <classloader apiTypeVisibility="spec,ibm-api,api"/>
    </application>
    Para Oracle:
    <application type="ear" location="/opt/IBM/WebSphere/Liberty/usr/servers/rpe_oracle/apps/com.ibm.rpe.web.app.ear">
           <classloader apiTypeVisibility="spec, ibm-api, api" commonLibraryRef="rcl" />
          
    Se você tiver implementado os arquivos rpeng.war e dgaas.war em vez do arquivo .ear, será necessário incluir 2 entradas do aplicativo em vez de uma:
    <application id="" name="rpeng" location="rpeng.war" type="war>
         <classloader commonLibraryRef="rcl" apiTypeVisibility="spec,ibm-api,api"/>
    </application>
    <application id="" name="dgaas" location="dgaas.war" type="war>
         <classloader commonLibraryRef="rcl" apiTypeVisibility="spec,ibm-api,api"/>
    </application>
  10. Verifique suas definições de configuração com relação ao exemplo de server.xml disponível na parte inferior deste tópico na seção Exemplo.
  11. Configure a variável de licenciamento. Consulte Verificando a variável de ambiente TELELOGIC_LICENSE_FILE.
  12. Inicie o perfil do Liberty. Quando a geração de documento for executada, todos os ativos e dados serão armazenados no banco de dados.

Resultados

É possível confirmar que o Document Builder está implementado abrindo a página introdutória em um navegador em http://server:port/rpeng/
Lembre-se: Se você encontrar uma mensagem de erro UnauthorizedSessionRequestException no navegador da web, verifique se você concluiu a etapa anterior que inclui a seguinte entrada do arquivo server.xml:
<httpSession invalidateOnUnauthorizedSessionRequestException="true"></httpSession>

Exemplo

Para DB2: um exemplo do arquivo server.xml configurado para implementar o Document Builder:
<?xml version="1.0" encoding="UTF-8"?>
<server description="new server">
    <!-- Ativar recursos -->
    <featureManager>
       <feature>jsp-2.2</feature>
       <feature>jndi-1.0</feature>
       <feature>jpa-2.0</feature>
       <feature>jdbc-4.0</feature>
       <feature>servlet-3.0</feature>
       <feature>appSecurity-2.0</feature>
    </featureManager>
    <!-- Para acessar este servidor de um cliente remoto, inclua
um atributo de host para o seguinte elemento, por exemplo,
host="*" -->
    <httpEndpoint id="defaultHttpEndpoint" httpPort="9080" httpsPort="9443" host="localhost"/>
    <classloading useJarUrls="true"/>
    <!-- Criação do usuário -->
    <basicRegistry id="form" realm="WebRealm">
       <user name="rpe_user" password="xyz" />
       <user name="rpe_report_designer" password="xyz" />
       <user name="rpe_admin" password="xyz" />
    </basicRegistry>
    <application type="ear" location="C:\IBM\WebSphere\Liberty\usr\servers\rpeng\apps\com.ibm.rpe.web.app.ear">
       <classloader apiTypeVisibility="spec, ibm-api, api" commonLibraryRef="rcl" />
       <application-bnd>
          <security-role name="rpe_user">
             <user name="rpe_user" />
          </security-role>
          <security-role name="rpe_report_designer">
             <user name="rpe_report_designer" />
          </security-role>
          <security-role name="rpe_admin">
             <user name="rpe_admin" />
          </security-role>
       </application-bnd>
    </application>
    <httpSession invalidateOnUnauthorizedSessionRequestException="true"></httpSession>
    <!-- Configuração do Banco de Dados -->
    <jdbcDriver id="db2-lib">
       <library>
          <fileset caseSensitive="false" dir="C:\Program Files\IBM\SQLLIB\java"/>
       </library>
    </jdbcDriver>
    <dataSource id="rpeng" jdbcDriverRef="db2-lib" jndiName="jdbc/RPENG_DB">
       <properties.db2.jcc databaseName="databasename" password="password" serverName="ipaddress" user="db2admin"/>
    </dataSource>
    <dataSource id="DGAAS_DB" jdbcDriverRef="db2-lib" jndiName="jdbc/DGAAS_DB">
       <properties.db2.jcc databaseName="databasename" password="password" serverName="ipaddress" user="db2admin"/>
    </dataSource>
</server>
Para o Oracle: um exemplo do arquivo server.xml configurado para implementar o Document Builder:
<?xml version="1.0" encoding="UTF-8"?>
<server description="new server">
    <!-- Ativar recursos -->
    <featureManager>
       <feature>jsp-2.2</feature>
       <feature>jndi-1.0</feature>
       <feature>jpa-2.0</feature>
       <feature>jdbc-4.0</feature>
       <feature>servlet-3.0</feature>
       <feature>appSecurity-2.0</feature>
       <feature>ssl-1.0</feature>
    </featureManager>
    <!-- Para acessar este servidor de um cliente remoto, inclua
um atributo de host para o seguinte elemento, por exemplo,
host="*" -->
    <httpEndpoint id="defaultHttpEndpoint" httpPort="9445" httpsPort="9082" host="localhost"/>
    <keystore id="defaultKeyStore" password="password"/>
    <classloading useJarUrls="true"/>
   <httpSession cookieSecure="true invalidateOnUnauthorizedSessionRequestException="true"></httpSession>
    <!-- Criação do usuário -->
    <basicRegistry id="form" realm="WebRealm">
       <user name="rpe_user" password="xyz" />
       <user name="rpe_designer" password="xyz" />
       <user name="rpe_admin" password="xyz" />
    </basicRegistry>
   <!-- Define licensing Library consumption for RPE  -->
    <application type="ear" location="/opt/IBM/WebSphere/Liberty/usr/servers/rpe_oracle/apps/com.ibm.rpe.web.app.ear">
       <classloader apiTypeVisibility="spec, ibm-api, api" commonLibraryRef="rcl" />
       <application-bnd>
          <security-role name="rpe_user">
             <user name="rpe_user" />
          </security-role>
          <security-role name="rpe_report_designer">
             <user name="rpe_designer" />
          </security-role>
          <security-role name="rpe_admin">
             <user name="rpe_admin" />
          </security-role>
       </application-bnd>
    </application>
   
    <!-- Configuração do Banco de Dados -->
    <jdbcDriver id="OracleLib">
       <library>
          <fileset caseSensitive="false" dir="/oracle_jdbc" includes="*.jar">
       </library>
    </jdbcDriver>
    <dataSource id="rpeng_db" jdbcDriverRef="OracleLib" jndiName="jdbc/RPENG_DB">
       <properties.oracle password="password" URL="jdbc:oracle:thin:@//hostname/lib1" user="rpe_user"/>
    </dataSource>
    <dataSource id="DGAAS_DB" jdbcDriverRef="db2-lib" jndiName="jdbc/DGAAS_DB">
       <properties.oracle password="password" URL="jdbc:oracle:thin:@//hostname/lib1" user="rpe_user"/>
    </dataSource>
</server>

O que Fazer Depois

Opcionalmente, é possível implementar e executar o aplicativo de amostra Newskeeper que usa a tecnologia de serviço de geração de documento para gerar documentos e fornece uma interface de armazenamento para os documentos e ativos de serviço de geração de documento. Para obter mais detalhes, consulte Executando a amostra do Newskeeper.

Configure o Rational Publishing Engine Document Builder listado na página http://server:port/rpeng/. Consulte URLs do Document Builder para obter uma explicação de como cada URL é usada e as tarefas para configuração de cada um dos recursos.