Java compiler level does not match the version of installer project facet

Erro:
Java compiler level does not match the version of the installed Java project facet. groupping
Unknown Faceted Project Problem (Java Version Mismatch)

Solução:
No eclipse, use o atalho CTRL + SHIFT + R. Digite *facet
Você ira encontrar o seguinte arquivo: org.eclipse.wst.common.project.facet.core.xml
Abra e remova a seguinte linha: <installed facet=”java” version=”1.6″/>

E tudo funcionara perfeitamente :)

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Stérilisation de lapin à Saint-Maur

Dernière photo de Mona

Dernière photo de Mona

En septembre 2011, nous décidons de stériliser notre lapin. Nous l’apportons donc au vétérinaire le plus proche de chez nous, au Cabinet Vétérinaire de Christine Salomon-Boulert. Le prix semblait correct : 90 ou 120€ (garçon ou fille). L’opération se passe bien, et nous apprenons dans le même temps que c’est une femelle. Elle nous apprend aussi à ce moment là qu’elle a aussi enlevé l’utérus “comme elle fait pour toutes les femelles”.

Le premier étonnement sera sur le prix : 180€. Car elle a enlevé les ovaires ainsi que l’utérus, et pas seulement les ovaires, mais sans nous en avoir laissé le choix. Étonnés et contrariés, nous payons tout de même les 180€. Le deuxième étonnement sera sur le fait qu’elle n’avait pas de collerette car : “non, les lapins ne mangent pas leurs fils”.

A la maison, notre lapine reprend vite ses forces, et remange normalement. Même un peu trop vite, car au bout de 24H, elle courrait déjà partout. Par contre, le lendemain, on découvre alors avec horreur que tous ses fils étaient partis. Notre lapine avait une ouverture énorme sur le ventre! Direction.. les urgences vétérinaires à minuit, qui nettoieront la plaie, sans pouvoir la refermer.

Nous la rapportons donc le lendemain matin pour refaire les points chez la vétérinaire. Cette fois, elle met a notre lapine une sorte de “pyjama” assez serré pour pas qu’elle puisse toucher ses points.

Mona avec son "pyjama"

Mona avec son "pyjama"

Au bout de 2 semaines, lorsque l’on enlève ce “pyjama”, on découvre une croûte énorme tout le long de la cicatrice, et une infection en dessous. Elle refait donc une troisième fois les points, et décide enfin de laisser respirer la plaie en lui donnant une collerette. Mais pas de radio, pas d’échographie, pas à chercher si l’infection est allé plus loin.

2 semaines après, tout reviens enfin dans l’ordre. Notre petite Mona a enfin terminé son calvaire … pour le moment.

En effet, elle faisait quelques fois des petites constipations qui ne duraient pas plus de 12H. Sauf ce dimanche 11 décembre, où la constipation n’a pas disparu. Direction une nouvelle fois les urgences vétérinaires le dimanche, mais cette fois spécialisé pour les NACs. Une radio montre une masse qui ressemble à un calcul à la vessie. Le traitement ne changera rien. Le mercredi, elle faisait une occlusion qui nécessitait une opération d’urgence.

On apprend alors que le calcul était en faite une calcification au niveau du moignon de l’utérus suite à la stérilisation! Cette calcification avait provoqué une inflammation telle qu’elle bloquait le colon. Il y avait un début de péritonite, et des signes de déchirements de l’intestin.
Le pronostique était très défavorable, mais notre petite lapine sort 2 jours après, avec un transit fonctionnel mais fragile. Nous passerons alors plus de 4H par jour pour la nourrir, et lui donner ses médicaments.

Malheureusement, nous passons de moment heureux où son état s’améliore, à des moments malheureux où son état se dégrade.
Ce qui est sur, c’est que cette fois, sa cicatrice, pourtant beaucoup plus imposante que celle de la stérilisation, ne faisait aucune croûte, même 7 jours après l’opération!

Le vendredi 23 décembre, son état s’est fortement dégradé. Elle a perdu plus de 300g en 2 jours, était très faible et a refait une occlusion intestinale.

Le samedi 24, elle décède dans nos bras.

(Rebeca & Yoann)

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Spring XMLGregorianCalendar Injection

Problema :

Solução : Criar um arquivo datebinding.xjb com o seguinte codigo :

<?xml version="1.0" encoding="UTF-8"?>
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <globalBindings>
    <javaType name="java.util.Date" xmlType="xs:date"
      parseMethod="metier.DateAadpter.parseDate"
      printMethod="metier.DateAdapter.printDate"/>
  </globalBindings>
</bindings>

Em seguida, criar uma classe para realizar a conversão da data de ‘String para Date’:

package metier;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

import javax.xml.bind.DatatypeConverter;

public class DateAdapter {

  public static Date parseDate(String s) {
    return DatatypeConverter.parseDate(s).getTime();
  }

  public static String printDate(Date dt) {
    Calendar cal = new GregorianCalendar();
    cal.setTime(dt);
    return DatatypeConverter.printDate(cal);
  }

}

Pra finalizar, fazer o processo do post Spring Date Injection.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Spring Date Injection

Problema : Failed to convert property value of type [java.lang.String] to required type [java.util.Date] for property ‘xxx’; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [java.lang.String] to required type [java.util.Date] for property ‘xxx’: no matching editors or conversion strategy found

O problema aqui é bem simples, a injeção da propriedade ‘xxx’ que é do tipo Date é considerada como String por Spring. No caso tem que se criar um bean especifico para customizar a data.

Solução:

<bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer">
	<property name="customEditors">
		<map>
			<entry key="java.util.Date">
				<bean class="org.springframework.beans.propertyeditors.CustomDateEditor">
					<constructor-arg index="0">
						<bean class="java.text.SimpleDateFormat">
							<constructor-arg value="yyyy-MM-dd" />
						</bean>
						</constructor-arg>
					<constructor-arg index="1" value="false" />
				</bean>
			</entry>
		</map>
	</property>
</bean
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Maven Build Failure Unable to locate the Javac Compiler

Problema:
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure
Unable to locate the Javac Compiler in:
C:\Program Files\Java\jre6\..\lib\tools.jar
Please ensure you are using JDK 1.4 or above and
not a JRE (the com.sun.tools.javac.Main class is required).
In most cases you can change the location of your Java
installation by setting the JAVA_HOME environment variable.

Solução: No menu do eclipse selecionar Window => Preferences => Java => Installed JREs e adicionar “Standard VM” com as seguintes informações :

JRE home (pasta do jdk) :  C:\Program Files\Java\jdk1.6.0_24
JRE Name : jr6
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Eclipse is running in a JRE, but a JDK is required

Problema: Eclipse is running in a JRE, but a JDK is required. Some Maven plugins may not work when importing projects or updating source folders.

Solução: Adicionar no arquivo eclipse.ini as seguintes linhas :

-vm
C:/Program Files/Java/jdk1.6.0_24/bin/javaw.exe
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Voltando à atividade

Oi? Tem alguém ai? Pois é, eu sempre digo que vou voltar a escrever aqui e não escrevo. Fico pensando, eu perco tanto tempo da minha vida com besteiras, como por exemplo, Facebook. Poderia estar escrevendo, lendo coisas mais interessantes, refazendo uma rede de amizade na internet como antigamente, mas não…teimo a desperdiçar meu precioso tempo lendo baboseiras de status alheios.

Chega dessa vida!!! Tou precisando de uma mudança radical. Ler um livro (não-técnico), escrever (como sempre fiz)…

Ok, so uma noite de insônia, não estou delirando. Tou acordada na frente desse computador e normalmente, a partir de amanhã posts e mais posts irão surgir. Afinal, se esse blog ta morto ha mais de 1 ano e ele tem sempre uma média de 50 visitas por dia, é porque existe vida por tras dessa tela que ta me lendo.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Protected: Erasmus Mundus 17

This post is password protected. To view it please enter your password below:


Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Web service uploading large files with MTOM

Neste post, eu falarei um pouco sobre a possiblidade de enviar grandes arquivos via web services. Obviamente, que para enviar arquivos pequenos é bastante simples, você pode converter o arquivo num array de bytes e enviar estes bytes na mensagem SOAP. Porém, quando se trata de arquivos muito grandes essa conversão de arquivo em array de bytes gera um problema, para isso é necessario usar um tipo especial: o DataHandler. Através deste tipo, evitaremos o famoso  ”java.lang.OutOfMemoryError: Java heap space”.

Aparentemente, parece tudo estar resolvido, mas o que é preciso ainda é o MTOM. Mas o que seria isso? O MTOM é um mecanismo simples e pratico para envio (upload) de grandes arquivos via web services. O MTOM esta presente no JAX-WS e é definido como mecanismo de transmissão de mensagem otimizada. Mas por quê é preciso habilitar esse tal de MTOM? Simplesmente, porque é através dele que podemos enviar grandes arquivos anexados a mensagens SOAP. Leia mais…

Para permitir o uso do MTOM, é simples, basta declarar a seguinte annotation no lado do provedor de serviços: @MTOM. E importante também citar a versão do SOAP e ainda a quantidade de bytes que deve ser enviada anexado a cada pacote SOAP até atinja o tamanho total do arquivo. Este processo, conhecido como streaming é definido na linha 12 no codigo dispobilizado abaixo para o lado servidor.

Ainda sobre o lado servidor, para ler os bytes compactados em DataHandler é necessario usar StreamingDataHandler. Observe as linhas 24 a 27.

Server side

import javax.activation.DataHandler;
import javax.jws.Oneway;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlMimeType;
import javax.xml.ws.BindingType;
import javax.xml.ws.soap.MTOM;
import javax.xml.ws.soap.SOAPBinding;
import org.jvnet.staxex.StreamingDataHandler;

@MTOM(enabled = true, threshold = 4082)
@BindingType(SOAPBinding.SOAP11HTTP_MTOM_BINDING)
@WebService()
public class WS {

    @EJB
    private ServiceProviderLocal ejbRef;

    @OneWay
    @WebMethod(operationName = "insertContent")
    public void insertContent(@XmlMimeType("*/*")
            @WebParam(name = "file") DataHandler file) {
        StreamingDataHandler sdh = (StreamingDataHandler) file;
        File newFile = new File("/home/rebeca/teste.wmv");
        sdh.moveTo(newFile);
        sdh.close();
    }
}

No lado cliente, é necessario ativar o recurso MTOM. Observe as linhas 4 e 5, como também as linhas 7 a 10.

Client side

public class Client {
…
WSService service = new WSService();
MTOMFeature feature = new MTOMFeature(true);
        	service.getWSPort(feature);

Map ctxt = ((BindingProvider) port).getRequestContext();
ctxt.put(
JAXWSProperties.HTTP_CLIENT_STREAMING_CHUNK_SIZE, 8192);
ctxt.put(
JAXWSProperties.MTOM_THRESHOLOD_VALUE, 4082);

File file = new File("/home/desktop/bigvideo.wmv");
DataHandler dh = new DataHandler(new FileDataSource(file));
service.insertContent(dh);

}

Além destas alterações, se você ainda esta tendo exceções do tipo java heap space, com certeza, é por conta que nas opções da JVM possui a seguinte configuração marcada como verdadeira:

Dcom.sun.xml.ws.transport.http.HttpAdapter.dump=true

Elimine esta opção (isso é possivel de ser feito através do servidor de aplicação). Bom, é isso, acho que com todas essas observações que eu forneci aqui, você sera capaz de enviar arquivos grandes via web services.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

DENUNCIE A COMUNIDADE DO ORKUT: “EU ODEIO NORDESTINO”

Eles nos acusam de pobres e invasores. Eles vibram quando ocorrem enchentes devastadoras na nossa região. Nos humilham dia e noite, não conhecem o significado da frase “respeito ao proximo”. Ajude-nos a denunciar esta comunidade no orkut, que humilha os nordestinos e envergonha a população brasileira.

DENUNCIE ESTA COMUNIDADE: http://www.orkut.com.br/Main#Community?cmm=93429506

Para denunciar, menu esquerdo: Denunciar abuso -> ódio/violência -> ódio em função de raça, religião ou outro grupo

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter