04 janeiro 2013

How to Install WebLogic 12c ZIP on Linux


I knew that WebLogic had this small ZIP distribution, of only 184M, but what I didn't know was that it is so easy to install it on Linux machines, specially for development purposes, that I thought I had to blog about it.
You may want to check this blog, where I found the missing part on this how to, but I'm blogging this again because I wanted to put it in a simpler way, straight to the point. And if you are looking for a how to for Mac, check Arun Gupta's post.
 So, here's the step-by-step:
1 - Download the ZIP distribution (don't worry if your system is x86_64)
Don't forget to accept the OTN Free Developer License Agreement!
2 - Choose where to install your WebLogic server and your domain, and set as your MW_HOME environment variable
I will use /opt/middleware/weblogic for this how to
export MW_HOME=/opt/middleware/weblogic
Make sure this path exists in your system. 'mydomains' will be used to keep your WebLogic domain.
mkdir -p $MW_HOME/mydomain
3 - If you don't have your JAVA_HOME environment variable still configured, do it. Point it to where your JDK is installed.
export JAVA_HOME=/usr/lib/jvm/default-java
4 - Unzip the downloaded file into MW_HOME
unzip wls1211_dev.zip -d $MW_HOME
5 - Go to that directory and run configure.sh
cd $MW_HOME
./configure.sh
6 - Call the setEnvs.sh script
. $MW_HOME/wlserver/server/bin/setWLSEnv.sh
7 - Create your development domain. It will ask you for username and password. I like to use weblogic / welcome1
cd $MW_HOME/mydomain $JAVA_HOME/bin/java $JAVA_OPTIONS -Xmx1024m \ -Dweblogic.management.allowPasswordEcho=true weblogic.Server
8 - Start WebLogic and access its web console
(sh startWebLogic.sh &); sleep 10; firefox http://localhost:7001/console
Usually, it takes only 10 seconds to start a domain, and 5 more to deploy the Administration Console (on my laptop). :-)
Enjoy!
https://blogs.oracle.com/brunoborges/entry/how_to_install_weblogic_12c

WebLogic 12c Overview - OTN Tour 2012


I had the pleasure to be part of the OTN Tour 2012 Latin America, that is going on right now (August 2012) and to know some folks from Oracle HQ, but more importantly, to present architects, administrators, DBAs and software developers a little bit of Oracle WebLogic 12c and its great integrations with other Oracle products, specially Oracle RAC with its Active GridLink, Coherence Data Grid and of course, Oracle Exalogic.
If you couldn't come to the OTN Tour in Buenos Aires and Montevideo, don't worry. The slides are right here! :-)

Issue dev'ing RESTful JSON services on NetBeans


Here is a tricky issue that you may find if you are developing RESTful services with Java EE on NetBeans and GlassFish or WebLogic. If you want to support the JSON format but need to access some implementation classes like @JsonIgnore, you need to add the JAX-RS RI, Jersey, to your project's Libraries definition. How to add the RI? You will probably do this:
  1. Open project's Properties (right click on the project)
  2. Go to Libraries
  3. Click on 'Add Library'
  4. Select 'Jersey 1.8 (JAX-RS RI)
But you won't have your service running fine. You may find these exceptions: (added here so Google can help future users)
1 - If you try to access your RESTful service to get a JSON format of it, you will get this exception:
com.sun.jersey.spi.inject.Errors$ErrorMessagesException
  at com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
  at com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:136)
at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199)
2 - If you try to access your RESTful service to get an XML format, you will get this exception:
java.lang.RuntimeException: javax.naming.NameNotFoundException: Unable to resolve 'com.sun.jersey.config.CDIExtension'. Resolved 'com.sun.jersey.config'; remaining name 'CDIExtension'
  at com.sun.jersey.server.impl.cdi.CDIExtension.getInitializedExtension(CDIExtension.java:177)
  at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactory.(CDIComponentProviderFactory.java:92)
  at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactoryInitializer.initialize(CDIComponentProviderFactoryInitializer.java:75)
  at com.sun.jersey.spi.container.servlet.WebComponent.configure(WebComponent.java:576)
  at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.configure(ServletContainer.java:311)
 If you look at your server's log, (in my case, I was using WebLogic 12c) you may find this message somewhere:
WARNING:
**********
The application is using ServletContainerInitializer class com.sun.jersey.server.impl.container.servlet.JerseyServletContainerInitializer that is loaded from:file:/labs/wls1211/modules/com.sun.jersey.server_1.1.0.0_1-9.jar. This initializer overrides the one available in the system.
**********
When you added Jersey to your library, the "package" checkbox was checked by default. So the JAR ended up going into WEB-INF/lib of your project, conflicting to the already provided by the container. 
So, how to fix this issue? Follow these steps:
  1. Open project's Properties (right click on the project)
  2. Go to Libraries
  3. Uncheck the checkbox 'Package' for Jersey 1.8 (JAX-RS RI)
  4. Click on 'OK'
  5.  Clean & Build (right click on the project) ---> remember to clean and rebuild your project
  6. (re)Deploy application
Done! :_)
https://blogs.oracle.com/brunoborges/entry/issue_dev_ing_restful_json

Enable WebLogic 12c FastSwap with NetBeans


Hey everyone, this is my first post, and although I have been working at Oracle since July 2nd, I wanted it to have valuable information, not just a "Hey look, I joined Oracle". So this is it, welcome to my blog!
 How to enable WebLogic 12c FastSwap when developing Java EE applications with NetBeans? Very simple!
  1. Open the file WEB-INF/weblogic.xml 
    1. If your application is an EAR, open weblogic-application.xml
  2. Enable FastSwap
    <fast-swap>
        <enabled>true</enabled>
    </fast-swap>
  3. Now open the Properties dialog for your project
  4. Navigate to Run
  5. Disable the checkbox "Deploy on Save"
  6. Close the Properties dialog
  7. Re-deploy your application
Done! Now give it a try. Modify some Java code and refresh the web page that access that code. Remember you don't need to re-deploy your application anymore. NetBeans already deploys it as exploded WAR/EAR. Faster than the re-deploy feature!
Also, FastSwap is a feature that is built-in to WebLogic 12c and there's no need to install anything. For more information about FastSwap, follow this link (for WebLogic 12.1.1).
Was this a valuable information for you? Sure it was for me :-) 
Originally from https://blogs.oracle.com/brunoborges/entry/enable_weblogic_12c_fastswap_with

08 outubro 2012

TAM Linhas Aereas nao entende Fuso Horario


Carta enviada ao Presidente da TAM Linhas Aereas a poucos minutos...

San Francisco, CA - 7 de Outubro de 2012  as 22:53

Ao Presidente,

Sou Bruno Cesar Borges, cliente TAM JJ 2543****, localizado atualmente em San Francisco, CA, e fiz uma compra de passagem aerea hoje (cod reserva: 3PW***), por volta de 10:00 AM no fuso horario de San Francisco (GMT-7). Apos aproximadamente 10 horas, fiz meu primeiro contato com a central, as 21:42 (GMT-7). Por estar nos Estados Unidos, nao tenho acesso ao SAC (0800-123-200), e por isso, entrei em contato com a Central de Vendas no numero +55 (11) 4002-5700.

Informei a atendente de que queria cancelar e extornar minha compra, segundo o que consta no Artigo 49 do Codifo de Defesa do Consumidor. A atendente disse que somente seria possivel atender minha solicitacao, se eu tivesse ligado para a central no mesmo dia. 

Entendo que estou no mesmo dia que fiz a compra, dia 7 de Outubro de 2012, e portanto tenho direito ao o que a atendente afirmou ser pratica da compania. Porem ela afirmou que nao importa o horario em que estou, ou o fuso horario. O que importa segundo ela, eh o horario de Brasilia (GMT-3). Afirmei que estava em SF, e ateh exemplifiquei que, se estivesse no Acre e tivesse feito a compra as 22:59 e em seguida ligado para desistir da compra, eu como um suposto acreano, seria prejudicado pela politica da empresa.

Tambem quero questionar sobre o direito de cancelamento de compras de produtos ou servicos, segundo consta o Artigo 49 do Codigo de Defesa do Consumidor. A atendente afirmou que por nao constar no contrato da compania area TAM Linhas Aereas, este direito nao existe.

Entendo, como cidadao brasileiro, a superioridade do CDC frente a qualquer contrato de relacao entre empresa e consumidor, principalmente nos casos onde o contrato eh imposto e nao ha a possibilidade de negociar clausulas.

Conto com a sua colaboracao para esclarecer este assunto, e espero assim que os comentarios publicados na rede social Twitter abaixo, possam ser rapidamente excluidos:

- https://twitter.com/brunoborges/status/255170375355351040
- https://twitter.com/brunoborges/status/255170586492403713
- https://twitter.com/brunoborges/status/255171046066515969
- https://twitter.com/brunoborges/status/255177579269607425
- https://twitter.com/brunoborges/status/255179286087077888

Att.
Bruno Borges

Talvez voce nao tenha reparado, mas quem mora no Acre, fizer uma compra as 22:59, e decidir em seguida cancelar a compra, para a TAM, este cancelamento nao eh possivel, pois ela agora esta em outro dia. Fora novamente, o fato de eles ignorarem, e nao respeitarem o Art 49 do CDC.

@TAMAirlines #EPIC #FAIL

*** UPDATE *** 10/10/2012 15:05 ***
A TAM respondeu com o seguinte texto:

FALE-45922861

São Paulo, outubro de 2012. 
Prezado Sr. Bruno,

Tomamos conhecimento de seus comentários publicados no Twitter referente ao reembolso do bilhete 957 2456 412322.

Compreendemos sua solicitação de isenção da taxa cobrada para reembolso de seu bilhete, mas infelizmente não poderemos atendê-lo.

É importante informar que a taxa administrativa cobrada pelo reembolso de bilhetes é uma condição do tipo de tarifa adquirida. O cliente deve ter ciência de todas as condições da tarifa escolhida ao comprar o bilhete. A taxa administrativa somente não é cobrada quando o cancelamento for involuntário por parte do Cliente.

Ressaltamos que o direito de arrependimento previsto no artigo 49 do Código de Defesa do Consumidor não se aplica no caso de compra de passagens aéreas feitas pela internet ou Call Center, uma vez que o Cliente recebe todas as informações necessárias, como data, horário, trecho e número do voo.

Desta forma, a taxa administrativa cobrada pela empresa aérea, que varia de acordo com a base tarifária do bilhete, deve ser verificada no momento da solicitação de reembolso.

De acordo com a ANAC (Agência Nacional de Aviação Civil), o prazo máximo para reembolso deve ser de 30 dias a contar da data da solicitação. Apenas quando a forma de pagamento for cartão de crédito, esse prazo pode ser maior em razão dos procedimentos internos das administradoras de cartões para o lançamento do valor na fatura do Cliente.

Contamos com sua compreensão e queremos que saiba que permanecemos, como sempre, à disposição para conhecer suas opiniões.

Atenciosamente,

Ouvidoria Fale com o Presidente
TAM Linhas Aéreas S/A


TAM, vou te contar duas histórias: 

1) Certa vez, comprei uma TV de 40", com controle-remoto e tudo certo, do jeito que eu queria. Eu sabia exatamente como a TV era. Mesmo assim, 2 dias depois de comprar a TV, eu cancelei a compra (usando-me do direito do Art. 49 do CDC), pois preferi comprar sabe o que? Uma TV maior! Maior! Paguei mais caro! O site ficou feliz. Aceitou o cancelamento, e em troca, vendeu um produto que custava ainda mais caro.

Eu queria cancelar o bilhete, para comprar outro, em outra data/horario! Mesmo que o valor fosse superior, eu iria fazer a compra, por que eu gostava de voces. Mas vocês rejeitaram meu pedido!

2) Eu liguei para vocês aproximadamente 10 horas depois de ter feito a compra. Que regra estúpida é essa de considerar que 1 dia pode ter de 1 a 23 horas? Vivemos em um mundo online, digital, e vocês sendo uma compania aérea, sabem mais do que ninguém, como funcionam os fusos horários! A tal política de "Aceitamos cancelamentos se o pedido for feito no mesmo dia da compra" é ridícula!

Vocês estão prejudicando quem mora no Acre! Que bela forma de tratar seus clientes! Dando tratamento preferencial somente para quem está no mesmo fuso horário de vocês!!

Se eu estivesse na Europa, talvez teria tido mais chance... Que belo sistema o de vocês! :-(

#TAM #Mega #Fail

*** UPDATE 10/10/2012 15:54 ***
Reclamacão registrada no Reclame Aqui:

http://www.reclameaqui.com.br/3690867/tam-linhas-aereas/tam-linhas-aereas-ignora-diferenca-de-fuso-horario-e-ignora/

*** UPDATE 10/10/2012 16:45 ***
Aparentemente, a TAM estipula prazos em formatos diferentes para cada caso. Neste por exemplo, um passageiro pergunta um prazo para algo chamado "AVIH", e a TAM diz que é de no mínimo 24 horas. Não é "1 dia" e provavelmente, não tem problema de fuso horário.

https://twitter.com/TAMAirlines/status/255772305937027072

*** UPDATE 11/10/2012 11:54 ***
A TAM respondeu novamente, desta vez com um tom diferente. Parece que o desrespeito ao Art. 49 do CDC é ocasionado por dificuldades técnicas deles. Hhhmmm... Ei, TAM, non est mea culpa! O problema é seu, risco do negócio. A propósito, esse seu sistema é meio faminto: se eu pagar a multa indevida, o seu sistema cancela e estorna minha compra sem nenhuma dificuldade técnica. Bizzaaaaarro...

FALE-45971801

São Paulo, outubro de 2012. 

Prezado Sr. Bruno,

Tomamos conhecimento de seu e-mail enviado ao site Reclame Aqui relatando o fato ocorrido quando da emissão de seu bilhete de número 957 2456 412322.

Gostaríamos de informar que o nosso site indica a necessidade de conferir todos os dados do bilhete antes da finalização da transação, oferecendo a opção de cancelamento antes da efetivação de sua compra. Além disso, o e-ticket é gerado num sistema que está atrelado a reserva, check-in, faturamento e cartão de crédito sendo que todas as operações são coordenadas. Por questões de segurança, as operações não podem ser revertidas após a efetivação da compra. 

Dessa forma, a solução disponível é a solicitação de reembolso, que será feita no seu cartão de crédito mediante pagamento de uma taxa administrativa calculada de acordo com a tarifa ou o comparecimento a uma loja TAM para efetuar a reemissão do bilhete mediante o pagamento da taxa de remarcação e/ou o pagamento da diferença tarifária, caso não haja mais vagas na mesma classe tarifária.

Sendo assim, esperamos contar com a sua compreensão referente a impossibilidade em atender o seu pedido de isenção da taxa de reembolso.

Queremos que saiba que permanecemos, como sempre, à disposição para conhecer suas opiniões.

Atenciosamente,


Contato

Email:bruno.borges(at)gmail.com

LinkedIn: www.linkedin.com/in/brunocborges
Twitter: www.twitter.com/brunoborges
Comprei e Não Vou
Rio de Janeiro, RJ Brasil
Oracle
São Paulo, SP Brasil