Resolvendo erro no brew services | OS X Yosemite

O brew começou a apresentar alguns problemas depois que fiz a atualização para o Yosemite (OS X 10.10.5).

Sempre que executava o comando brew services start|stop “fórmula” recebia o seguinte erro:

Além disso, o brew services não estava exibindo nenhum serviço disponível, apenas uma mensagem genérica de que nenhum serviço estava disponível pra ele.

Fiz diversas pesquisas pelo Google e a única coisa próxima era apenas este post oficial dizendo que o issue já tinha sido corrigido, mas não era o meu caso. Depois de diversos testes e tentativas, cheguei a solução da seguinte maneira.

1. Ao executar o brew doctor recebia um warning dizendo que haviam duas instalações do brew services, logo identifiquei que isto seria o problema de fato.

2. Resolvi remover a instalação do brew-services que estava fora do diretório Library/Taps

3. Feito isso, ao executar o doctor novamente o warning não estava mais sendo exibido. Agora, executei os comandos para update e upgrade apenas para garantir que tudo estava bem.

4. E por fim, executei o comando do brew services para saber se agora retornava alguma informação coerente, e para minha felicidades SIM! Funcionou ! :)

Você pode encontrar mais sobre o Homebrew aqui.

Tchau.

Um simples producer JMS com Spring no Weblogic

Veja como é fácil enviar mensagens para o Serviço de Mensageria (JMS) no Weblogic utilizando o Maven e Spring.
A idéia deste post é demostrar quão simples é utilizar o Spring para conectar no Weblogic e que com poucas linhas de código podemos Produzir e Consumir mensagens da fila JMS.

Você deve saber que como pré-requisito para prosseguir com os testes deste post, o Weblogic deve estar rodando no seu ambiente e a fila JMS configurada. Para saber como configurar uma fila simples JMS, clique aqui.

Agora, siga os passos a seguir e construa uma aplicação simples. No fim do post está o link para o projeto no SVN.

Dependências do Weblogic no Maven

Para compilar nosso projeto, vamos precisar utilizar duas bibliotecas do servidor weblogic (wlclient.jarwljmsclient.jar), certifique-se de estejam no seu repositório maven.

Caso contrário, para adicioná-las ao Maven, vá até o diretório %WL_HOME%/wlserver/server/lib e execute os comandos abaixo.

Adicionando a library wlclient.jar.

Adicionando a library wljmsclient.jar.

Projeto

Crie um projeto Java simples com o Maven e adicione ao pom.xml os libraries do Spring, e também as libraries do weblogic que foram adicionadas ao repositório. Veja aqui a versão completa do pom.xml utilizado no projeto.

Configurando o Weblogic no Spring

Configurando o Spring, no arquivo de configuração de contexto (app-context.xml) você deve preparar a conexão com o servidor weblogic e configurar o Connection Factory.

Localização e binding do contexto do weblogic.

Localização do objeto de Connection Factory durante a inicialização da aplicação.

Configuração do JmsTemplate para envio das mensagens, é necessário informar o connection factory e também criar o bean Destination Resolver – utilizado pelo JmsTemplate.

Agora, este é o bean que será responsável por utilizar o JmsTemplate e produzir a mensagem para o servidor Weblogic.

Classes Java

Toda a configuração necessária para utilização do JMS está concluída no application context, agora com poucas linhas de código podemos produzir uma mensagem de texto na fila JMS.

Java JMS Client

Por fim, vamos fazer um client para simular a população da mensagem no weblogic, utilizando a classe PersonJmsProducer através do Spring.

Com a ajuda do template do Spring todo o trabalho é facilitado e com apenas quatro passos conseguimos construir um produtor de mensagens JMS. Faça o checkout do projeto completo no SVN.

Integrando Oracle Service Bus com JMS e BPEL

Este post demonstra como criar um serviço em que o Oracle Service Bus faz o enfileiramento em uma fila JMS e depois chama um processo BPEL. Nesse cenário é possível simular um grande volume de dados no Oracle SOA Suite, sem onerar o servidor.

Como pré-requisito, é necessária a construção de uma fila JMS no Weblogic Console, um processo BPEL para orquestração e, um serviço Java EE (foi utilizado o exemplo deste post) responsável pela transação no banco de dados.

O Service Bus será utilizado para realizar o enqueue e dequeue (produce/consume) da mensagem JMS, através do Proxy Service e Business Service, o último passo no OSB é entregar a mensagem ao BPEL.

1. Criar fila JMS no Weblogic console

    Criar um JMS Server
    Criar um JMS Module
    Criar a Fila
    Criar o Connection Factory

Veja aqui todos os passos para a criação de fila JMS no Weblogic.

2. Criando o Composite no Jdev

Crie um Projeto SOA no JDeveloper, com um BPEL assíncrono usando um modelo de payload igual ao abaixo. Este BPEL será utilizado simbolicamente para consumir o Java Web Services, obviamente que você poderia ter mais ações sendo feitas por ele.

O BPEL deverá consumir o Java Web Services.

3. Projeto no Oracle Service Bus

O segredo desta solução está na construção do OSB, aqui vamos fazer o processo para Enqueue e Dequeue da fila JMS e roteamento da mensagem para o BPEL.

O desenho abaixo demonstra como devem ser construídos os componentes do OSB. Temos uma redundância de componentes com ações invertidas, deixando para o último passo o Business Service consumir o BPEL assíncrono.

Sequência do Processo de Enfileiramento

Crie um projeto no OSB console chamado BlogPerson, adicione três pastas: ps (proxy service), bs (business service) e resources (schemas xml e wsdl). Agora na pasta resource, importe o WSDL do BPEL através do Resource from URL.

3.1. Enqueue (produce) mensagem no JMS

Crie um Proxy Service, na pasta ps, do tipo Web Service com referência para o BPEL (wsdl) que foi construído no passo anterior. Essa associação com o BPEL garante que o payload de entrada será o mesmo transportado para o BPEL, dessa maneira facilitando o assign do processo.

Agora, crie um Business Service do tipo Any XML na pasta bs. Utilize o protocolo JMS, aqui você deve informar o caminho da fila, seguindo este formato:

jms://localhost:7001/jndi.blogConnectionFactory/jndi.blogQueue

Após concluir as configuração, faça o roteamento do Proxy para o Business com o assign do body (da requisição), isto faz com que a mensagem seja direcionada para o JMS. Este é o último passo para o procedimento de Enqueue.

Criando o roteamento.

Adicionando uma ação.

Assinando a variável com o corpo da requisição.

Aqui terminamos o processo de endereçamento da requisição para a fila JMS, ou seja, se você simular um consumo do Proxy Service criado até agora, as requisições serão enfileiradas, veja no Weblogic Console.

3.2. Dequeue (consumer) mensagem no JMS

Para realizar o Dequeue (consumer) da fila JMS que foi populada pelo Business Service acima, devemos seguir passos semelhantes, porém os papéis serão invertidos. Vamos criar um novo Proxy Service e Business Service, porém o JMS estará configurado no Proxy e o Business Service será o pipeline para o BPEL, veja:

Crie um Proxy Service chamado DequeuePersonServicePS do tipo Any XML e utilizando o protocolo JMS. Novamente vamos adicionar o caminho da fila como já fizemos.

Você deve repetir os passos, crie o Business Service para o BPEL, depois faça o roteamento do Proxy para o Business.

Este cenário possibilita mais controle sobre os payloads transportados, maior controle de erros e reprocessamento das mensagens.

Referências e Downloads

Projeto J2EE Hibernate + Spring + Web Services
Projeto OSB
Projeto Jdev BPEL

Namastê.

Usando o Ant para deploy, redeploy e undeploy no Weblogic

O script para deploy, undeploy e redeploy de pacotes EAR para o Weblogic, utilizando o Ant é muito simples, veja abaixo os passos:

1. Definindo as propriedades para ser utilizada no script. Todas elas são auto-explicativas.

2. Agora é necessário setar no classpath as bibliotecas do weblogic, faça assim:

Pronto, as configurações necessárias foram feitas, os próximos passos são para configuração dos targets.

3. Deploy

4. Redeploy

5. Undeploy

O script foi utilizado no ambiente Oracle Fusion Middleware 11.1.1.3.0 e 11.1.1.5.0.

A versão completa deste script está disponível aqui para download.

Para fazer o deploy utilizando este script, execute o comando abaixo:

Fault Policy no MDS com Java Action – Parte 2

Na primeira parte, preparamos os arquivos de fault policy e a classe Java que irá receber as informações de falha para tratativa. Agora queremos adicionar os XMLs de fault ao MDS do SOA para facilitar a localização e manutenção destes arquivos, que poderão ser utilizados por todos os projetos SOA que forem tratar exceções.
Continue reading “Fault Policy no MDS com Java Action – Parte 2”