axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "portnet mc (JIRA)" <j...@apache.org>
Subject [jira] Created: (AXIS2-3528) upload large file error! (java heap space)
Date Thu, 21 Feb 2008 07:26:43 GMT
upload large file error! (java heap space)
------------------------------------------

                 Key: AXIS2-3528
                 URL: https://issues.apache.org/jira/browse/AXIS2-3528
             Project: Axis 2.0 (Axis2)
          Issue Type: Bug
    Affects Versions: 1.3
         Environment: win xp  jdk 1.5.0_06  tomcat  5.0.28 axis2_1.3
            Reporter: portnet mc


i had tried to upload and download large file(about 300M) through axis2_1.3 mtom . i got a
error message on uploading test but download is ok.  code and config file modified are as
follows:

	public static boolean upload(String mailboxnum, short greetingType,
			File file, String fileType) {
		try {
			OMElement data = buildUploadEnvelope(mailboxnum, greetingType,
					file, fileType);
			Options options = buildOptions();
			ServiceClient sender = new ServiceClient();
			sender.setOptions(options);
			OMElement ome = sender.sendReceive(data);
			String b = ome.getText();
			return Boolean.parseBoolean(b);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	}

	public static InputStream download(String mailboxnum, short greetingType,
			String FileType) {
		try {
			OMElement data = buildDownloadEnvelope(mailboxnum, greetingType,
					FileType);
			Options options = buildOptions();
			ServiceClient sender = new ServiceClient();
			sender.setOptions(options);
			OMElement ome = sender.sendReceive(data);
			OMText binaryNode = (OMText) ome.getFirstOMChild();
			binaryNode.setOptimize(true);
			DataHandler actualDH = (DataHandler) binaryNode.getDataHandler();
			return actualDH.getInputStream();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	private static OMElement buildUploadEnvelope(String mailboxnum,
			short greetingType, File file, String FileType) {
		DataHandler expectedDH;
		OMFactory fac = OMAbstractFactory.getOMFactory();
		OMNamespace omNs = fac.createOMNamespace(
				"http://example.org/mtom/data", "x");
		OMElement data = fac.createOMElement("upload", omNs);
		OMElement fileContent = fac.createOMElement("fileContent", omNs);
		FileDataSource dataSource = new FileDataSource(file);
		expectedDH = new DataHandler(dataSource);
		OMText textData = fac.createOMText(expectedDH, true);
		fileContent.addChild(textData);
		OMElement mboxnum = fac.createOMElement("mailboxnum", omNs);
		mboxnum.setText(mailboxnum);
		OMElement gtType = fac.createOMElement("greetingType", omNs);
		gtType.setText(greetingType + "");
		OMElement fileType = fac.createOMElement("fileType", omNs);
		fileType.setText(FileType);

		data.addChild(mboxnum);
		data.addChild(gtType);
		data.addChild(fileType);
		data.addChild(fileContent);
		return data;
	}

	private static OMElement buildDownloadEnvelope(String mailboxnum,
			short greetingType, String FileType) {
		OMFactory fac = OMAbstractFactory.getOMFactory();
		OMNamespace omNs = fac.createOMNamespace(
				"http://example.org/mtom/data", "x");
		OMElement data = fac.createOMElement("getobject", omNs);
		OMElement mboxnum = fac.createOMElement("mailboxnum", omNs);
		mboxnum.setText(mailboxnum);
		OMElement gtType = fac.createOMElement("greetingType", omNs);
		gtType.setText(greetingType + "");
		OMElement fileType = fac.createOMElement("fileType", omNs);
		fileType.setText(FileType);
		data.addChild(mboxnum);
		data.addChild(gtType);
		data.addChild(fileType);
		return data;
	}

	private static Options buildOptions() {
		Options options = new Options();
		options.setSoapVersionURI(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
		options.setTo(targetEPR);
		// enabling MTOM in the client side
		options.setProperty(Constants.Configuration.ENABLE_MTOM,
				Constants.VALUE_TRUE);
		options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
		options.setProperty(Constants.Configuration.CACHE_ATTACHMENTS,
				Constants.VALUE_TRUE);
		options.setProperty(Constants.Configuration.ATTACHMENT_TEMP_DIR,
				TempDir);
		options
				.setProperty(Constants.Configuration.FILE_SIZE_THRESHOLD,
						"4000");

		return options;
	}

axis2.xml is modified like this :
    <parameter name="enableMTOM">true</parameter>
    <parameter name="enableSwA">true</parameter>

    <!--Uncomment if you want to enable file caching for attachments -->
    <parameter name="cacheAttachments">true</parameter>
    <parameter name="attachmentDIR">C:\\upload\\tep</parameter>
    <parameter name="sizeThreshold">4000</parameter>

there' an error when large file is upload as follows:
org.apache.axis2.AxisFault: Java heap space
	at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:271)
	at org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:202)
	at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:579)
	at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:508)
	at example.client.FileTransferClient1.upload(FileTransferClient.java:39)
	at example.client.FileTransferClient1.main(FileTransferClient.java:154)

i had change java_opts to -xms1024m and -xmx1024m , it looks like the same . there'r many
problems like this i have found 
still unsolved .



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Mime
View raw message