2015-03-31 57 views
1

我有一个ResponseModel类,我想发送它的对象以响应休息。但我收到此错误:如何发送对象作为泽西休息时的响应

​​

我不能使用Maven我project.So不能添加在pom.xml的球衣依赖。

import java.io.File; 

import java.io.IOException; 
import java.io.InputStream; 

import javax.servlet.http.HttpServletRequest; 
import javax.ws.rs.Consumes; 
import javax.ws.rs.POST; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.*; 
import javax.ws.rs.core.Response.ResponseBuilder; 
import javax.xml.bind.annotation.XmlRootElement; 

/*import org.codehaus.jackson.JsonGenerationException; 
import org.codehaus.jackson.map.JsonMappingException; 
import org.codehaus.jackson.map.ObjectMapper;*/ 
import org.json.simple.JSONObject; 
import org.json.simple.parser.JSONParser; 
import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 

import com.tcs.DataShare.Client.DataShareServiceClient; 
import com.tcs.DataShare.Client.GetFilesOnLocal; 
import com.tcs.DataShare.Constants.DataShareConstants; 
import com.tcs.srl.message.model.ResponseModel; 
import com.sun.jersey.api.client.Client; 
import com.sun.jersey.api.client.ClientResponse; 

@Path("/ConfigureAndrew") 
@XmlRootElement 
public class ConfigureAndrew { 

    private static final Logger LOGGER = LoggerFactory 
      .getLogger(ConfigureAndrew.class); 
    private ClientResponse response; 

    @Path("/configureAndrew") 
    @POST 

    @Produces(MediaType.APPLICATION_JSON) 

    public ResponseModel configureAndrew(@Context HttpServletRequest requestObj, 
      String serviceData) { 

     LOGGER.debug("Inside Configure Andrew web service: "); 
     JSONParser parser = new JSONParser(); 


     String isSuccess = "false"; 
     ResponseModel result=null; 
     try { 
      result = new ResponseModel(); 

      String headerString = requestObj.getHeader("header"); 

      JSONObject serviceJSON = (JSONObject) parser.parse(serviceData); 

      String datashareURL = (String) serviceJSON 
        .get(DataShareConstants.DATASHARE_URL); 

      String datasharePort = (String) serviceJSON 
        .get(DataShareConstants.DATASHARE_PORT); 
      System.out.println("datasharePort: " + datasharePort); 
      String servicename = (String) serviceJSON 
        .get(DataShareConstants.SERVICE_NAME); 
      String appname = (String) serviceJSON 
        .get(DataShareConstants.APP_NAME); 
      String version = (String) serviceJSON 
        .get(DataShareConstants.APP_VERSION); 
      String path = (String) serviceJSON.get(DataShareConstants.APP_PATH); 

      DataShareServiceClient dataShareServiceClient = new DataShareServiceClient(
        datashareURL, datasharePort, servicename); 
      InputStream inputStream = dataShareServiceClient 
        .zipFolderWithSubsequestFolder(path); 
      if (inputStream.available() != 0) { 
       System.out.println("In the input stream"); 
       GetFilesOnLocal getFilesOnLocal = new GetFilesOnLocal(); 
       result = getFilesOnLocal.getFiles(inputStream, result); 
       LOGGER.debug("Input stream contains data"); 
      } else { 
       LOGGER.error("Input stream is empty"); 

      } 
      LOGGER.debug("DatashareServices :completed configure Andrew"); 
      isSuccess = "true"; 

      result.setSuccess("true"); 
      result.setErrors(null); 
      result.setData("data is to be added"); 

     } catch (Exception e) { 
      e.printStackTrace(); 
      LOGGER.error("DatashareServices :configureAndrew service failed " 
        + e); 
      isSuccess = "false"; 
      result.getErrors().add("Error in configureAndrew method"); 

     } 


     System.out.println("result is"+result.getSuccess()); 

     JSONObject res=new JSONObject(); 

     return result; 


    } 

} 

ResponseModel POJO类

package com.tcs.ngps.sip.model; 

import java.io.Serializable; 
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 

public class ResponseModel implements Serializable{ 
    String success; 
    List errors; 
    public String getSuccess() { 
     return success; 
    } 
    public void setSuccess(String success) { 
     this.success = success; 
    } 
    public List getErrors() { 
     return errors; 
    } 
    public void setErrors(List errors) { 
     this.errors = errors; 
    } 
    public List getWarnings() { 
     return warnings; 
    } 
    public void setWarnings(List warnings) { 
     this.warnings = warnings; 
    } 
    public Object getData() { 
     return data; 
    } 
    public void setData(Object data) { 
     this.data = data; 
    } 
    List warnings; 
    Object data; 
    String transactionId; 

    public String getTransactionId() { 
     return transactionId; 
    } 
    public void setTransactionId(String transactionId) { 
     this.transactionId = transactionId; 
    } 
    public ResponseModel(){ 

     this.errors = new ArrayList<>(); 
     this.warnings = new ArrayList<>(); 
     this.data = new HashMap<>(); 

    } 
    public ResponseModel(String success, List errors, List warnings, 
      HashMap data,String transactionId) { 
     super(); 
     this.success = success; 
     this.errors = errors; 
     this.warnings = warnings; 
     this.data = data; 
     this.transactionId=transactionId; 
    } 

} 

的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    id="WebApp_ID" version="2.5"> 
    <display-name>DataShareWebService</display-name> 
    <welcome-file-list> 
     <welcome-file>index.html</welcome-file> 
     <welcome-file>index.htm</welcome-file> 
     <welcome-file>index.jsp</welcome-file> 
     <welcome-file>default.html</welcome-file> 
     <welcome-file>default.htm</welcome-file> 
     <welcome-file>default.jsp</welcome-file> 
    </welcome-file-list> 
    <servlet> 
     <servlet-name>Jersey REST Service</servlet-name> 
     <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
     <init-param> 
      <param-name>com.sun.jersey.config.property.packages</param-name> 
      <param-value>com.tcs.DataShare.WebService</param-value> 
     </init-param> 
     <init-param> 
      <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name> 
      <param-value>true</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Jersey REST Service</servlet-name> 
     <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

回答

0

检查一下您是否包括了所有必需的依赖在你的类路径Jersery功能。我想你已经错过了包括杰克逊特征:

检查是否有jersey-media-json-jackson-<required-vesrion>.jar添加到您的类路径中。

+0

我的项目中没有maven。所以我可以添加pom.xml?我使用ANT构建了我的项目。 – Creature 2015-03-31 06:11:24

+0

@SonalRuhatiya对不起,我误解了你的问题。修改我的答案。 – 2015-03-31 06:23:57

+0

我在我的Web-INF - > lib文件夹中有以下jar 1)asm-3.3.1.jar 2)jersey-bundle-1.14.jar 3)jersey-client-1.17.jar 4)json-simple-1.1。 1.jar 5)logback-access-1.0.9.jar 6)logback-classic-1.0.13.jar 7)logback-core-1.0.13.jar 8)servlet-api.jar 9)slf4j-api-1.7 .2.jar 10)slf4j-ext-1.6.1.jar我在项目构建路径中添加了1)jackson-core-asl-1.9.2.jar 2)jackson-mapper-asl-1.9.2.jar。但它仍然不起作用。这是与同样的例外... – Creature 2015-03-31 07:06:26

相关问题