Bonjour à tous,

Je souhaiterai trouver une solution pour utiliser un web service retournant un volume important de données.

actuellement mon service est à la fois accessible en EJB3 remote et en web service.
J'arrive à récupérer un volume important en remote mais pas en web service

j'obtiens coté serveur l'exception suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
java.lang.OutOfMemoryError: Java heap space
J'ai évidement essayé de monter la mémoire de la JVM au maximum mais ça ne change rien.

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
@Remote
@WebService
public interface IDMService{
	@WebMethod
	public List<Demand> getDemand(String demandType,String productAggregation);
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
@Stateless
@WebService
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT)
public class DMService implements IDMService{
	@EJB
	private IDemandMeasure dm;
 
	@WebMethod
	public List<Demand> getDemand(String demandType,String productAggregation){
		return dm.getAllDemand(EDemandType.AFCD);
	}		
}
Voici la methode d'appel de l'ejb

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public String getEjb(){
		Properties env = new Properties();
		env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
		env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
		env.put(Context.PROVIDER_URL, "jnp://serveur:1099");
		IDMService dm = null;
		try{
			InitialContext ctx = new InitialContext(env);
			dm = (IDMService) ctx.lookup("DM-ear/DMService/remote");
		}catch(Exception e){
			e.printStackTrace();
		}
		return "FINAL CUSTOMER 0 , CUSTOMER CODE : "+dm.getDemand("","").get(0).getFinalCustomer().getCustomerCode();
	}
Si je génère les classes clientes avec JaxWS pour un client web service j'obtiens l'exception ci dessus. Quelles sont les pistes à explorer pour un volume important de données

Merci d'avance pour votre aide

Leod