« jboss » Feed

Ebfe6ecd50f96701fabd9ad15aa061c9

Getting rid of "java.lang.OutOfMemoryError: PermGen space" exception on jboss

2010-10-18 12:45

Write comment

Playing around with Seam framework, i began by deploying some of the sample applications which should work out of the box ... but not for me:

Just after deploying any of the sample apps, i get the "java.lang.OutOfMemoryError: PermGen" exception right after, as a first reflex, i've doubled "Xms" and "Xmx" VM options and nothing changed, i still have the same error, and that's becoming more funny :)

Reading some dokus about the garbage collecting in Java, things became more clear:

The Java garbage collector is managed through 3 generations of objects, depending on the object age it can be in the (1st) Young generation or the (2nd) Tenured generation, an object may die or be moved to Tenured generation depending on the applied GC policies; the Permanent generation (3rd) holds meta-data describing user classes and can quickly reach its limits with a large-code application.

Read more…

6c4a91744a9f857f00ddd8802edb7465

Web Services, JAX-WS et intéropérabilité (partie 1)

2010-10-21 11:29

Write comment

J'ai effectué au cours de mon expérience, une implémentation assez compliqué d'un web service à l'aide de JAX-WS.

Le besoin initial étant d'exporter une méthode avec un métier très simple en un webservice et avec un document WSDL correct et surtout interopérable (Document/Literal wrapped)!

Le défit à relver est d'arriver à générer ce WSDL à partir du code avec des types complexes en entrée et en sortie.

Je vais essayer tout au long de cet article de vous proposer un petit exemple qui résumera quasiment toutes les difficultés qu'on pourrait rencontrer dans ce type de projets (Les valeurs requises, les énumérations, les exceptions, les headers, les types d'entrée et de retour complexes). Vous êtes prêts ?

C’est parti !

Read more…

6c4a91744a9f857f00ddd8802edb7465

Web Services, JAX-WS et intéropérabilité (partie 2)

2010-10-21 11:29

Write comment

Pour un HashMap clé/valeur, le XSD correct ne peut être généré par JAX-WS qu'en écrivant une classe Java représentant le type clé/valeur constituant ce HashMap.

Cette deuxième partie expliquera comment faire pour gérer ce genre de types en passant par des annotations JAXB.

Ci-dessous une classe MonTypeDeRetour représentant l'objet qui sera retourné par mon webservice:

 @XmlAccessorType(XmlAccessType.FIELD)
@XmlType (name = "MonTypeDeRetour", propOrder = {"key","value"})
public class MonTypeDeRetour {

    @XmlElement(name="return",required = true)
    protected Object key;

    @XmlElement(name="return1",required = true)
    protected Object value;

    public MonTypeDeRetour() {
    }

    public Object getKey() {
        return key;
    }

    public void setKey(Object value) {
        this.key = value;
    }

    public Object getValue() {
        return value;
    }

    public void setValue(Object value) {
        this.value = value;
    }

    @Override
    public String toString() {
        return "Table["+this.getKey()+"]="+this.getValue();
    }
} 
Voila maintenant nous avons un type de retour bien définit reconnaissable par JAX-WS, on va maintenant retoucher notre web service pour préciser le nouveau type de retour de celui-ci.

Voici le nouveau code source du web service :

Read more…

 Nbre d'élements: 3/
6