类org.springframework.http.converter.ResourceRegionHttpMessageConverter源码实例Demo

下面列出了怎么用org.springframework.http.converter.ResourceRegionHttpMessageConverter的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: lams   文件: ResourceHttpRequestHandler.java
@Override
public void afterPropertiesSet() throws Exception {
	if (logger.isWarnEnabled() && CollectionUtils.isEmpty(this.locations)) {
		logger.warn("Locations list is empty. No resources will be served unless a " +
				"custom ResourceResolver is configured as an alternative to PathResourceResolver.");
	}

	if (this.resourceResolvers.isEmpty()) {
		this.resourceResolvers.add(new PathResourceResolver());
	}
	initAllowedLocations();

	if (this.resourceHttpMessageConverter == null) {
		this.resourceHttpMessageConverter = new ResourceHttpMessageConverter();
	}
	if (this.resourceRegionHttpMessageConverter == null) {
		this.resourceRegionHttpMessageConverter = new ResourceRegionHttpMessageConverter();
	}

	this.contentNegotiationStrategy = initContentNegotiationStrategy();
}
 
@Override
public void afterPropertiesSet() throws Exception {
	resolveResourceLocations();

	if (logger.isWarnEnabled() && CollectionUtils.isEmpty(this.locations)) {
		logger.warn("Locations list is empty. No resources will be served unless a " +
				"custom ResourceResolver is configured as an alternative to PathResourceResolver.");
	}

	if (this.resourceResolvers.isEmpty()) {
		this.resourceResolvers.add(new PathResourceResolver());
	}

	initAllowedLocations();

	// Initialize immutable resolver and transformer chains
	this.resolverChain = new DefaultResourceResolverChain(this.resourceResolvers);
	this.transformerChain = new DefaultResourceTransformerChain(this.resolverChain, this.resourceTransformers);

	if (this.resourceHttpMessageConverter == null) {
		this.resourceHttpMessageConverter = new ResourceHttpMessageConverter();
	}
	if (this.resourceRegionHttpMessageConverter == null) {
		this.resourceRegionHttpMessageConverter = new ResourceRegionHttpMessageConverter();
	}

	this.contentNegotiationStrategy = initContentNegotiationStrategy();
}
 
@Override
public void afterPropertiesSet() throws Exception {
	resolveResourceLocations();

	if (logger.isWarnEnabled() && CollectionUtils.isEmpty(this.locations)) {
		logger.warn("Locations list is empty. No resources will be served unless a " +
				"custom ResourceResolver is configured as an alternative to PathResourceResolver.");
	}

	if (this.resourceResolvers.isEmpty()) {
		this.resourceResolvers.add(new PathResourceResolver());
	}

	initAllowedLocations();

	// Initialize immutable resolver and transformer chains
	this.resolverChain = new DefaultResourceResolverChain(this.resourceResolvers);
	this.transformerChain = new DefaultResourceTransformerChain(this.resolverChain, this.resourceTransformers);

	if (this.resourceHttpMessageConverter == null) {
		this.resourceHttpMessageConverter = new ResourceHttpMessageConverter();
	}
	if (this.resourceRegionHttpMessageConverter == null) {
		this.resourceRegionHttpMessageConverter = new ResourceRegionHttpMessageConverter();
	}

	this.contentNegotiationStrategy = initContentNegotiationStrategy();
}
 
/**
 * Return the configured resource region converter.
 * @since 4.3
 */
@Nullable
public ResourceRegionHttpMessageConverter getResourceRegionHttpMessageConverter() {
	return this.resourceRegionHttpMessageConverter;
}
 
/**
 * Return the configured resource region converter.
 * @since 4.3
 */
@Nullable
public ResourceRegionHttpMessageConverter getResourceRegionHttpMessageConverter() {
	return this.resourceRegionHttpMessageConverter;
}
 
源代码6 项目: spring-fu   文件: ResourceConverterInitializer.java
@Override
public void initialize(GenericApplicationContext context) {
	context.registerBean("resourceHttpMessageConverter", HttpMessageConverter.class, (Supplier<HttpMessageConverter>) ResourceHttpMessageConverter::new);
	context.registerBean("resourceRegionHttpMessageConverter", HttpMessageConverter.class, ResourceRegionHttpMessageConverter::new);
}
 
@Override
public void afterPropertiesSet() throws Exception {
	this.setResourceHttpMessageConverter(new ResourceHttpMessageConverter());
	this.setResourceRegionHttpMessageConverter(new ResourceRegionHttpMessageConverter());
}
 
源代码8 项目: sakai   文件: ProfileEntityProvider.java
@EntityCustomAction(action="pronunciation",viewKey=EntityView.VIEW_SHOW)
public Object getNamePronunciation(OutputStream out, EntityView view, Map<String,Object> params, EntityReference ref) {
	if (!sakaiProxy.isLoggedIn()) {
		throw new SecurityException("You must be logged in to get the name pronunciation of the student.");
	}
	String uuid = sakaiProxy.ensureUuid(ref.getId());
	if(StringUtils.isBlank(uuid)) {
		throw new EntityNotFoundException("Invalid user.", ref.getId());
	}
	
	MimeTypeByteArray mtba = profileLogic.getUserNamePronunciation(uuid);
	if(mtba != null && mtba.getBytes() != null) {
		try {
			HttpServletResponse response = requestGetter.getResponse();
			HttpServletRequest request = requestGetter.getRequest();
			response.setHeader("Expires", "0");
			response.setHeader("Pragma", "no-cache");
			response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
			response.setContentType(mtba.getMimeType());

			// Are we processing a Range request
			if (request.getHeader(HttpHeaders.RANGE) == null) {
				// Not a Range request
				byte[] bytes = mtba.getBytes();
				response.setContentLengthLong(bytes.length);
				out.write(bytes);
				return new ActionReturn(Formats.UTF_8, mtba.getMimeType() , out);
				} else {
				// A Range request - we use springs HttpRange class
				Resource resource = new ByteArrayResource(mtba.getBytes());
				response.setHeader(HttpHeaders.ACCEPT_RANGES, "bytes");
				response.setContentLengthLong(resource.contentLength());
				response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT);
				try {
					ServletServerHttpRequest inputMessage = new ServletServerHttpRequest(request);
					ServletServerHttpResponse outputMessage = new ServletServerHttpResponse(response);

					List<HttpRange> httpRanges = inputMessage.getHeaders().getRange();
					ResourceRegionHttpMessageConverter messageConverter = new ResourceRegionHttpMessageConverter();

					if (httpRanges.size() == 1) {
						ResourceRegion resourceRegion = httpRanges.get(0).toResourceRegion(resource);
						messageConverter.write(resourceRegion, null, outputMessage);
					} else {
						messageConverter.write(HttpRange.toResourceRegions(httpRanges, resource), null, outputMessage);
					}
				} catch (IllegalArgumentException iae) {
					response.setHeader("Content-Range", "bytes */" + resource.contentLength());
					response.sendError(HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE);
					log.warn("Name pronunciation request failed to send the requested range for {}, {}", ref.getReference(), iae.getMessage());
				}
			}
		} catch (Exception e) {
			throw new EntityException("Name pronunciation request failed, " + e.getMessage(), ref.getReference());
		}
	}
	return null;
}
 
源代码9 项目: sakai   文件: ProfileEntityProvider.java
@EntityCustomAction(action="pronunciation",viewKey=EntityView.VIEW_SHOW)
public Object getNamePronunciation(OutputStream out, EntityView view, Map<String,Object> params, EntityReference ref) {
	if (!sakaiProxy.isLoggedIn()) {
		throw new SecurityException("You must be logged in to get the name pronunciation of the student.");
	}
	String uuid = sakaiProxy.ensureUuid(ref.getId());
	if(StringUtils.isBlank(uuid)) {
		throw new EntityNotFoundException("Invalid user.", ref.getId());
	}
	
	MimeTypeByteArray mtba = profileLogic.getUserNamePronunciation(uuid);
	if(mtba != null && mtba.getBytes() != null) {
		try {
			HttpServletResponse response = requestGetter.getResponse();
			HttpServletRequest request = requestGetter.getRequest();
			response.setHeader("Expires", "0");
			response.setHeader("Pragma", "no-cache");
			response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
			response.setContentType(mtba.getMimeType());

			// Are we processing a Range request
			if (request.getHeader(HttpHeaders.RANGE) == null) {
				// Not a Range request
				byte[] bytes = mtba.getBytes();
				response.setContentLengthLong(bytes.length);
				out.write(bytes);
				return new ActionReturn(Formats.UTF_8, mtba.getMimeType() , out);
				} else {
				// A Range request - we use springs HttpRange class
				Resource resource = new ByteArrayResource(mtba.getBytes());
				response.setHeader(HttpHeaders.ACCEPT_RANGES, "bytes");
				response.setContentLengthLong(resource.contentLength());
				response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT);
				try {
					ServletServerHttpRequest inputMessage = new ServletServerHttpRequest(request);
					ServletServerHttpResponse outputMessage = new ServletServerHttpResponse(response);

					List<HttpRange> httpRanges = inputMessage.getHeaders().getRange();
					ResourceRegionHttpMessageConverter messageConverter = new ResourceRegionHttpMessageConverter();

					if (httpRanges.size() == 1) {
						ResourceRegion resourceRegion = httpRanges.get(0).toResourceRegion(resource);
						messageConverter.write(resourceRegion, null, outputMessage);
					} else {
						messageConverter.write(HttpRange.toResourceRegions(httpRanges, resource), null, outputMessage);
					}
				} catch (IllegalArgumentException iae) {
					response.setHeader("Content-Range", "bytes */" + resource.contentLength());
					response.sendError(HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE);
					log.warn("Name pronunciation request failed to send the requested range for {}, {}", ref.getReference(), iae.getMessage());
				}
			}
		} catch (Exception e) {
			throw new EntityException("Name pronunciation request failed, " + e.getMessage(), ref.getReference());
		}
	}
	return null;
}
 
/**
 * Configure the {@link ResourceRegionHttpMessageConverter} to use.
 * <p>By default a {@link ResourceRegionHttpMessageConverter} will be configured.
 * @since 4.3
 */
public void setResourceRegionHttpMessageConverter(@Nullable ResourceRegionHttpMessageConverter messageConverter) {
	this.resourceRegionHttpMessageConverter = messageConverter;
}
 
/**
 * Configure the {@link ResourceRegionHttpMessageConverter} to use.
 * <p>By default a {@link ResourceRegionHttpMessageConverter} will be configured.
 * @since 4.3
 */
public void setResourceRegionHttpMessageConverter(@Nullable ResourceRegionHttpMessageConverter messageConverter) {
	this.resourceRegionHttpMessageConverter = messageConverter;
}
 
源代码12 项目: lams   文件: ResourceHttpRequestHandler.java
/**
 * Configure the {@link ResourceRegionHttpMessageConverter} to use.
 * <p>By default a {@link ResourceRegionHttpMessageConverter} will be configured.
 * @since 4.3
 */
public void setResourceRegionHttpMessageConverter(ResourceRegionHttpMessageConverter resourceRegionHttpMessageConverter) {
	this.resourceRegionHttpMessageConverter = resourceRegionHttpMessageConverter;
}
 
源代码13 项目: lams   文件: ResourceHttpRequestHandler.java
/**
 * Return the configured resource region converter.
 * @since 4.3
 */
public ResourceRegionHttpMessageConverter getResourceRegionHttpMessageConverter() {
	return this.resourceRegionHttpMessageConverter;
}
 
 类所在包
 类方法
 同包方法