Resolvendo problemas de encoding no Linux

Para quem trabalha em equipes que desenvolvem em Windows e não se preocupam com encoding ou em projetos que foram desenvolvidos somente em Windows e executam em servidores Linux ou precisam ser desenvolvidos em Linux, um problema recorrente é a abertura de arquivos com encoding ISO-8859-1 (ou Cp1252/Windows-1252, um superset do ISO-8859-1). No Linux, esses arquivos ficam com pontos de interrogação onde existem caracteres especiais (acentuação, cedilha, …).

««« Clique aqui para ler o restante do conteúdo: Resolvendo problemas de encoding no Linux »»»

Otimizando o JDeveloper

Estou utilizando a versão 11.1.1.5.0 generic no Linux, mas para outras plataformas as configurações são similares. O arquivo principal de configuração (jdev.conf) do JDeveloper está localizados na pasta $MW_HOME/jdeveloper/jdev/bin.

A primeira linha desse arquivo indica onde temos outras configurações: IncludeConfFile ../../ide/bin/ide.conf. O primeiro passo é abrir esse arquivo (ide.conf) e alterar os parametros Xmx e Xms. O parâmetro Xms é referente à quantidade de memória heap inicial a ser utilizada e o Xmx é a quantidade máxima. Minha máquina possui 8GB de RAM. Para o meu JDeveloper, 2GB de máximo e 1GB de mínimo é suficiente. O recomendado é 1/4 do total de memória que a máquina possua, mas você deve levar em consideração que poderá subir outros servidores e outras aplicações que irão consumir memória. Então aumentar muito esse valor, pode fazer com que a sua máquina utilize swap e, ao invés de deixar o JDeveloper mais rápido, sua máquina irá acabar ficando mais lenta. Então eu alterei minha máquina para os seguintes valores: “AddVMOption  -Xmx2048M” e “AddVMOption  -Xms1024M”.

««« Clique aqui para ler o restante do conteúdo: Otimizando o JDeveloper »»»

Manipulando Token de Segurança

qrcodeEsses dias tive um desafio bem bacana, que foi gravar e ler informações em um dispositivo de segurança programado em Java. O dispositivo é o Alladin eToken Pro 72K (Java).

eToken

eToken

Utilizei ele para autenticação de duas vias, conforme descrito nesse post, mas foi necessário armazenar algumas informações de segurança para aderir a requisição de um cliente na implantação dos requisitos impostos pelo PCI Security Standards Council na criptografia de dados, para não cair na mesma falha que a Playstation Network.

««« Clique aqui para ler o restante do conteúdo: Manipulando Token de Segurança »»»

Instalando o Java do jeito Ubuntu 11.04

qrcodePara instalar o Java (tanto JRE quanto JDK) no Ubuntu 11.04, o procedimento é similar ao do 10.10. Habilite o repositório de parceiros: acesse System, Administration, Synaptic Package Manager. Acesse Settings, Repositories, Other Software e habilite os repositórios do Canonical Partners. Feche o Synaptic, acesse o terminal e digite o seguinte (você pode instalar esses pacotes pelo Synaptic também):

««« Clique aqui para ler o restante do conteúdo: Instalando o Java do jeito Ubuntu 11.04 »»»

Aplicações Nativas (C/C++) no Android

qrcodeEm alguns casos quando é necessário um controle fino de alocação e desalocação de memória, por exemplo, em trechos com estruturas de dados específicas e onde o desempenho através do controle do uso de memória é essencial, o Android oferece o mesmo recurso que o Java SE (JNI) para chamadas de código nativo na plataforma. Esse tipo de recurso deve ser utilizado com cautela, pois aumenta a complexidade do projeto e nem sempre aumenta o desempenho da aplicação. Caso você saiba o que está fazendo e as implicações do uso da linguagem C/C++ com o uso de ponteiros e alocação e desalocação de memória você poderá utilizar o Android NDK para isso.

««« Clique aqui para ler o restante do conteúdo: Aplicações Nativas (C/C++) no Android »»»

Ambiente de desenvolvimento Android

Para desenvolver na plataforma Android, a configuração do ambiente é muito simples. Irei executar os passos no Linux, mas o mesmo procedimento pode ser executado no Windows ou Mac sem grandes modificações.

O primeiro passo é fazer o download do SDK do Android no seguinte endereço: http://developer.android.com/sdk/. Faça também o Download do Eclipse (caso você não tenha): http://www.eclipse.org/downloads/. A versão Classic é mais leve e melhor para o desenvolvimento. Descompacte os dois arquivos: Android SDK e Eclipse. Para a versão do Android SDK no Windows, você tem a opção de utilizar um instalador, não sendo necessário descompactar.

Execute o Eclipse e escolha um workspace para desenvolvimento. Selecione Help, Install New Software, Add. Informe um nome e digite a seguinte URL: https://dl-ssl.google.com/android/eclipse/

Add Repository

Add Repository

Clique em OK. Marque Developer Tools e clique em Next. Clique em Next na próxima tela. Concorde com os termos e clique em Finish. Caso você tenha algum problema de segurança ou de autenticidade, clique em OK para prosseguir. Aguarde a instalação e clique em Restart Now.

Para configurar o Eclipse, vá em Window, Preferences. clique na aba Android. Ao clicar uma janela para envio de informações para o Google poderá ser exibida, clique em Proceed. Se você tiver problemas ao clicar, feche a janela de Preferences, clique em Proceed e abra novamente. Clique em Browse e informe o local que você descompactou o SDK e clique em Apply. Aparecerá uma mensagem que o SDK tools está faltando, clique em OK, pois iremos instalá-lo posteriormente.

Android SDK Verification

Android SDK Verification

Acesse Window, Android SDK and AVD Manager. Selecione Available Packages. Selecione Android SDK Platform-tools, Documentation for Android SDK (se você for querer a documentação para desenvolver), escolha os SDK Platform para os dispositivos que você vai querer desenvolver (a instalação de SDKs pode ser feita posteriormente), selecione Samples para ter exemplo de código de acordo com as versões de SDK Platform instalados. Recomendo também a instalação do Android Compatibility package para o desenvolvimento de aplicações para vários dispositivos. Caso queira trabalhar com mapas e recursos da Google, instale também o Google Inc. em Third party Add-ons. Clique em Install Selected. Na próxima tela, clique em Accept All e Install.

Choose Packages to Install

Choose Packages to Install

Caso solicite para reiniciar o ADB é só clicar em Yes. Clique em Close. Ambiente configurado!

Você pode também configurar o PATH para executar as ferramentas via linha de comando. Abra o seu arquivo: ~/.bashrc e digite o seguinte:

export PATH=${PATH}:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools

Substitua $ANDROID_SDK pelo caminho onde você descompactou o Android SDK. Digite: source ~/bashrc

Procure no site da fabricante do seu dispositivo Android também se há alguma outra ferramenta de desenvolvimento ou Add-on site para o Eclipse.

Agora é só configurar o emulador e começar a desenvolver sua aplicação. Abordarei isso em outro post.

Acessando o Xoom no Ubuntu

Ao plugar o Motorola Xoom no Linux, você não terá acesso direto ao dispositivo. Não há software (pelo menos eu não encontrei) da Motorola para o Xoom que tenha suporte ao Linux. Então após sofrer um pouco, testes e buscas em fóruns, conseguir fazer funcionar razoavelmente.

O primeiro passo é verificar as informações do dispositivo. Ligue o cabo o USB e digite: dmesg no console. Deverá aparecer uma linha semelhante à essa:

[ 8175.440025] usb 1-1: new high speed USB device using ehci_hcd and address 5

Isso significa que um dispositivo foi conectado no USB. Agora para recuperar as informações do dispositivo, digite: sudo lsusb -v no console. Irá aparecer todas as informações dos dispositivos USBs conectados. Procure pelo seguinte conteúdo.

Bus 001 Device 005: ID 18d1:70a8 Google Inc.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x18d1 Google Inc.
  idProduct          0x70a8
  bcdDevice           99.99
  iManufacturer           1 Motorola
  iProduct                2 MZ604
  iSerial                 3 xxxxxxxxxx <-- diferente para cada disp.
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           39
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xc0
      Self Powered
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol      0
      iInterface              8 MTP
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x05  EP 5 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x001c  1x 28 bytes
        bInterval               6
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0001
  Self Powered

A linha 1 tem a informação resumida do que está descrito na linha 10 (Vendor) e 11 (Product). Com essas informações dá pra gente passar pro udev como criar nosso dispositvo. Para isso crie um arquivo: /etc/udev/rules.d/90-motorola-xoom.rules

# Meu Motorola Xoom
ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="70a8", ENV{ID_GPHOTO2}="1", ENV{GPHOTO2_DRIVER}="proprietary", ENV{ID_MEDIA_PLAYER}="1", ENV{ID_MTP_DEVICE}="1", MODE="0664", GROUP="audio"

Alguns dispositivos possuem o idVendor e idProduct diferentes, portanto, execute o lsusb para verificar o valor desses atributos. Reinicie o udev com o comando: sudo service udev restart

Desconecte e conecte novamente o dispositivo. E pronto! Dispositivo reconhecido. Você pode transmitir arquivos para ele, mas para isso ser feito de forma correta, é necessário aplicativos com o suporte ao protocolo MTP. No Ubuntu existem vários: Nautilus, Rhythmbox, Bashee, …

Atualização 12/08/2011: Após o update para versão 3.1 do Android o Xoom ficou com outro idVendor e idProduct: ID 22b8:70a9 Motorola PCS. Então foi necessário alterar o script novamente.

Classe Runtime

A classe Runtime é utilizada para se comunicar com o ambiente que a JVM está executando. Por exemplo: utilizamos ela para carregar DLLs (Windows) ou SOs (Linux), através do método load. Cada aplicação Java possui uma única instância e podemos obter essa instância através do método estático getRuntime(). A seguir temos um exemplo de alguns métodos bem bacanas dessa classe:

package br.com.thiagovespa.system.utils;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class SystemInfo {
	public static String execute(String command) {
		String s;
		StringBuilder result = new StringBuilder();
		BufferedReader stdInput = null;
		try {
			Process p = Runtime.getRuntime().exec(command);
			stdInput = new BufferedReader(new InputStreamReader(
					p.getInputStream()));
			while ((s = stdInput.readLine()) != null) {
				result.append(s).append("\n");
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (stdInput != null) {
				try {
					stdInput.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		return result.toString();
	}
	public static void main(String[] args) {
		Runtime rt = Runtime.getRuntime();
		System.out.println("Número de processadores disponíveis: "
				+ rt.availableProcessors() + " \n");
		System.out.println(execute("free"));
		System.out.println("Memória disponível na JVM antes do GC: "
				+ rt.freeMemory() + " bytes de " + rt.totalMemory()
				+ " bytes - Máximo: " + rt.maxMemory() + " bytes");
		rt.gc();
		System.out.println("Memória disponível na JVM após o GC: "
				+ rt.freeMemory() + " bytes de " + rt.totalMemory()
				+ " bytes - Máximo: " + rt.maxMemory() + " bytes");
		rt.exit(0);
	}
}

Na linha 15 executamos um comando ou aplicativo externo. Para isso criei um método a parte. O exec possui várias sobrecargas podendo ser executado passando parâmetros, com variáveis de ambiente, entre outros. Nesse exemplo, ele executa o comando free do linux, e armazeno em uma String para exibir a quantidade de memória livre do sistema operacional. Esse mesmo código pode ser utilizado para executar qualquer comando ou aplicativo externo à uma aplicação Java. Existe a possibilidade de recuperar o stream de entrada, de saída e de erro para poder manipular o comando/aplicativo.

Na linha 41, tem um método interessante, que recupera a quantidade de processadores disponível para a máquina virtual. Esse recurso pode ser útil  no desenvolvimento de programas que executem código paralelo. Nas linhas 46 e 47, consigo monitorar a quantidade de memória livre, total e máxima alocada no momento para a aplicação Java.

A linha 48 é responsável por solicitar à JVM a execução do Garbage Collector para liberação de memória não referenciada. Pela especificação essa execução não é garantida, ao chamar esse método ele apenas sugere a execução. Uma outra forma de se chamar é pela classe System (System.gc()). Na linha 52 eu finalizo o programa com o código 0 (sem erro). Essa chamada não é necessária, mas ilustra um dos métodos da classe Runtime.

A saída desse programa é a seguinte:

Número de processadores disponíveis: 4
             total       used       free     shared    buffers     cached
Mem:       8193120    6553088    1640032          0     554160    2031860
-/+ buffers/cache:    3967068    4226052
Swap:      8193144          0    8193144
Memória disponível na JVM antes do GC: 124384688 bytes de 125698048 bytes - Máximo: 1866006528 bytes
Memória disponível na JVM após o GC: 124902352 bytes de 125698048 bytes - Máximo: 1866006528 bytes

Dessa maneira você pode ter um controle maior sobre sua aplicação e executar programas externos.

Instalação e Configuração do Oracle ECM

Atenção (19/04/2011): Esse tópico está em revisão e provavelmente sofrerá revisões. Contribuições são bem vindas!

O Oracle Universal Content Management (Oracle UCM) faz parte do Oracle Enterprise Content Management (Oracle ECM) e é utilizado para gerenciamento de conteúdo multi-site.

O primeiro passo é instalar o esquema do Enterprise Content Management utilizando o RCU. Na minha base já está ok. Se você tiver dúvidas de como fazer isso consulte o link Oracle Service Bus e procure por RCU.

Faça o download do Oracle UCM: http://www.oracle.com/technetwork/middleware/content-management/downloads/index-085241.html. Descompacte os dois zips. Acesse a pasta Disk1 e digite o seguinte:

./runInstaller

Informe o caminho do JRE/JDK. O instalador irá abrir.

Oracle Fusion Middleware 11g ECM Suite Installation - Step 1 of 7

Oracle Fusion Middleware 11g ECM Suite Installation - Step 1 of 7

Clique em Next. Escolha Skip Software Updates, se você não tiver Oracle Support, caso contrário, informe e clique em Search For Updates. Nessa versão que estou utilizando no momento não havia nenhum update. Clique em Next. Como eu estou instalando em um Ubuntu e ele não é homologado para softwares da Oracle, nessa próxima etapa haverá alguns erros de pré-requisito. Se você utilizar um SO homologado, verifique os erros ocorridos (se tiver), caso contrário clique em Continue.

Informe o caminho onde está instalado o WebLogic Server. Se você quiser pode alterar o Home Directory. Clique em Install na próxima tela. Aguarde o término da instalação e clique em Next. Clique em Finish.

Oracle Fusion Middleware 11g ECM Suite Installation - Step 7 of 7

Oracle Fusion Middleware 11g ECM Suite Installation - Step 7 of 7

Instalação concluída. Agora é necessário configurar os domínios. Cada aplicação deve ser instalada em seu próprio managed server ou cluster. Para a criação dos domínios, execute o utilitário de configuração de domínio:

./$ECM_ORACLE_HOME/common/bin/config.sh

Selecione Create new WebLogic domain e clique em Next. Marque os seguintes produtos:

  • Oracle Universal Records Management Server
  • Oracle Information Rights Management
  • Oracle Universal Content Management – Inbound Refinery
  • Oracle Universal Content Management – Content Server
  • Oracle Imaging and Process Management

 

Fusion Middleware Configuration Wizard-5

Fusion Middleware Configuration Wizard-5

Clique em Next. Informe o nome do domínio, se quiser alter a localização e caminho das aplicações e clique em Next. Informe o usuário administrativo e senha e clique em Next. Selecione Development Mode (no nosso caso), escolha a JDK e clique em Next.  Informe os dados de conexão com o banco criado anteriormente com o RCU e clique em Next.

Fusion Middleware Configuration Wizard-6

Fusion Middleware Configuration Wizard-6

Verifique se foi tudo bem sucedido e clique em Next. Clique em Next se não tiver nenhuma configuração adicional a ser feita. Clique em Create para criar o domínio. Clique em Done para finalizar.

Agora é necessário configurar os parâmetros de inicialização dos managed servers. Inicie o admin server:

./$DOMAIN_HOME/startWeblogic.sh

Aguarde o domínio iniciar e acesse o console: http://localhost:7001/console

Efetue o login e clique em Environment, Servers, faça o seguinte para cada servidor. Selecione ele, clique em Server Start. Na caixa Arguments, se a sua JVM for Sun, informe o seguinte:

-Xms256m -Xmx1024m -XX:CompileThreshold=8000 -XX:PermSize=128m -XX:MaxPermSize=512m

Se for JRockit:

-Xms256m -Xmx1024m -XnoOpt

Clique em Save.

Vamos subir o Oracle IBR utilizando o console, caso prefira pode subir via linha de comando. Habilite o NodeManager caso já não tenha feito:

./$MIDDLEWARE_HOME/oracle_common/common/bin/setNMProps.sh

Inicie o Node Manager:

./$MIDDLEWARE_HOME/wlserver_10.3/server/bin/startNodeManager.sh &

Vá em Environment, Machines, clique em New para criar uma nova Machine. Dê um nome e clique em Finish. Se você configurou os domínios em máquinas diferentes, crie uma Machine pra cada uma e configure adequadamente. Vá em Environment, Servers. Selecione cada Server, associe cada Machine e clique em Save.

Acesse o console do domínio, vá em Environment, Servers, Control, marque o IBR_server1 clique em Start. Após iniciar acesse o IBR (Inbound Refinery). Aqui na minha máquina é o seguinte endereço: http://localhost:16250/ibr/

Verifique as configurações e altere se necessário. Mais informações sobre os parâmetros, consulte o seguinte site: http://download.oracle.com/docs/cd/E17904_01/doc.1111/e14495/configibr.htm#INECM1225. Clique em Submit. Reinicie o servidor do IBR seguindo o mesmo procedimento para Iniciar, mas executando o Shutdown e depois o Iniciar.

Para utilizar o Oracle I/PM, Oracle IBR ou o Oracle UCM Dynamic Converter é necessário configurar as fontes TrueType. Faça o procedimento descrito aqui. Acesse novamente o ibr, faça o login. Dessa vez você deverá ter o seguinte alerta:

The location of available fonts has not been set. You must set font path on the General OutsideIn Filter Options page. The font directory is used to generate font images when creating thumbnails and direct conversions to PDF. For more information, see the documentation.

Selecione Convert Settings, Third-Party Application Settings, General OutsideIn Filter Options. Clique em Options. Informe o caminho das fontes, no meu caso: “/usr/share/fonts/truetype/msttcorefonts”. Clique em Update. O alerta deverá sumir.

Alguns utilitários podem utilizar o libstdc++5. Instale com o comando:

sudo apt-get install libstdc++5

Agora é necessário realizar as configurações após instalação. Inicie todos os managed servers (ou inicie cada um a medida que for necessário). Acesse o Content Server e faça o login. Abrirá tela de configuração. Edite para os parâmetros desejados, no meu caso utilizarei FullText Search Option com a opção Internal que irá utilizar o OracleTextSearch do banco de dados. Para mais informações dos parâmetros de configuração, consulte essa documentação: http://download.oracle.com/docs/cd/E17904_01/doc.1111/e14495/configucm.htm#INECM1147. Os valores poderão ser alterados posteriormente modificando o arquivo $DOMAIN_HOME/ucm/cs/config/config.cfg e reiniciando o server. Clique em Submit. Reinicie esse servidor.

Acesse o Oracle I/PM (Imaging and Process Management) pelo seguinte endereço: http://localhost:16000/imaging. Caso você obtenha 404 (Not Found), verifique se o deploy foi feito corretamente pelo console e consulte o log do managed server: $DOMAIN_HOME/servers/IPM_server1/logs/IPM_server1.out. No meu caso o CRC do EAR estava corrompido. Se esse for o seu caso, siga as instruções descritas nesse post.

Após acessar, efetue o login. O primeiro usuário que acessar a aplicação terá acesso completo. Essas permissões poderão ser alteradas posteriormente. O próximo passo é criar uma conexão com o Content Server para que o Oracle I/PM possa conversar com o UCM. Acesse Manage Conections e no ícone da lateral direita da barra selecione Create Content Server Connection. Informe um nome e clique em Next. Selecione Use Local Content Server se a instalação foi feita na mesma máquina, caso contrário adicione um elemento no Content Server Pool especificando a localização do Content Server. Clique em Next. Adicione os usuários que terão acesso e clique em Next. Revise e clique em Submit.

Oracle Imaging and Process Management

Oracle Imaging and Process Management

A próxima etapa é configurar o GDFontPath MBean para que ele ache as fontes TrueType e possa ser feita as conversões corretamente. Acesse o Enterprise Manager: http://localhost:7001/em e faça o login. Expanda o nó Application Deployments e selecione imaging (IPM_server1). No menu Application Deployment selecione System MBean Browser. Expanda o nó Application Defined MBeans, oracle.imaging. Expanda os nós Server: IPM_server1 e config. Clique em config. Especifique o caminho das fontes TrueType (o mesmo feito anteriormente) no atributo GDFontPath, clique em Apply e reinicie o Oracle I/PM.

System MBean Browser - Oracle Enterprise Manager (weblogic)

System MBean Browser - Oracle Enterprise Manager (weblogic)

Oracle I/PM configurado. Vamos configurar o Oracle Information Rights Management (Oracle IRM). Acesse o Enterprise Manager, expanda Content Management e Information Rights Management e clique em IRM. No menu IRM, selecione Administration e General Settings. Informe a URL do servidor terminando em irm_desktop. Essa URL será utilizada na assinatura de cada documento. Portanto, após assinar um documento é expressamente não recomendado a alteração dessa URL. Clique em Apply.

General Settings - Oracle Enterprise Manager

General Settings - Oracle Enterprise Manager

Crie um Key Store seguindo os procedimentos descritos aqui. Copie o arquivo gerado para a pasta “$DOMAIN_HOME/config/fmwconfig”.

Acesse o Enterprise Manager. Expanda o Content Management e o Information Rights Management. Clique no IRM. No menu IRM, selecione Administration e General Settings. Informe o caminho completo do JKS ($DOMAIN_HOME/config/fmwconfig) na seção Keystore Settings, Path. Clique em Apply.

A próxima etapa é adicionar as senhas do keystore no credential store. Para essa etapa, acesse o WSLT:

./$MW_HOME/oracle_common/common/bin/wlst.sh

Digite o seguinte:

connect('weblogic','weblogic1','t3://localhost:7001')
createCred("IRM","keystore:irm.jks","qualquercoisa","password")
createCred("IRM","key:irm.jks:oracle.irm.wrap","qualquercoisa","password")

Onde weblogic e weblogic1 é o seu usuário e senha administrativo. Como o keystore não armazena o nome do usuário, você pode colocar qualquer coisa no parametro qualquercoisa e o password é a senha do keystore.

— Conteúdo a ser revisto

Iremos agora configurar o one-way SSL para ambiente de desenvolvimento. Execute o script para setar as variáveis de ambiente. Verifique que existe um ponto (.) antes. Isso é importante para setar as variáveis de ambiente para o shell corrente.

. ./$MW_HOME/wlserver_10.3/server/bin/setWLSEnv.sh

Utilize o CertGen para gerar a chave privada e o certificado. Substitua a senhaDaChave pela senha da chave  e hostname pelo hostname da máquina.

java utils.CertGen -selfsigned -certfile MyOwnSelfCA.cer -keyfile MyOwnSelfKey.key -keyfilepass senhaDaChave -cn "hostname"

Você deverá ter a seguinte saída: “Generating a self signed certificate with common name hostname and key strength 1024″.

java utils.ImportPrivateKey -keystore MyOwnIdentityStore.jks -storepass identitypass -keypass keypassword -alias trustself -certfile MyOwnSelfCA.cer.pem -keyfile MyOwnSelfKey.key.pem -keyfilepass mykeypass

— Fim do conteúdo a ser revisto

Agora é hora de configurar o Oracle URM. Acesse o endereço: “http://localhost:16300/urm”. Verifique as configurações e clique em Submit. Reinicie o servidor. Acesse novamente e faça o login. Um alerta irá aparecer: “Initial Records Management setup is not complete!”. Clique no link do alerta. Faça as configurações pendentes.  Verifique cada item e faça as devidas alterações. Marque todos os campos de seleção após verificar cada um deles e clique em Submit quando terminar.  Reinicie o servidor e sigas as instruções em tela. Para mais informações consulte o link: http://download.oracle.com/docs/cd/E17904_01/doc.1111/e14538/qiecm.htm#BJCCEAGH.

Feito!

Maiores informações em: http://download.oracle.com/docs/cd/E17904_01/doc.1111/e14538/qiecm.htm#BJCCEAGH

Para utilizar verifique o link: http://download.oracle.com/docs/cd/E17904_01/doc.1111/e10797/toc.htm

Achando a agulha no palheiro

Existe um comando muito útil para achar agulha no palheiro no Linux e quando necessário eu sempre uso. Já me salvou a vida várias vezes, desde erros com somente o conteúdo arquivo ou quando é preciso alterar a informação em vários arquivos distribuídos em diretórios diversos.

Para buscar conteúdo dentro de arquivos no Linux, utilize o seguinte comando:

find $CAMINHO -type f -print0 | xargs -0 grep -i $CONTEUDO

Onde $CAMINHO é o caminho de onde você deseja buscar e $CONTEUDO é uma expressão regular com o conteúdo a ser buscado. Por exemplo: se eu quiser buscar todos os arquivos que possuam meu nome é só digitar o seguinte:

find / -type f -print0 | xargs -0 grep -i Thiago

O comando find é utilizado para localizar arquivos. A opção -type f especifica que só quero os arquivos regulares (descarta arquivos especiais, links simbólicos entre outros). O -print0 imprime o caminho e o nome completo do arquivo. Após isso é incluir um pipe (|) para redirecionar os nomes dos arquivos para o xargs -0 que iá executar o grep buscando o conteúdo de cada arquivo. Agora é só encontrar a agulha!

« Página AnteriorPróxima Página »