<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      cxf實現(xiàn)rest風格的webservice

      開發(fā)環(huán)境:eclipse-jee-indigo-SR2-win32(3.7.2版本)、maven3.0.4、apache-tomcat-7.0.55、jdk1.7.0_67

      開發(fā)技術:spring3.2.8、cxf2.7.12


      項目截圖:




      項目編碼:

      一、pom.xml

      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.lessony.java</groupId>
        <artifactId>CXFServer</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>war</packaging>
        <name>CXFServer</name>
      
        <properties>
          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
          <java.version>1.7</java.version>
          <spring.version>3.2.8.RELEASE</spring.version>
          <servlet-api.version>2.5</servlet-api.version>
          <slf4j.version>1.7.5</slf4j.version>
          <cxf.version>2.7.12</cxf.version>
          <jackson.version>2.1.4</jackson.version>
        </properties>
      
        <dependencies>
          <!-- spring begin -->
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc-portlet</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <!-- spring end -->
      
          <!-- @Inject begin -->
          <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
          </dependency>
          <!-- @Inject end -->
              
          <!-- servlet begin -->
          <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>${servlet-api.version}</version>
          </dependency>
          <!-- servlet end -->
      
          <!-- cxf begin -->
          <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>${cxf.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxrs</artifactId>
            <version>${cxf.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-rs-extension-providers</artifactId>
            <version>${cxf.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>${cxf.version}</version>
          </dependency>
          <dependency>
            <groupId>org.codehaus.jettison</groupId>
            <artifactId>jettison</artifactId>
            <version>1.3.2</version>
          </dependency>
          <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>jsr311-api</artifactId>
            <version>1.1.1</version>
          </dependency>
          <!-- cxf end -->
      
          <!-- JSON begin -->
          <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>${jackson.version}</version>
          </dependency>
          <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
          </dependency>
          <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${jackson.version}</version>
          </dependency>
          <dependency>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-jaxb-annotations</artifactId>
            <version>${jackson.version}</version>
          </dependency>
          <dependency>
            <groupId>com.fasterxml.jackson.jaxrs</groupId>
            <artifactId>jackson-jaxrs-json-provider</artifactId>
            <version>${jackson.version}</version>
          </dependency>
          <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.0</version>
          </dependency>
          <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
            <version>1.9.0</version>
          </dependency>
          <!-- JSON end -->
        </dependencies>
      
        <build>
          <plugins>
            <!-- compiler插件, 設定JDK版本 -->
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>3.0</version>
              <configuration>
                <source>${java-version}</source>
                <target>${java-version}</target>
              </configuration>
            </plugin>
          </plugins>
        </build>
      </project>

      二、spring配置文件applicationContext-server.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxrs="http://cxf.apache.org/jaxrs"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
          http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
          http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd">
      
        <context:component-scan base-package="com.lessony.java.service.impl" />
      
        <import resource="classpath*:META-INF/cxf/cxf.xml" />
        <import resource="classpath*:META-INF/cxf/cxf-extension-soap.xml" />
        <import resource="classpath*:META-INF/cxf/cxf-servlet.xml" />
      
        <jaxrs:server id="restServiceContainer" address="/rest">
          <jaxrs:providers>
            <ref bean="jacksonProvider" />
          </jaxrs:providers>
          <jaxrs:extensionMappings>
            <entry key="json" value="application/json" />
            <entry key="xml" value="application/xml" />
          </jaxrs:extensionMappings>
      
          <jaxrs:serviceBeans>
            <ref bean="userServiceImpl" />
          </jaxrs:serviceBeans>
      
          <jaxrs:inInterceptors>
            <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean>
          </jaxrs:inInterceptors>
          <jaxrs:outInterceptors>
            <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
          </jaxrs:outInterceptors>
        </jaxrs:server>
      
        <bean id="jacksonObjectMapper"
          class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"></bean>
        <bean id="jacksonProvider"
          class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider">
          <property name="mapper" ref="jacksonObjectMapper" />
        </bean>
      
      </beans>
      

      三、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_3_0.xsd"
        id="WebApp_ID" version="3.0">
        <display-name>CXFServer</display-name>
      
        <context-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>
            classpath:applicationContext-server.xml
          </param-value>
        </context-param>
      
        <listener>
          <listener-class>
            org.springframework.web.context.ContextLoaderListener
          </listener-class>
        </listener>
      
        <servlet>
          <servlet-name>CXFServlet</servlet-name>
          <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
          <load-on-startup>1</load-on-startup>
        </servlet>
      
        <servlet-mapping>
          <servlet-name>CXFServlet</servlet-name>
          <url-pattern>/*</url-pattern>
        </servlet-mapping>
      
        <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>
      </web-app>


      二、java代碼

      1、vo類(User.java、Users.java)

      package com.lessony.java.vo;
      
      import java.io.Serializable;
      
      import javax.xml.bind.annotation.XmlRootElement;
      
      @XmlRootElement(name = "UserInfo")
      public class User implements Serializable {
          private static final long serialVersionUID = 677484458789332877L;
          private int id;
          private String name;
          private String email;
          private String address;
          public int getId() {
              return id;
          }
          public void setId(int id) {
              this.id = id;
          }
          public String getName() {
              return name;
          }
          public void setName(String name) {
              this.name = name;
          }
          public String getEmail() {
              return email;
          }
          public void setEmail(String email) {
              this.email = email;
          }
          public String getAddress() {
              return address;
          }
          public void setAddress(String address) {
              this.address = address;
          }
          @Override
          public String toString() {
              return "User [id=" + id + ", name=" + name + ", email=" + email
                      + ", address=" + address + "]";
          }
          
          
      }
      

      package com.lessony.java.vo;
      
      import java.util.List;
      import java.util.Map;
      
      import javax.xml.bind.annotation.XmlRootElement;
      
      @XmlRootElement(name = "UserInfos")
      public class Users {
          private List<User> users;
          private User[] userArr;
          private Map<String, User> map;
          public List<User> getUsers() {
              return users;
          }
          public void setUsers(List<User> users) {
              this.users = users;
          }
          public User[] getUserArr() {
              return userArr;
          }
          public void setUserArr(User[] userArr) {
              this.userArr = userArr;
          }
          public Map<String, User> getMap() {
              return map;
          }
          public void setMap(Map<String, User> map) {
              this.map = map;
          }
          
          
      }
      


      2、服務的接口類(IUserService.java):

      package com.lessony.java.service;
      
      import java.io.IOException;
      
      import javax.ws.rs.Consumes;
      import javax.ws.rs.DELETE;
      import javax.ws.rs.GET;
      import javax.ws.rs.POST;
      import javax.ws.rs.PUT;
      import javax.ws.rs.Path;
      import javax.ws.rs.PathParam;
      import javax.ws.rs.Produces;
      import javax.ws.rs.core.MediaType;
      
      import com.lessony.java.vo.User;
      import com.lessony.java.vo.Users;
      
      @Path("/user")
      public interface IUserService {
          
          @GET
          @Path("/{id}")
          @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
          public User getUser(@PathParam("id") int id);
          
          @GET
          @Path("/array")
          @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
          public Users getArray();
          
          @GET
          @Path("/list")
          @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
          public Users getList();
          
          @GET
          @Path("/map")
          @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
          public Users getMap();
          
          @POST
          @Path("/add")
          public User postData(User user) throws IOException;
          
          @PUT
          @Path("/update/{id}")
          @Consumes(MediaType.APPLICATION_XML)
          public User putData(@PathParam("id") int id, User user);
          
          @DELETE
          @Path("/delete/{id}")
          public void deleteData(@PathParam("id") int id);
      }
      

      UserServiceImpl 
      ):
      package com.lessony.java.service.impl;
      
      import java.io.IOException;
      import java.util.ArrayList;
      import java.util.HashMap;
      import java.util.List;
      import java.util.Map;
      
      import javax.inject.Named;
      
      import com.lessony.java.service.IUserService;
      import com.lessony.java.vo.User;
      import com.lessony.java.vo.Users;
      
      @Named
      public class UserServiceImpl implements IUserService {
      
          @Override
          public User getUser(int id) {
              User user = new User();
              user.setId(id);
              user.setName("JojO");
              return user;
          }
      
          @Override
          public Users getArray() {
              User[] array = new User[5];
              User user = null;
              for (int i = 0; i < array.length;i ++) {
                  user = new User();
                  user.setId(i);
                  user.setName("arrayName-" + i);
                  array[i]=user;
              }
              Users users = new Users();
              users.setUserArr(array);
              return users;
          }
          
          @Override
          public Users getList() {
              List<User> list = new ArrayList<User>();
              User user = null;
              for (int i = 0; i < 4;i ++) {
                  user = new User();
                  user.setId(i);
                  user.setName("ListName-第" + i+ "個");
                  list.add(user);
              }
              Users users = new Users();
              users.setUsers(list);
              return users;
          }
      
          @Override
          public Users getMap() {
              Map<String, User> map = new HashMap<String, User>();
              User user = null;
              for (int i = 0; i < 4;i ++) {
                  user = new User();
                  user.setId(i);
                  user.setName("mapName" + i);
                  map.put("key-" + i, user);
              }
              Users users = new Users();
              users.setMap(map);
              return users;
          }
      
          @Override
          public User postData(User user) throws IOException {
           // TODO Auto-generated method stub
              return null;
          }
      
          @Override
          public User putData(int id, User user) {
              // TODO Auto-generated method stub
              return null;
          }
      
          @Override
          public void deleteData(int id) {
              // TODO Auto-generated method stub
          }
      
      }
      

      3、接口實現(xiàn)類(UserServiceImpl.java):
      package com.lessony.java.service.impl;
      
      import java.io.IOException;
      import java.util.ArrayList;
      import java.util.HashMap;
      import java.util.List;
      import java.util.Map;
      
      import javax.inject.Named;
      
      import com.lessony.java.service.IUserService;
      import com.lessony.java.vo.User;
      import com.lessony.java.vo.Users;
      
      @Named
      public class UserServiceImpl implements IUserService {
      
          @Override
          public User getUser(int id) {
              User user = new User();
              user.setId(id);
              user.setName("JojO");
              return user;
          }
      
          @Override
          public Users getArray() {
              User[] array = new User[5];
              User user = null;
              for (int i = 0; i < array.length;i ++) {
                  user = new User();
                  user.setId(i);
                  user.setName("arrayName-" + i);
                  array[i]=user;
              }
              Users users = new Users();
              users.setUserArr(array);
              return users;
          }
          
          @Override
          public Users getList() {
              List<User> list = new ArrayList<User>();
              User user = null;
              for (int i = 0; i < 4;i ++) {
                  user = new User();
                  user.setId(i);
                  user.setName("ListName-第" + i+ "個");
                  list.add(user);
              }
              Users users = new Users();
              users.setUsers(list);
              return users;
          }
      
          @Override
          public Users getMap() {
              Map<String, User> map = new HashMap<String, User>();
              User user = null;
              for (int i = 0; i < 4;i ++) {
                  user = new User();
                  user.setId(i);
                  user.setName("mapName" + i);
                  map.put("key-" + i, user);
              }
              Users users = new Users();
              users.setMap(map);
              return users;
          }
      
          @Override
          public User postData(User user) throws IOException {
           // TODO Auto-generated method stub
              return null;
          }
      
          @Override
          public User putData(int id, User user) {
              // TODO Auto-generated method stub
              return null;
          }
      
          @Override
          public void deleteData(int id) {
              // TODO Auto-generated method stub
          }
      
      }
      


      代碼全部完成。運行后,看到eclipse的內置瀏覽器顯示下圖:



      新打開一個谷歌瀏覽器(不用ie的,ie的顯示不出來json),在地址欄輸入:http://localhost:8080/CXFServer/rest?_wadl

      可以看到我們發(fā)布的webservice的接口描述文件(wadl描述):



      在地址欄輸入:http://localhost:8080/CXFServer/rest/user/123 (默認是xml格式)


      或者http://localhost:8080/CXFServer/rest/user/123?_type=json  (指明是返回json格式的數(shù)據)



      再看一個list吧,輸入:http://localhost:8080/CXFServer/rest/user/list


      或者json格式顯示:http://localhost:8080/CXFServer/rest/user/list?_type=json  (中文有點編碼問題,其實json是utf-8格式的,怎么設置自己解決吧)



      完。


      也許在練習過程中會遇到很多小問題,比如如何用maven新建web,如何把maven項目發(fā)布到tomcat等網上都有這方面的文章。這里不是重點就不涉及了。

      源碼下載地址:http://download.csdn.net/detail/lxn39830435731415926/7953147

      posted @ 2014-09-21 08:43  Java夜未眠  閱讀(16)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 狠狠色狠狠色综合日日不卡| AV极品无码专区亚洲AV| 4hu四虎永久在线观看| 国产v综合v亚洲欧美久久| 国产亚洲精品久久久久久久久| 国产高清自产拍av在线| 国产免费视频一区二区| 国产精品白丝久久av网站| 五月丁香啪啪| 久久国产成人高清精品亚洲| 精品无码老熟妇magnet| 亚洲区一区二区三区精品| 亚洲熟妇色xxxxx亚洲| 久热re这里精品视频在线6| 99精品国产一区二区三区| 亚洲午夜香蕉久久精品| 99久久精品国产综合一区| 国产一级av在线播放| 亚洲暴爽av天天爽日日碰| xxxx丰满少妇高潮| 国产精品久久久久aaaa| 亚洲国产精品日韩AV专区| 精品人妻av中文字幕乱| 97精品人妻系列无码人妻| 国产精品亚洲综合色区丝瓜| 亚洲中文字幕一区二区| 欧美寡妇xxxx黑人猛交| 厨房与子乱在线观看| 日韩精品 在线 国产 丝袜| a4yy私人毛片| 成人免费A级毛片无码片2022 | 鲁丝片一区二区三区免费| 在线免费观看毛片av| 福利一区二区1000| 泸西县| 精品国精品国产自在久国产应用男 | 国产成人一区二区不卡| 无码人妻一区二区三区线| 人妻一区二区三区人妻黄色| 办公室强奷漂亮少妇视频| 亚洲中文字幕无码av永久|