• The type javax.ws.rs.core.MediaType cannot be resolved. It is indirectly referenced from required .class files


    看到了http://stackoverflow.com/questions/5547162/eclipse-error-indirectly-referenced-from-required-class-files , 也没搞明白。 后面被证明, 实际上还是Unresolved compilation problems

    [ERROR] [09-30 11:04:19] org.springframework.web.context.ContextLoader - Context initialization failed
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'attachmentRestService' defined in file [/usr
    /lk/bin/tomcat-master/webapps/ROOT/WEB-INF/classes/net/oracle/ldap/cxf/rest/AttachmentRestService.class]: Instantiation of bean
    failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [net.oracle.ldap
    .cxf.rest.AttachmentRestService]: Constructor threw exception; nested exception is java.lang.Error: Unresolved compilation problems:

        The type javax.ws.rs.core.MediaType cannot be resolved. It is indirectly referenced from required .class files
        The import javax.ws.rs.GET cannot be resolved
        The import javax.ws.rs.POST cannot be resolved
        The import javax.ws.rs.Path cannot be resolved
        The import javax.ws.rs.Produces cannot be resolved
        The import javax.ws.rs.core.Context cannot be resolved
        The import javax.ws.rs.core.MediaType cannot be resolved
        Path cannot be resolved to a type
        The attribute value is undefined for the annotation type Path
        Produces cannot be resolved to a type
        The attribute value is undefined for the annotation type Produces
        MediaType cannot be resolved to a variable
        Context cannot be resolved to a type
        Context cannot be resolved to a type
        GET cannot be resolved to a type
        POST cannot be resolved to a type
        Produces cannot be resolved to a type
        The attribute value is undefined for the annotation type Produces
        MediaType cannot be resolved to a variable
        Path cannot be resolved to a type
        The attribute value is undefined for the annotation type Path
        GET cannot be resolved to a type
        POST cannot be resolved to a type
        Produces cannot be resolved to a type
        The attribute value is undefined for the annotation type Produces
        MediaType cannot be resolved to a variable
        Path cannot be resolved to a type
        The attribute value is undefined for the annotation type Path
        GET cannot be resolved to a type
        POST cannot be resolved to a type
        Path cannot be resolved to a type
        The attribute value is undefined for the annotation type Path
    
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:883)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:839)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
        at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
        at org.apache.catalina.core.StandardService.start(StandardService.java:525)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
    

    Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [net.oracle.ldap.cxf.rest.AttachmentRestService]: Constructor threw exception; nested exception is java.lang.Error: Unresolved compilation problems:
    The type javax.ws.rs.core.MediaType cannot be resolved. It is indirectly referenced from required .class files
    The import javax.ws.rs.GET cannot be resolved
    The import javax.ws.rs.POST cannot be resolved
    The import javax.ws.rs.Path cannot be resolved
    The import javax.ws.rs.Produces cannot be resolved
    The import javax.ws.rs.core.Context cannot be resolved
    The import javax.ws.rs.core.MediaType cannot be resolved
    Path cannot be resolved to a type
    The attribute value is undefined for the annotation type Path
    Produces cannot be resolved to a type
    The attribute value is undefined for the annotation type Produces
    MediaType cannot be resolved to a variable
    Context cannot be resolved to a type
    Context cannot be resolved to a type
    GET cannot be resolved to a type
    POST cannot be resolved to a type
    Produces cannot be resolved to a type
    The attribute value is undefined for the annotation type Produces
    MediaType cannot be resolved to a variable
    Path cannot be resolved to a type
    The attribute value is undefined for the annotation type Path
    GET cannot be resolved to a type
    POST cannot be resolved to a type
    Produces cannot be resolved to a type
    The attribute value is undefined for the annotation type Produces
    MediaType cannot be resolved to a variable
    Path cannot be resolved to a type
    The attribute value is undefined for the annotation type Path
    GET cannot be resolved to a type
    POST cannot be resolved to a type
    Path cannot be resolved to a type
    The attribute value is undefined for the annotation type Path

        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:115)
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:61)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:877)
        ... 31 more
    

    Caused by: java.lang.Error: Unresolved compilation problems:
    The type javax.ws.rs.core.MediaType cannot be resolved. It is indirectly referenced from required .class files
    The import javax.ws.rs.GET cannot be resolved
    The import javax.ws.rs.POST cannot be resolved
    The import javax.ws.rs.Path cannot be resolved
    The import javax.ws.rs.Produces cannot be resolved
    The import javax.ws.rs.core.Context cannot be resolved
    The import javax.ws.rs.core.MediaType cannot be resolved
    Path cannot be resolved to a type
    The attribute value is undefined for the annotation type Path
    Produces cannot be resolved to a type
    The attribute value is undefined for the annotation type Produces
    MediaType cannot be resolved to a variable
    Context cannot be resolved to a type
    Context cannot be resolved to a type
    GET cannot be resolved to a type
    POST cannot be resolved to a type
    Produces cannot be resolved to a type
    The attribute value is undefined for the annotation type Produces
    MediaType cannot be resolved to a variable
    Path cannot be resolved to a type
    The attribute value is undefined for the annotation type Path
    GET cannot be resolved to a type
    POST cannot be resolved to a type
    Produces cannot be resolved to a type
    The attribute value is undefined for the annotation type Produces
    MediaType cannot be resolved to a variable
    Path cannot be resolved to a type
    The attribute value is undefined for the annotation type Path
    GET cannot be resolved to a type
    POST cannot be resolved to a type
    Path cannot be resolved to a type
    The attribute value is undefined for the annotation type Path

        at net.oracle.ldap.cxf.rest.AttachmentRestService.<init>(AttachmentRestService.java:1)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:100)
        ... 33 more
    

    [ERROR] [09-30 11:04:19] net.jweb.listener.AppInitializerListener - 启动初始化异常:
    java.lang.ClassCastException: org.springframework.beans.factory.BeanCreationException cannot be cast to org.springframework.web.context.WebApplicationContext
    at net.jweb.listener.AppInitializerListener.contextInitialized(AppInitializerListener.java:92)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

    开始总还以为是缺少jar 呢, 但是jar 明明就是 lib 目录中的啊。。。 重启数次都不行,

    后面 看到 Unresolved compilation problems, 突然,想到, 可能是编译的问题吧。。

    找到AttachmentRestService, 反编译看看, 果然, 各个方法都是错误:

    throw new Error("Unresolved compilation problems: GET cannot be resolved to a type POST cannot be resolved to a type Produces cannot be resolved to a type The attribute value is undefined for the annotation type Produces MediaType cannot be resolved to a variable Path cannot be resolved to a type The attribute value is undefined for the annotation type Path ");

    package net.oracle.ldap.cxf.rest;

    import Context;
    import GET;
    import POST;
    import java.text.NumberFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import javax.annotation.Resource;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import net.jweb.services.CommonFileService;
    import net.jweb.services.UserFileService;
    import net.jweb.services.UserService;
    import net.oracle.ldap.cxf.bean.AttachmentResponseEntity;
    import org.apache.log4j.Logger;
    import org.springframework.stereotype.Component;

    @Component("attachmentRestService")
    public class AttachmentRestService
    {
    private Logger logger;

    @Resource(name="commonFileServiceImpl")
    private CommonFileService commonFileService;

    @Resource(name="userServiceImpl")
    private UserService userService;

    @Resource(name="userFileServiceImpl")
    private UserFileService userFileService;

    @Context
    HttpServletRequest request;

    @Context
    HttpServletResponse response;
    private static SimpleDateFormat sdf;
    private static NumberFormat numberFormat;

    @GET
    @POST
    public AttachmentResponseEntity delete()
    {
    throw new Error("Unresolved compilation problems: GET cannot be resolved to a type POST cannot be resolved to a type Produces cannot be resolved to a type The attribute value is undefined for the annotation type Produces MediaType cannot be resolved to a variable Path cannot be resolved to a type The attribute value is undefined for the annotation type Path ");
    }

    @GET
    @POST
    public AttachmentResponseEntity searchTagUpdate()
    {
    throw new Error("Unresolved compilation problems: GET cannot be resolved to a type POST cannot be resolved to a type Produces cannot be resolved to a type The attribute value is undefined for the annotation type Produces MediaType cannot be resolved to a variable Path cannot be resolved to a type The attribute value is undefined for the annotation type Path ");
    }

    @GET
    @POST
    public synchronized void pushFileInfo()
    {
    throw new Error("Unresolved compilation problems: GET cannot be resolved to a type POST cannot be resolved to a type Path cannot be resolved to a type The attribute value is undefined for the annotation type Path ");
    }

    private Date dateFormate(String paramString)
    {
    throw new Error("Unresolved compilation problem: ");
    }

    private void doResponseJson(String paramString)
    {
    throw new Error("Unresolved compilation problem: ");
    }
    }

    而源码是:

    package net.oracle.ldap.cxf.rest;

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.text.NumberFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.List;

    import javax.annotation.Resource;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.ws.rs.GET;
    import javax.ws.rs.POST;
    import javax.ws.rs.Path;
    import javax.ws.rs.Produces;
    import javax.ws.rs.core.Context;
    import javax.ws.rs.core.MediaType;

    import net.jweb.common.model.CommonFileCache;
    import net.jweb.common.model.CommonFileCache.Type;
    import net.jweb.common.model.FileCache;
    import net.jweb.common.model.User;
    import net.jweb.common.util.Request;
    import net.jweb.services.CommonFileService;
    import net.jweb.services.UserFileService;
    import net.jweb.services.UserService;
    import net.oracle.ldap.cxf.bean.AttachmentResponseEntity;

    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpStatus;
    import org.apache.commons.httpclient.NameValuePair;
    import org.apache.commons.httpclient.methods.PostMethod;
    import org.apache.commons.lang3.StringUtils;
    import org.apache.log4j.Logger;
    import org.springframework.stereotype.Component;

    import com.google.gson.JsonArray;
    import com.google.gson.JsonObject;

    /**
    *
    */
    @Component("attachmentRestService")
    @Path("attachmentRestService")
    @Produces({MediaType.APPLICATION_JSON})
    public class AttachmentRestService {

    private Logger logger = Logger.getLogger(this.getClass().getName());
    @Resource(name="commonFileServiceImpl")
    private CommonFileService commonFileService;
    @Resource(name="userServiceImpl")
    private UserService userService;
    @Resource(name="userFileServiceImpl")
    private UserFileService userFileService;
    
    @Context
    HttpServletRequest request;
    @Context
    HttpServletResponse response;
    
    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    private static NumberFormat numberFormat = NumberFormat.getInstance();
    
    static
    {
    	numberFormat.setMinimumIntegerDigits(6);
    	numberFormat.setGroupingUsed(false);
    }
    
    @GET
    @POST
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/Delete")
    //附件删除接口
    public AttachmentResponseEntity delete() {
    	AttachmentResponseEntity responseEntity = new AttachmentResponseEntity();
    	String app = "";
    	try
    	{
    		String username = Request.getString(request, "user");
    		String password = Request.getString(request, "password");
    		app = Request.getString(request, "app");
    		long fileId = Request.getLong(request, "fileId", 0);
    		int fileType = Request.getInt(request, "fileType", 1);
    		//参数完整性校验
    		/*if(requestEntity == null || requestEntity.getCertificate() == null)
    		{
    			responseEntity.setStatus("ERROR");
    			responseEntity.setMsg("请求参数不能为空!");
    			return responseEntity;
    		}*/
    		
    		//user:erp1,password:E1D5F4969E5BE6FB46F14A008C51C7FA
    		String wsUser = "erp1";
    		String wsPassword = "E1D5F4969E5BE6FB46F14A008C51C7FA";
    		//用户校验
    		if(!StringUtils.equals(wsUser, username) || !StringUtils.equals(wsPassword, password))
    		{
    			responseEntity.setStatus("ERROR");
    			responseEntity.setMsg("没有足够的操作权限!");
    			return responseEntity;
    		}
    		
    		if(fileType == 1)
    		{
    			CommonFileCache fc = null;
    			if(fileId > 0)
    			{
    				fc = commonFileService.queryByPK(CommonFileCache.class, fileId);
    				if(fc != null && Type.attachment.match(fc.getType()) && fc.isFile())
    				{
    					Date nowDate = new Date();
    					long newRevision = commonFileService.commonFileRevision();
    					User user = userService.queryByPK(User.class, fc.getUserId());
    					commonFileService.deleteFile(user, fc, newRevision, nowDate);
    					logger.info(String.format("附件删除[u=%s,p=%s]:app=%s,fileId=%s,fileType=%s", username, password, app, fileId, fileType));
    					responseEntity.setStatus("SUCCESS");
    					responseEntity.setMsg("操作成功");
    				}
    				else
    				{
    					responseEntity.setStatus("ERROR");
    					responseEntity.setMsg("操作的附件不存在!");
    					return responseEntity;
    				}
    			}
    			else
    			{
    				responseEntity.setStatus("ERROR");
    				responseEntity.setMsg("参数[fileId]无效!");
    				return responseEntity;
    			}
    		}
    		else
    		{
    			responseEntity.setStatus("ERROR");
    			responseEntity.setMsg("调用了未实现的服务!");
    			return responseEntity;
    		}
    	} catch (Exception e) {
    		e.printStackTrace();
    		logger.error("webservice调用异常[app="+app+"]:",e);
    		responseEntity.setStatus("ERROR");
    		responseEntity.setMsg("服务调用错误,请联系管理员!");
    	}
    	return responseEntity;
    }
    
    @GET
    @POST
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/SearchTagUpdate")
    //附近逻辑路径更新接口
    public AttachmentResponseEntity searchTagUpdate() {
    	AttachmentResponseEntity responseEntity = new AttachmentResponseEntity();
    	String app = "";
    	try
    	{
    		String username = Request.getString(request, "user");
    		String password = Request.getString(request, "password");
    		app = Request.getString(request, "app");
    		long fileId = Request.getLong(request, "fileId", 0);
    		int fileType = Request.getInt(request, "fileType", 1);
    		String sTag = Request.getString(request, "sTag");
    		//参数完整性校验
    		/*if(requestEntity == null || requestEntity.getCertificate() == null)
    		{
    			responseEntity.setStatus("ERROR");
    			responseEntity.setMsg("请求参数不能为空!");
    			return responseEntity;
    		}*/
    		
    		//user:erp1,password:E1D5F4969E5BE6FB46F14A008C51C7FA
    		String wsUser = "erp1";
    		String wsPassword = "E1D5F4969E5BE6FB46F14A008C51C7FA";
    		//用户校验
    		if(!StringUtils.equals(wsUser, username) || !StringUtils.equals(wsPassword, password))
    		{
    			responseEntity.setStatus("ERROR");
    			responseEntity.setMsg("没有足够的操作权限!");
    			return responseEntity;
    		}
    		
    		if(fileType == 1)
    		{
    			CommonFileCache fc = null;
    			if(fileId > 0)
    			{
    				fc = commonFileService.queryByPK(CommonFileCache.class, fileId);
    				if(fc != null && Type.attachment.match(fc.getType()) && fc.isFile())
    				{
    					//Date nowDate = new Date();
    					//long newRevision = commonFileService.commonFileRevision();
    					//User user = userService.queryByPK(User.class, fc.getUserId());
    					fc.setFileAttributeValue(29, sTag);//搜索标识:从最后一个自定义属性设置开始
    					commonFileService.update(fc);
    					//logger.info(String.format("搜索标识更新[u=%s,p=%s]:app=%s,fileId=%s,fileType=%s,sTag=%s", username, password, app, fileId, fileType, sTag));
    					responseEntity.setStatus("SUCCESS");
    					responseEntity.setMsg("操作成功");
    				}
    				else
    				{
    					responseEntity.setStatus("ERROR");
    					responseEntity.setMsg("操作的附件不存在!");
    					return responseEntity;
    				}
    			}
    			else
    			{
    				responseEntity.setStatus("ERROR");
    				responseEntity.setMsg("参数[fileId]无效!");
    				return responseEntity;
    			}
    		}
    		else
    		{
    			responseEntity.setStatus("ERROR");
    			responseEntity.setMsg("调用了未实现的服务!");
    			return responseEntity;
    		}
    	} catch (Exception e) {
    		e.printStackTrace();
    		logger.error("webservice调用异常[app="+app+"]:",e);
    		responseEntity.setStatus("ERROR");
    		responseEntity.setMsg("服务调用错误,请联系管理员!");
    	}
    	return responseEntity;
    }
    
    @SuppressWarnings("unchecked")
    @GET
    @POST
    //@Produces(MediaType.APPLICATION_JSON)
    @Path("/push2CrlandHome")
    //将文件信息推送到crland门户系统
    public synchronized void pushFileInfo() {
    	String date1 = Request.getString(request, "begin");
    	String date2 = Request.getString(request, "end");
    	
    	Date begin = dateFormate(date1);
    	Date end = dateFormate(date2);
    	if(begin == null)
    	{
    		begin = new Date();
    	}
    	if(end == null)
    	{
    		end = new Date();
    	}
    	StringBuffer hql = new StringBuffer();
    	hql.append("from FileCache t where t.lastModified>=").append(begin.getTime());
    	hql.append(" and t.lastModified<").append(end.getTime());
    	//hql.append(" and id=10046");
    	List<FileCache> fcList = userFileService.query(hql.toString());
    	
    	String requestEntity = "";
    	if(fcList != null && fcList.size() > 0)
    	{
    		String fileSource = "东软云盘";//东软文档平台、东软云盘
    		JsonArray array = new JsonArray();
    		JsonObject jo = null;
    		int status = 1;//默认状态为创建状态
    		User user = null;
    		for(FileCache fc : fcList)
    		{
    			jo = new JsonObject();
    			if(fc.isDelete())
    			{
    				status = 3;//删除状态
    			}
    			else if(fc.getLastModified()> fc.getAddTime().getTime())
    			{
    				status = 2;//修改状态
    			}
    			user = userService.getUserBaseByUserId(fc.getUserId());
    			jo.addProperty("id", fc.getId()+"");
    			jo.addProperty("source", fileSource);//来源标识
    			jo.addProperty("loginname", user!=null?user.getUsername():"");//用户登录名
    			jo.addProperty("publisher", user!=null?user.getName():"");//文件上传人/文件所有人/文件更新人
    			jo.addProperty("downloadpath", "http://localhost:8090/disk/download.action");//文件下载路径
    			jo.addProperty("browsingpath", "http://localhost:8090/disk/myFileView.action");//文件预览路径
    			jo.addProperty("filepath", fc.getPath());//文件上传路径/文件存放路径
    			jo.addProperty("filename", fc.getName());//文件名
    			jo.addProperty("filesize", fc.getSize()+"");//文件大小
    			jo.addProperty("uploadtime", sdf.format(fc.getAddTime()));//上传时间
    			jo.addProperty("status", status+"");
    			//jo.addProperty("status", "1");
    			
    			array.add(jo);
    		}
    		requestEntity = array.toString();
    	}
    	
    	/*if(StringUtils.isNotEmpty(requestEntity))
    	{
    		System.out.println("stop.");
    		return;
    	}*/
    	//String api = "http://homeuat.crland.cn/CrcDocWS/RestApplication/RestData/DocInterface";
    	String api = "http://10.72.1.101:10039/CrcDocWS/RestApplication/RestData/DocInterface";
    	
    	String response = null;
    	PostMethod pm = null;
    	BufferedReader rd = null;
    	try
    	{
    		pm = new PostMethod(api){@Override
    		public String getRequestCharSet() {
    			return "UTF-8";
    		}};
    		pm.addParameter(new NameValuePair("strfile", requestEntity));
    		HttpClient client = new HttpClient();
    		int statusCode = client.executeMethod(pm);
    		
    		switch (statusCode) {
    		case HttpStatus.SC_OK://200
    			rd = new BufferedReader(new InputStreamReader(pm.getResponseBodyAsStream(), "UTF-8"));
    			StringBuffer stringBuffer = new StringBuffer();
    			String line;
    			while ((line = rd.readLine()) != null)
    			{
    				stringBuffer.append(line);
    			}
    			response = stringBuffer.toString();
    			break;
    		case HttpStatus.SC_MOVED_PERMANENTLY://301
    		case HttpStatus.SC_MOVED_TEMPORARILY://302
    			break;
    		default:
    			response = statusCode+"";
    			break;
    		}
    	} catch (IOException ex) {
    		ex.printStackTrace();
    		logger.error("文件信息推送失败:",ex);
    	} finally {
    		if(pm != null) pm.releaseConnection();//释放连接
    		try {
    			if(rd != null) rd.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    			logger.error(e);
    		}
    	}
    	System.out.println("response="+response);
    }
    
    private Date dateFormate(String dateStr) {
    	try {
    		return sdf.parse(dateStr);
    	} catch (ParseException e) {
    		e.printStackTrace();
    	}
    	return null;
    }
    
    private void doResponseJson(String responseText) {
    	try
    	{
    		response.setContentType("application/json;charset=UTF-8");
    		response.setCharacterEncoding("UTF-8");
    		response.setHeader("Pragma", "No-cache");
    		response.setDateHeader("Expires", 0);
    		response.setHeader("Access-Control-Allow-Origin", "*");
    		response.addHeader( "Cache-Control", "must-revalidate" ); 
    		response.addHeader( "Cache-Control", "no-cache" ); 
    		response.addHeader( "Cache-Control", "no-store" );
    		response.addHeader( "Cache-Control", "must-revalidate" ); 
    		response.addHeader( "Cache-Control", "post-check=0" ); 
    		response.addHeader( "Cache-Control", "pre-check=0" ); 
    		PrintWriter out = response.getWriter();
    		out.write(responseText);
    		out.flush();
    		out.close();
    	}
    	catch(Exception e)
    	{
    		logger.error(e.getMessage(),e);
    	}
    }
    

    }

  • 相关阅读:
    剑指offer[19]——顺时针打印矩阵
    剑指offer[17]——树的子结构
    剑指offer[16]——合并两个排序的链表
    剑指offer[15]——反转链表
    剑指offer[14]——链表中倒数第k个结点
    剑指offer[13]——调整数组顺序使奇数位于偶数前面
    剑指offer[12]——数值的整数次方
    剑指offer[11]——二进制中1的个数
    剑指offer[10]——矩形覆盖
    linux的基本命令
  • 原文地址:https://www.cnblogs.com/FlyAway2013/p/5923681.html
Copyright © 2020-2023  润新知