Package org.springside.examples.showcase.ws.server.impl

Source Code of org.springside.examples.showcase.ws.server.impl.LargeImageWebServiceImpl

package org.springside.examples.showcase.ws.server.impl;

import java.io.File;
import java.io.IOException;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.jws.WebService;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springside.examples.showcase.ws.server.LargeImageWebService;
import org.springside.examples.showcase.ws.server.WsConstants;
import org.springside.examples.showcase.ws.server.result.LargeImageResult;
import org.springside.examples.showcase.ws.server.result.WSResult;

/**
* LargeImageWebService服务端实现类.
*
* 客户端实现见功能测试用例.
*
* @see LargeImageWebService
*
* @author calvin
*/
@WebService(serviceName = "LargeImageService", portName = "LargeImageServicePort", endpointInterface = "org.springside.examples.showcase.ws.server.LargeImageWebService", targetNamespace = WsConstants.NS)
public class LargeImageWebServiceImpl implements LargeImageWebService, ApplicationContextAware {

  private static Logger logger = LoggerFactory.getLogger(LargeImageWebServiceImpl.class);

  private ApplicationContext applicationContext;

  /**
   * @see LargeImageWebService#getImage()
   */
  public LargeImageResult getImage() {

    try {
      //采用applicationContext获取Web应用中的文件.
      File image = applicationContext.getResource("/img/logo.jpg").getFile();

      //采用activation的DataHandler实现Streaming传输.
      DataSource dataSource = new FileDataSource(image);
      DataHandler dataHandler = new DataHandler(dataSource);

      LargeImageResult result = new LargeImageResult();
      result.setImageData(dataHandler);
      return result;
    } catch (IOException e) {
      logger.error(e.getMessage(), e);
      return WSResult.buildResult(LargeImageResult.class, WSResult.IMAGE_ERROR, "Image reading error.");
    }

  }

  public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
    this.applicationContext = applicationContext;
  }
}
TOP

Related Classes of org.springside.examples.showcase.ws.server.impl.LargeImageWebServiceImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.