AnsweredAssumed Answered

WS y Java Heap Space al subir ficheros

Question asked by tremalnaik on Jun 3, 2011
Latest reply on Jun 8, 2011 by tremalnaik
Hola a todos,

Estoy aquí partiéndome los cuernos con un WS que crea una sentencia CMLWrite para mandar un contenido de 14MB.

El error procede de AXIS, que es la versión 1.4:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
   at java.lang.String.<init>(Unknown Source)
   at org.apache.axis.encoding.Base64.encode(Base64.java:207)
   at org.apache.axis.encoding.ser.Base64Serializer.getValueAsString(Base64Serializer.java:71)
   at org.apache.axis.encoding.ser.Base64Serializer.serialize(Base64Serializer.java:54)
   at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1504)
   at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:980)
   at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:734)
   at org.apache.axis.encoding.ser.BeanSerializer.serialize(BeanSerializer.java:230)
   at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1504)
   at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:980)
   at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:734)
   at org.apache.axis.encoding.ser.BeanSerializer.serialize(BeanSerializer.java:247)
   at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1504)
   at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:980)
   at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:801)
   at org.apache.axis.message.RPCParam.serialize(RPCParam.java:208)
   at org.apache.axis.message.RPCElement.outputImpl(RPCElement.java:433)
   at org.apache.axis.message.MessageElement.output(MessageElement.java:1208)
   at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:139)
   at org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:478)
   at org.apache.axis.message.MessageElement.output(MessageElement.java:1208)
   at org.apache.axis.message.MessageElement.getAsString(MessageElement.java:1111)
   at org.apache.axis.message.MessageElement.getAsDocument(MessageElement.java:1079)
   at org.apache.ws.axis.security.WSDoAllSender.invoke(WSDoAllSender.java:158)
   at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
   at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
   at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
   at org.apache.axis.client.AxisClient.invoke(AxisClient.java:127)
   at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
   at org.apache.axis.client.Call.invoke(Call.java:2767)
   at org.apache.axis.client.Call.invoke(Call.java:2443)
   at org.apache.axis.client.Call.invoke(Call.java:2366)

El fichero de 14MB se transforma en un array de bytes y se inserta en:


CMLWriteContent writeContent = new CMLWriteContent();

writeContent.setContent(content.getContenido());

Donde getContenido() devuelve el citado array de bytes.

Estoy con la versión 3.4.d, y esta ejecución me falla tanto lanzándola desde un main de java como de una aplicación JSP.

Gracias!!

Outcomes