Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

Migrar o OpenMRS para DB2 e WebSphere Application Server

Tian Tian Gao, Software Engineer, IBM
Photo of Tian Gao
Tian Tian Gao é engenheira de software e trabalha no Instituto de Tecnologias Emergentes do IBM China Development Laboratory (CDL). Atualmente, ela está comprometida com trabalhos relacionados a normas e assistência médica.

Resumo:  O OpenMRS® é um projeto colaborativo de software livre para desenvolver software de apoio à prestação de assistência médica em países em desenvolvimento. Saiba como migrar o OpenMRS para o IBM® DB2® e IBM WebSphere® Application Server. Este artigo mostra como preparar o banco de dados, importar o código de origem e modificar o projeto para WebSphere Application Server.

Data:  28/Nov/2011
Nível:  Introdutório Também disponível em :   Inglês
Atividade:  831 visualizações
Comentários:  


Introdução

O Open Medical Record System (OpenMRS), criado em 2004, é um projeto colaborativo de software livre para desenvolver software de apoio à prestação de assistência médica em países em desenvolvimento. É um aplicativo da web que permite projetar um sistema de prontuários médicos customizado, mesmo sem conhecimento de programação. Mas é necessário ter conhecimento de análise médica e de sistemas. O OpenMRS fornece a capacidade de incluir ou substituir módulos de pacote configurável. Também dispõe de funções de customização flexíveis. As plataformas para os projetos OpenMRS são o Apache Tomcat e MySQL.

Neste artigo, aprenderemos a migrar o OpenMRS para IBM DB2 e IBM WebSphere Application Server. Instruções passo a passo mostrarão como migrar do MySQL para DB2 e como importar o projeto para seu ambiente de desenvolvimento. Saiba como fazer as modificações necessárias para o DB2 e WebSphere Application Server, e a implementar o arquivo EAR.

Pré-requisitos

As seguintes versões de produto se aplicam a este artigo:

  • DB2 versão 9.7
  • WebSphere Application Server versão 7.0.0.17
  • OpenMRS versão 1.7.2.

Algumas informações deste artigo talvez não se apliquem a versões mais recentes desses produtos.

Para acompanhar este artigo, supõe-se que o leitor tenha OpenMRS implementado em MySQL e Tomcat. Para obter ajuda com a implementação, consulte Installing OpenMRS.


Migrar o banco de dados de MySQL para DB2

Acrônimos usados frequentemente

  • EAR: archive corporativo
  • J2EE: Java™ 2 Platform Enterprise Edition
  • JAR: arquivo de Java archive
  • JDBC: Java Database Connectivity
  • JRE: Java Runtime Environment
  • JSP: JavaServer Pages
  • XML: linguagem de marcação extensível

A primeira tarefa é preparar o banco de dados. Antes da migração, execute as seguintes etapas.

  1. O usuário atual deve ter privilégios de DB2AMNS para o banco de dados DB2. Para obter o privilégio, execute o seguinte script para incluir o usuário atual no grupo de administradores do DB2.

    net localgroup DB2ADMNS %username% /add
    net localgroup DB2USERS %username% /add
    

  2. Crie um banco de dados DB2 chamado Openmrs e confirme se o usuário atual tem permissões para esse banco de dados. Para isso, clique com o botão direito do mouse no banco de dados Openmrs no DB2 Control Center para ver os privilégios do usuário, como mostrado na Figura 1.

    Figura 1. Privilégios do banco de dados do usuário


  3. Prepare os arquivos JAR de driver JDBC do MySQL e DB2. Os arquivos JAR de driver encontram-se no diretório de instalação do seu banco de dados.
    • No MySQL, o nome do driver provavelmente é mysql-connector-java-5.1.7-bin.jar
    • No DB2 haverá dois arquivos JAR: db2jcc.jar e db2jcc_license_cu.jar
  4. Confirme se o seu driver JDBC do DB2 é posterior à versão 3.0. Verifique a versão executando o comando java com.ibm.db2.jcc.DB2Jcc -version . A Figura 2 mostra o resultado de amostra.

    Figura 2. Versão do driver JDBC


Para usar o OpenMRS é preciso ter o banco de dados em MySQL. Para alcançar a meta de migração, é preciso ter uma ferramenta de migração de dados. A IBM Data Movement Tool pode ajudar nas tarefas de migração de dados. (Consulte Recursos para obter mais informações sobre essa ferramenta.)

Execute estas etapas para migrar os dados de demonstração do OpenMRS de MySQL para DB2:

  1. Abra a interface com o usuário da IBM Data Movement Tool, como mostrado na Figura 3.
  2. Selecione o banco de dados de origem MySQL e preencha as propriedades dele com base na sua configuração.
  3. Selecione JDBC Drivers, in my environment, MySQL version 5.0 e o driver de conector JDBC será mysql-connector-java-5.1.7-bin.jar.

    Clique em Connect to MySQL para verificar se a conexão funciona. Depois disso, selecione o banco de dados openmrs.

  4. Preencha as propriedades do banco de dados DB2.
  5. Escolha JDBC Drivers para DB2. O arquivo JAR encontra-se no seu diretório de instalação de DB2 (por exemplo, C:\Arquivos de Programas\IBM\SQLLIB\java\).

    Dois arquivos JAR serão necessários: db2jcc.jar e db2jcc_license_cu.jar (o arquivo JAR de licença).


Figura 3. Configuração da propriedade de movimentação de dados

(Veja uma versão ampliada da Figura 3.)

Clique em Connect to DB2 para verificar se a conexão funciona. Se a instância for visível na sua estação de trabalho, poderá continuar a movimentação de dados. Após clicar em Extract DDL/Data, aparecerão as mensagens de informação da ferramenta na guia View File , como mostrado na Figura 4.


Figura 4. Extrair DDL e os dados

Localize um arquivo chamado db2gen.cmd no diretório de saída sob o diretório de instalação da ferramenta. Nesse ponto, é possível extrair os scripts para fazer a implementação de banco de dados. Clique em Deploy DDL/Data. O console deve se parecer à Figura 5. Compare as contagens de linhas para verificar se algum dado não foi executado corretamente.


Figura 5. Implementar objetos de dados

Também é possível alterar as propriedades de migração alterando os valores do arquivo IBMExtract.properties, que é o diretório-raiz da IBM Data Movement Tool.


Importar o projeto para o ambiente de desenvolvimento

São necessárias algumas modificações de código para migrar o OpenMRS para DB2 e WebSphere Application Server. A primeira etapa é importar o código de origem para seu ambiente de desenvolvimento. O ambiente de desenvolvimento deve fornecer a capacidade de desenvolver projetos em Java EE. O Eclipse é uma boa opção. Faça o download do código de origem do OpenMRS. (A versão 1.7.2 foi usada neste artigo.)

Certifique-se de que seu JRE seja posterior à versão 1.4. Para verificar a versão do seu JRE, execute o comando java -version , como mostrado na Figura 6..


Figura 6. Verificação da versão de JRE


Modificar o projeto para WebSphere Application Server

Para garantir que o código possa ser executado em WebSphere Application Server, é preciso desenvolver o projeto como arquivo EAR e implementar o arquivo EAR no WebSphere Application Server.

Incluir o arquivo de implementação

Para permitir que o projeto seja desenvolvido em arquivo EAR, inclua o arquivo de implementação J2EE application.xml nele.

No diretório de metadados, inclua uma pasta chamada META-INF, que contenha o appliction.xml que será o descritor de implementação ao implementar esse arquivo EAR no WebSphere Application Server. Ele diz ao WebSphere Application Server qual é o módulo da web do aplicativo e a raiz de contexto dele. O conteúdo do arquivo XML é mostrado na Listagem 1.


Listagem 1. Arquivo XML

<?xml version="1.0" encoding="UTF-8"?>
<application id="Application_ID" version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
	<display-name>openmrsEAR</display-name>
	<module>
		<web>
			<web-uri>openmrs.war</web-uri>
			<context-root>openmrs</context-root>
		</web>
	</module>
</application>

Após incluir o arquivo, seu ambiente de desenvolvimento deve se parecer à Figura 7.


Figura 7. Importar projeto para o Eclipse

Modificar a configuração de propriedade de JSP

O projeto inclui um servlet chamado jsp configurado em web.xml, como mostrado na Listagem 2.


Listagem 2. Servlet jsp

<servlet-mapping>
		<servlet-name>jsp</servlet-name>
		<url-pattern>*.withjstl</url-pattern>
</servlet-mapping>

A solicitação URL com o sufixo withjstl será manipulada por esse servlet jsp , mas o que é o servlet jsp ? No Tomcat, é possível localizar esse servlet jsp configurado em web.xml, sob o diretório tomcat-root/conf/, como mostrado na Listagem 3.


Listagem 3. Servlet jsp em web.xml

        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>

Mais importante ainda, a solicitação withjstl será manipulada pela classe JspServlet , definida no núcleo jasper do Tomcat. Mas se não houver a mesma classe no WebSphere Application Server, como o aplicativo poderá gerenciar essa solicitação da web? Para resolver o problema, é possível incluir uma configuração no web.xml do projeto.

  1. Abra o arquivo web.xml e localize o elemento <jsp-config> nele.
  2. Como mostra a Listagem 4, inclua o elemento <jsp-property-group> como filho dentro do elemento <jsp-config> .

    Listagem 4. <jsp-property-group>
    
    <jsp-property-group>
    <url-pattern>*.withjstl</url-pattern>
    </jsp-property-group>
    

O grupo de propriedades JSP é definido ao nomear o grupo e especificar os padrões de URL. Ao incluir esse elemento, os padrões de URL são manipulados como arquivo JSP se um recurso corresponder a withjstl.


Modificar o projeto para DB2

Como se vê na pasta src, o código de origem tem duas pastas filho: api e web. Durante a implementação, as classes da pasta api serão compactadas em um arquivo JAR chamado openmrs-api-version.subversion-.jar. Para migrar esse projeto para um banco de dados em DB2, é preciso um conector JDBC para DB2.

Incluir o driver JDBC de DB2

Use as seguintes etapas para colocar o driver JDBC de DB2 no projeto.

  1. Crie uma nova subpasta chamada db2 sob a pasta lib do projeto.
  2. Copie os drivers JDBC de DB2 para a pasta db2 e inclua-os no caminho de classe.
  3. Inclua o caminho de driver de banco de dados em lib.properties incluindo as linhas da Listagem 5 em lib.properties (o arquivo que fornece ao Ant a configuração de variável lib JAR durante o desenvolvimento).



    Listagem 5. Incluir em lib.properties

    
    #
    # DB2 Java Connector
    #
    database.dir=${lib.dir}/db2
    

Modificar a configuração de hibernação

Substitua hibernate.default.properties pelo que se encontra na Listagem 6.


Listagem 6. Propriedades de hibernação

# Default (overridable) with runtime properties file
# Connection Properties -->
hibernate.connection.username=your db2 user name
hibernate.connection.password=your db2 password
hibernate.connection.driver_class=com.ibm.db2.jcc.DB2Driver
hibernate.connection.url=jdbc:db2://localhost:50000/OpenMRS

# Hibernate specific connection/debug properties
hibernate.show_sql=true
hibernate.format_sql=true
hibernate.lazy=true
hibernate.dialect=org.hibernate.dialect.DB2Dialect

# Hibernate specific connection pool properties		
hibernate.c3p0.max_size=50
hibernate.c3p0.min_size=0
hibernate.c3p0.timeout=100
hibernate.c3p0.max_statements=0
hibernate.c3p0.idle_test_period=3000
hibernate.c3p0.acquire_increment=1

# Hibernate debugging options
hibernate.generate_statistics=true
hibernate.cache.use_structured_entries=true

# Shouldn't need to override these properties
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
hibernate.connection.provider_class=org.hibernate.connection.C3P0ConnectionProvider
hibernate.connection.release_mode=after_transaction
hibernate.jdbc.use_get_generated_keys=false

Nesse sistema, a hibernação mapeará as tabelas do banco de dados relacional com classes de entidade de acordo com o arquivo *.hbm.xml, de modo que sua operação nos objetos transportará as tabelas correspondentes do banco de dados. A estratégia de geração de chave primária de hibernação inclui o seguinte.

Assigned
Especifica o novo valor da chave primária paro o aplicativo.
Increment
A nova chave primária será gerada pela hibernação por meio do modo de incremento durante a operação.
Native
A chave primária gerará usando diferentes estratégias de acordo com diferentes bancos de dados.
UUID
Identificador exclusivo universal.
Foreign
Usa uma chave estrangeira de algumas outras tabelas.
Sequence
Usa o mecanismo de sequência para gerar a chave primária fornecida por um banco de dados específico, como Oracle. O método de geração da chave primária em OpenMRS é identity.

É possível visualizar a configuração no arquivo de configuração de mapeamento de hibernação. A Listagem 7 mostra o exemplo PatientIdentifier.hbm.xml.


Listagem 7. PatientIdentifier.hbm.xml

<id name="patientIdentifierId" type="int" column="patient_identifier_id"
		unsaved-value="0">
		<generator class="identity" />
</id>

Identity usará o mecanismo de geração de chave primária fornecido pelo banco de dados; o valor da chave primária é completamente gerenciado pelo banco de dados. A Listagem 8 mostra o código que estará visível na classe IdentityGenerator no pacote de hibernação em org.hibernate.id.


Listagem 8. Classe IdentityGenerator

public InsertGeneratedIdentifierDelegate getInsertGeneratedIdentifierDelegate(
	            PostInsertIdentityPersister persister,
	            Dialect dialect,
	            boolean isGetGeneratedKeysEnabled) throws HibernateException {
	        if ( isGetGeneratedKeysEnabled ) {
	            return new GetGeneratedKeysDelegate( persister, dialect );
	        }
	        else if ( dialect.supportsInsertSelectIdentity() ) {
	            return new InsertSelectDelegate( persister, dialect );
primary key generation mechanism	        }
	        else {
	            return new BasicDelegate( persister, dialect );
	        }
	    }

A propriedade hibernate.jdbc.use_get_generated_keys permite usar JDBC3 PreparedStatement.getGeneratedKeys() para recuperar chaves geradas de forma nativa após a inserção. A propriedade exige um driver JDBC posterior à versão 3 e JRE posterior à versão 4. Se essa propriedade não for incluída, aparecerá a exceção: "The database returned no natively generated identity value."

Modificar a configuração do tempo de execução do projeto

Para modificar o ambiente de tempo de execução do projeto, há duas tarefas básicas.

  • Modifique context.xml

    O aplicativo verificará se pode se conectar ao banco de dados e, se este está vazio, na primeira vez em que o aplicativo é executado. O arquivo context.xml é a configuração que o aplicativo usa para o processo de verificação.

    No tempo de execução, o aplicativo:

    • Executará a instrução selecionada para verificar se os dados do usuário estão no banco de dados.
    • Determinará se a inicialização é necessária.

    Modifique o arquivo para incluir as informações da Listagem 9 para que o sistema possa se conectar ao banco de dados. Confirme se o usuário de DB2 tem privilégios para acessar e operar o banco de dados.



    Listagem 9. context.xml
    
    <?xml version="1.0" encoding="UTF-8"?>
    <Context antiJARLocking="true" reloadable="false" useHttpOnly="false">
    <Resource name="jdbc/OpenMRS"
    auth="Container"
    type="javax.sql.DataSource"
    factory="org.apache.commons.dbcp.BasicDataSourceFactory"
    validationQuery="SELECT * FROM users"
    url="jdbc:db2://localhost:50000/OpenMRS"
    driverClassName="com.ibm.db2.jcc.DB2Driver"
    username="your db2 user name"
    password="your db2 password"
    maxWait="3000"
    maxIdle="100"
    maxActive="10" />
    </Context>
    

  • Desative o filtro de atualização

    O filtro de atualização configurado no arquivo web.xml verificará a atualização de banco de dados executando alguns comandos de MySQL. Para migrar o projeto para DB2, desative esse filtro de atualização. É possível apenas excluir o filtro, mas é melhor prática colocá-lo entre comentários (<!-- -->), como mostrado na Listagem 10.



    Listagem 10. Desativar filtro
    
    <!--filter>
            <filter-name>UpdateFilter</filter-name>
            <filter-class>org.openmrs.web.filter.update.UpdateFilter</filter-class>
        </filter>
        <filter-mapping>
    	 <filter-name>UpdateFilter</filter-name>
    	 <url-pattern>/*</url-pattern>
    </filter-mapping-->
    

    Inclua openmrs-runtime.properties, uma configuração de propriedade de tempo de execução, no seu aplicativo. Como mostra a Listagem 11, o aplicativo OpenMRS será conectado ao banco de dados usando a configuração desse arquivo no tempo de execução.



    Listagem 11. openmrs-runtime.properties
    
    #Auto generated by OpenMRS initialization wizard
    #Fri Apr 08 15:53:48 CST 2011
    module.allow_web_admin=true
    connection.url=jdbc:db2://localhost:50000/openmrs
    connection.username=your db2 user name
    connection.password=your db2 password
    auto_update_database=false
    

Modificar o método de classes

Para confirmar se o aplicativo pode usar o driver JDBC para DB2, é preciso fazer algumas modificações nos drivers de conexão com o banco de dados.

Substitua o método verifyConnection da classe InitializationFilter , que se encontra no pacote org.openmrs.web.filter.initialization, pelo mostrado na Listagem 12..


Listagem 12. Substitua verifyConnection

private boolean verifyConnection(String connectionUsername, String connectionPassword,
String databaseConnectionFinalUrl) {
        try {
                Class.forName("com.ibm.db2.jdbc.DB2Driver").newInstance();
	DriverManager.getConnection(databaseConnectionFinalUrl, connectionUsername,
                    connectionPassword);
		return true;			
	   }
	      catch (Exception e) {
	errors.add("User account " + connectionUsername + " does not work. " 
                         + e.getMessage()
	+ " See the error log for more details");
                       // TODO internationalize this
                       log.warn("Error while checking the connection user account", e);
               	return false;
	       }
	}

Substitua o método loadDatabaseDriver da classe DatabaseUtil , que se encontra no pacote org.openmrs.util, pelo código da Listagem 13.


Listagem 13. Substitua loadDatabaseDriver

public static void loadDatabaseDriver(String connectionUrl) throws 
   ClassNotFoundException {
		if (connectionUrl.contains("mysql"))
			Class.forName("com.mysql.jdbc.Driver");
		else if (connectionUrl.contains("hsqldb"))
			Class.forName("org.hsqldb.jdbcDriver");
		else if (connectionUrl.contains("postgresql"))
			Class.forName("org.postgresql.Driver");
		else if (connectionUrl.contains("oracle"))
			Class.forName("oracle.jdbc.driver.OracleDriver");
		else if (connectionUrl.contains("jtds"))
			Class.forName("net.sourceforge.jtds.jdbc.Driver");
		else if (connectionUrl.contains("sqlserver"))
			Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
		else
			Class.forName("com.ibm.db2.jdbc.DB2Driver");
			
	}

Para evitar que o DB2 execute comandos incompatíveis, substitua o método updatesRequired da classe DatabaseUpdater , que se encontra no pacote org.openmrs.util, pelo código da Listagem 14.


Listagem 14. Substitua updatesRequired

public static boolean updatesRequired() throws Exception {
		log.debug("checking for updates");
		return false;
	}

Para evitar inicialização indesejados durante a primeira execução do aplicativo, substitua o método initializationRequired da classe InitializationFilter , que se encontra no pacote org.openmrs.web.filter.initialization. A Listagem 15 mostra um exemplo.


Listagem 15. Substitua initializationRequired

public static boolean initializationRequired() {
		return false;
	}

Neste ponto, o código de projeto funcionará com o banco de dados DB2. Contudo, para migrar para o WebSphere Application Server é preciso desenvolver o projeto em um arquivo EAR. É possível desenvolver o arquivo EAR com a ajuda de Ant. Inclua um destino chamado "ear" no arquivo build.xml de ant. No arquivo EAR, um arquivo WAR e um descritor de implementação de aplicativo da web são necessários. Inclua esse alvo, como mostrado na Listagem 16.


Listagem 16. Incluir alvo

<target name="ear" depends="package-web" description="build ear">
        <ear destfile="${dist.dir}/${webapp.name}.ear"
                  appxml="${metadata.dir}/META-INF/application.xml">
	    <fileset dir="${dist.dir}" includes="*.war"/>
	    <fileset dir="${metadata.dir}/META-INF"/>
          </ear>
   </target>


Implementar o arquivo EAR no WebSphere Application Server

Durante a inicialização do aplicativo, há um erro que envolve os filtros em execução fora de ordem. A ordem errada cria um erro de tempo de execução onde o contexto é utilizado de forma errada quando ainda não foi configurado. Para resolver o problema, é preciso um fix patch para seu WebSphere Application Server:

  • 7.0.0-WS-WASSDK-FP0000017.pak
  • 7.0.0-WS-WAS-FP0000017.pak

Faça o download da correção adequada para seu sistema operacional.

Modificar as propriedades customizadas

Se, neste ponto, seu arquivo EAR for implementado, aparecerão erros "403 Forbidden" no painel firebug Net, como mostrado na Figura 8.


Figura 8. Erros 403 Forbidden

O erro ocorre quando não se tem privilégios para acessar certos recursos da web. O aplicativo de exemplo retorna alguns recursos do diretório WEB-INF. No WebSphere Application Server, os recursos sob esse diretório estão protegidos, de modo que não se tem privilégios. Para resolver o problema, inclua uma propriedade na sua propriedade customizada do WebSphere Application Server.

  1. Abra o link Servers no Integrated Solutions Console do WebSphere Application Server.
  2. Clique nos tipos de servidor WebSphere application servers.
  3. Clique no nome do seu servidor (o exemplo usa server1) e depois em Web container -> Custom properties.
  4. Inclua uma nova propriedade chamada ExposeWEBINFonDispatch e configure Value como true, conforme mostrado na Figura 9.

Figura 9. Propriedades customizadas do servidor, WebSphere Application Server

A propriedade ExposeWEBINFonDispatch deve ser configurada como true para permitir que uma solicitação de despacho (encaminhar ou incluir) acesse um arquivo estático a partir do diretório WEB-INF do aplicativo.

Agora, a migração está concluída. Consulte a próxima seção se encontrar problemas.


Resolução de problemas

No processo de migração, talvez sejam encontrados erros similares aos descritos abaixo. Analise o log de erro e o fenômeno de erro para localizar a causa-raiz dele. Essa é a melhor maneira de resolver um erro.


ErroSugestão
Erro de conexão com o banco de dadosVerifique se o usuário tem os privilégios necessários e se ele pode acessar o esquema do banco de dados. Verifique se seu driver JDBC corresponde à versão do banco de dados; a conexão não funcionará com versões diferentes.
BUILD FAILED C:\Documents\openmrs-trunk\build.xml:150: Unable to find a javac compiler;com.sun.tools.javac.Main is not on the classpathTalvez JAVA_HOME não aponte para JDK. Atualmente, ele está configurado em C:\Arquivos de Programas\Java\jre6. Copie C:\Arquivos de Programas\Java\jdk1.6.0_10\lib\tools.jar para C:\Arquivos de Programas\Java\jre6\lib\ext.
Não é possível carregar o moduleXXFaça o download dos módulos correspondentes no diretório de implementação da pasta WEB-INF \ bundledModules. Localize os módulos na lista OpenMRS Module Repository .
Não há ContextLoaderListener registrado O mais provável é que o aplicativo não consiga carregar os arquivos de propriedade de tempo de execução no ambiente. Tente copiar esse arquivo para seu diretório-raiz webapps.



Download

DescriçãoNomeTamanhoMétodo de download
Sample code for this articleopenmrsear.zip37 MBHTTP

Informações sobre métodos de download


Recursos

Aprender

Obter produtos e tecnologias

Discutir

Sobre o autor

Photo of Tian Gao

Tian Tian Gao é engenheira de software e trabalha no Instituto de Tecnologias Emergentes do IBM China Development Laboratory (CDL). Atualmente, ela está comprometida com trabalhos relacionados a normas e assistência médica.

Ajuda para Relatar Abuso

Relatar abuso

Obrigado. Esta entrada foi sinalizada para atenção do moderador.


Ajuda para Relatar Abuso

Relatar abuso

Falha no envio do Relatório de abuso. Tente novamente mais tarde.


developerWorks: Registre-se


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Selecione seu nome de exibição

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

(Deve possuir de 3 a 31 caracteres.)


Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Classificar este artigo

Comentários

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Industries, Software livre, Information Management, WebSphere
ArticleID=777542
ArticleTitle=Migrar o OpenMRS para DB2 e WebSphere Application Server
publish-date=11282011

Conheça a IBM da sua cidade

Virtual Branch Office Brasil

A IBM está mais perto do que você imagina!


Tags

Help
Use o campo de pesquisa para encontrar todos os tipos de conteúdo no My developerWorks com essa tag.

Use a barra de rolagem para ver mais ou menos tags.

Tags populares mostra as principais tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Minhas tags mostra suas tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Use o campo de pesquisa para localizar todos os tipos de conteúdo no Meu developerWorks com essa tag. Tags populares mostra as tags principais para essa zona de conteúdo particular (por exemplo, tecnologia Java, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere). Minhas tags mostra as suas tags para essa zona de conteúdo em particular (por exemplo, tecnologia Java, Linux, WebSphere).