黄页网站大全一区二区,精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久婷婷 ,视频精品在线观看http://www.aygfsteel.com/paulwong/category/54024.htmlzh-cnSun, 24 Sep 2017 10:08:05 GMTSun, 24 Sep 2017 10:08:05 GMT60JAX-RS2資源http://www.aygfsteel.com/paulwong/archive/2017/09/24/432829.htmlpaulwongpaulwongSun, 24 Sep 2017 09:19:00 GMThttp://www.aygfsteel.com/paulwong/archive/2017/09/24/432829.htmlhttp://www.aygfsteel.com/paulwong/comments/432829.htmlhttp://www.aygfsteel.com/paulwong/archive/2017/09/24/432829.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/432829.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/432829.html
JAXRSClientSpringBoot

CXFSpringBoot

Restfull Webservice書源碼

JAX-RS 2.0 REST客戶端編程實例

本人的DEMO



paulwong 2017-09-24 17:19 發表評論
]]>
JAVABEAN和JSON STRING互轉http://www.aygfsteel.com/paulwong/archive/2014/07/04/415436.htmlpaulwongpaulwongFri, 04 Jul 2014 01:07:00 GMThttp://www.aygfsteel.com/paulwong/archive/2014/07/04/415436.htmlhttp://www.aygfsteel.com/paulwong/comments/415436.htmlhttp://www.aygfsteel.com/paulwong/archive/2014/07/04/415436.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/415436.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/415436.html
import javax.xml.bind.annotation.XmlRootElement;

import org.codehaus.jackson.annotate.JsonProperty;

@XmlRootElement
public class TestUser {
    
    /*@XmlElement(name="username")*/
    @JsonProperty("username")
    private String userName;
    
    private String email;

    public String getEmail() {
        return email;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Override
    public String toString() {
        return "TestUser [userName=" + userName + ", email=" + email + "]";
    }
    
    

}


Test.java
import java.io.IOException;

import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.DeserializationConfig;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


public class Test {
    
    private Logger logger = LoggerFactory.getLogger(Test.class);
    
    /*private String getBaseUri()
    {
        return "
http://192.168.1.223:8080/restfull-api";
    }
*/
    
    @Test
    public void testTest()
    {
        ObjectMapper mapper = new ObjectMapper();
        /*AnnotationIntrospector introspector = new JaxbAnnotationIntrospector();
        // make deserializer use JAXB annotations (only)
        mapper.getDeserializationConfig().setAnnotationIntrospector(introspector);
        // make serializer use JAXB annotations (only)
        mapper.getSerializationConfig().setAnnotationIntrospector(introspector);
*/
        mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        
        String userStr = "{\"username\":\"paul\",\"email\":\"paul@paul.com\"}";
        try {
            TypeReference<TestUser> temp = new TypeReference<TestUser>(){};
            TestUser testUser = mapper.readValue(userStr, temp);
            System.out.println(testUser.toString());
            
            String result = mapper.writeValueAsString(testUser);
            System.out.println(result);
            
        } catch (JsonParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (JsonMappingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}











paulwong 2014-07-04 09:07 發表評論
]]>
Jersey Exception Handlinghttp://www.aygfsteel.com/paulwong/archive/2014/04/28/413009.htmlpaulwongpaulwongMon, 28 Apr 2014 06:44:00 GMThttp://www.aygfsteel.com/paulwong/archive/2014/04/28/413009.htmlhttp://www.aygfsteel.com/paulwong/comments/413009.htmlhttp://www.aygfsteel.com/paulwong/archive/2014/04/28/413009.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/413009.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/413009.htmlJERSEY已和SPRING整合。

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee">

    <display-name>Restful Web Application</display-name>
    
    <servlet>
        <servlet-name>jersey-serlvet</servlet-name>
        <servlet-class>
            com.sun.jersey.spi.spring.container.servlet.SpringServlet
        </servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>restfullapi.rest.service,restfullapi.common.provider,restful.web</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>2</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>jersey-serlvet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
    
 
     <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
    
    <listener>
        <listener-class>
            org.springframework.web.context.request.RequestContextListener
        </listener-class>
    </listener>
    
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
    </context-param>
    
    <!-- spring logback -->
    <context-param>
        <param-name>logbackConfigLocation</param-name>
        <param-value>classpath:logback.xml</param-value>
    </context-param>  
    <listener>
        <listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class>
    </listener>

    <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>restfull-api</param-value>
    </context-param>
    
    <welcome-file-list>
        <welcome-file>/index.jsp</welcome-file>
    </welcome-file-list>
    

</web-app>


AbstractBaseRestfulException.java
public abstract class AbstractBaseRestfulException extends Exception{

    private static final long serialVersionUID = 6779508767332777451L;
    
    public AbstractBaseRestfulException()
    {
    }
    
    public AbstractBaseRestfulException(String message)
    {
        super(message);
    }

    public abstract String getErrcode();

    public abstract void setErrcode(String errcode);

    public abstract String getDescription();

    public abstract void setDescription(String description);
    

}


AbstractBaseRestfulExceptionMapper.java
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.paul.common.exception.AbstractBaseRestfulException;
import com.paul.common.json.DefaultJsonResponse;

@Provider
public class AbstractBaseRestfulExceptionMapper implements ExceptionMapper<AbstractBaseRestfulException>{

    private Logger logger = LoggerFactory.getLogger(AbstractBaseRestfulExceptionMapper.class);
    
    public Response toResponse(AbstractBaseRestfulException exception) {
        
        logger.error(exception.getMessage(), exception);
        
        DefaultJsonResponse<Object> response = new DefaultJsonResponse<Object>();
        response.setDescription(exception.getDescription());
        response.setErrcode(exception.getErrcode());
        response.setResult(null);
            
        return Response.status(Status.BAD_REQUEST)
                .entity(response)
                .type(MediaType.APPLICATION_JSON + ";charset=utf-8")
                .build();
    }

}


OtherExceptionMapper.java
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.paul.common.json.DefaultJsonResponse;
import com.paul.common.json.JsonResponseStatus;

@Provider
public class OtherExceptionMapper implements ExceptionMapper<Exception>{
    
    private Logger logger = LoggerFactory.getLogger(OtherExceptionMapper.class);

    public Response toResponse(Exception exception) {
        
        logger.error(exception.getMessage(), exception);
        
        DefaultJsonResponse<Object> response = new DefaultJsonResponse<Object>();
        response.setDescription(JsonResponseStatus.OTHER_ERROR.getMessage() + exception.getMessage());
        response.setErrcode(JsonResponseStatus.OTHER_ERROR.getCode());
        response.setResult(null);
            
        return Response.status(Status.BAD_REQUEST)
                .entity(response)
                .type(MediaType.APPLICATION_JSON + ";charset=utf-8")
                .build();
    }

}


WebApplicationExceptionMapper.java
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.paul.common.json.DefaultJsonResponse;

@Provider
public class WebApplicationExceptionMapper implements ExceptionMapper<WebApplicationException >{

    private Logger logger = LoggerFactory.getLogger(WebApplicationExceptionMapper.class);
    
    public Response toResponse(WebApplicationException exception) {
        
        logger.error(exception.getMessage(), exception);
        
        DefaultJsonResponse<Object> response = new DefaultJsonResponse<Object>();
        response.setDescription(exception.getMessage());
        response.setErrcode(String.valueOf(exception.getResponse().getStatus()));
        response.setResult(null);
            
        return Response.status(exception.getResponse().getStatus())
                .entity(response)
                .type(MediaType.APPLICATION_JSON + ";charset=utf-8")
                .build();
    }

}


Controller中無須再處理異常
import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import com.paul.common.json.DefaultJsonResponse;
import com.paul.common.json.JsonResponseStatus;
import com.paul.program.stbstart.valueobject.StbStart;
import com.paul.stbstart.valueobject.StbStartRequest;
import com.paul.restfullapi.rest.service.AdvertisementRestfulService;

@Path("/advertisement")
@Controller
public class AdvertisementRestfulController {
    
    private Logger logger = LoggerFactory.getLogger(AdvertisementRestfulController.class);
    
    @Autowired
    AdvertisementRestfulService advertisementRestfulService;
    
    @Path("/getAdvertisement")
    @Produces({MediaType.APPLICATION_JSON + ";charset=utf-8"})
    @GET
    public DefaultJsonResponse<StbStart> getAdvertisement(
            @DefaultValue("") @QueryParam("version")String version,
            @QueryParam("token")String token) throws Exception
    {
        DefaultJsonResponse<StbStart> response = new DefaultJsonResponse<StbStart>();
        StbStartRequest request = new StbStartRequest();
        logger.info(version);
        request.setVersion(version);
        request.setToken(token);
        StbStart result = advertisementRestfulService.findByVersion(request);
        response.setResult(result);
        response.setDescription(JsonResponseStatus.SUCCESS.getMessage());
        response.setErrcode(JsonResponseStatus.SUCCESS.getCode());
        
        logger.info("----------------");
//        double i = 1/0;
        return response;
    }
    

}









paulwong 2014-04-28 14:44 發表評論
]]>
JAX-RS資源http://www.aygfsteel.com/paulwong/archive/2013/11/27/406879.htmlpaulwongpaulwongWed, 27 Nov 2013 04:03:00 GMThttp://www.aygfsteel.com/paulwong/archive/2013/11/27/406879.htmlhttp://www.aygfsteel.com/paulwong/comments/406879.htmlhttp://www.aygfsteel.com/paulwong/archive/2013/11/27/406879.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/406879.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/406879.html

Jersey 2.4.1 User Guide
https://jersey.java.net/documentation/latest/index.html


The Java EE 6 Tutorial
http://docs.oracle.com/javaee/6/tutorial/doc/gkoib.html


基于JAXB注釋的JSON與JAVA BEAN的互轉


paulwong 2013-11-27 12:03 發表評論
]]>
主站蜘蛛池模板: 阿拉善右旗| 韶关市| 哈巴河县| 陈巴尔虎旗| 龙泉市| 札达县| 通辽市| 垫江县| 湾仔区| 土默特右旗| 澄城县| 杭锦后旗| 河源市| 区。| 五家渠市| 榆林市| 康定县| 河池市| 安丘市| 庄河市| 巨鹿县| 宣化县| 简阳市| 池州市| 蓝田县| 洛阳市| 阿克| 罗山县| 石景山区| 双牌县| 江源县| 绥阳县| 昌江| 洪湖市| 大足县| 合水县| 宣武区| 德钦县| 迁西县| 达拉特旗| 赣州市|