I'm struggling with outofmemory exception when using the following:
public Response upload( String token, File file ) { FsDepot fsDepot = getApi(); Attachment attachment = new AttachmentBuilder() .mediaType( "application/gzip" ) .contentDisposition( new ContentDisposition( "form-data; name=\"data\" ; filename=\"" + file.getName() + "\"" ) ) .object( file ) .build(); Attachment tokenAttachment = new AttachmentBuilder() .object( token ) .contentDisposition( new ContentDisposition( "form-data; name=\"token\"" ) ) .mediaType( MediaType.TEXT_PLAIN ) .build(); MultipartBody multipartBody = new MultipartBody( Arrays.asList( attachment, tokenAttachment ) ); return fsDepot.upload( multipartBody.getAllAttachments() ); } protected <T> T getApi( Class<T> clazz, int timeoutInSeconds, URL apiBaseAddress, boolean verbose ) { List providers = Arrays.asList( new MultipartProvider(), new FormEncodingProvider<>() ); LoggingFeature loggingFeature = new LoggingFeature(null, null, 64000, false, false); T t = JAXRSClientFactory.create( apiBaseAddress.toExternalForm(), clazz, providers, verbose ? Collections.singletonList( loggingFeature ): Collections.emptyList(), null ); ClientConfiguration clientConfiguration = WebClient.getConfig( t ); clientConfiguration.getRequestContext().put( Message.MAINTAIN_SESSION, Boolean.TRUE ); HTTPConduit httpConduit = clientConfiguration.getHttpConduit(); TLSClientParameters tlsClientParameters = new TLSClientParameters(); tlsClientParameters.setDisableCNCheck( true ); tlsClientParameters.setTrustManagers( new TrustManager[]{new TrustAllTrustManager()}); httpConduit.setTlsClientParameters( tlsClientParameters ); HTTPClientPolicy httpClientPolicy = httpConduit.getClient(); httpClientPolicy.setAllowChunking( false ); httpClientPolicy.setConnection( ConnectionType.KEEP_ALIVE ); httpClientPolicy.setConnectionTimeout( TimeUnit.SECONDS.toMillis( 2 ) ); //have higher timeout on network than towards ADCM httpClientPolicy.setReceiveTimeout( TimeUnit.SECONDS.toMillis( timeoutInSeconds + 10 ) ); httpClientPolicy.setAutoRedirect( false ); httpConduit.setClient( httpClientPolicy ); return t; } -- -- David J. M. Karlsen - http://www.linkedin.com/in/davidkarlsen