zoukankan      html  css  js  c++  java
  • webService之helloword(java)rs

    webservice之rs(helloworld)

    1.pom.xml文件

    <dependencies>
      		<!-- 使用CXF RS开发 -->
      		<dependency>
    			<groupId>org.apache.cxf</groupId>
    			<artifactId>cxf-rt-frontend-jaxrs</artifactId>
    			<version>3.0.1</version>
    		</dependency>
     	
     		<!-- 内置jetty web服务器 -->
    		<dependency>
    			<groupId>org.apache.cxf</groupId>
    			<artifactId>cxf-rt-transports-http-jetty</artifactId>
    			<version>3.0.1</version>
    		</dependency>
    
    		<!-- 使用log4j日志实现  -->
    		<dependency>
    			<groupId>org.slf4j</groupId>
    			<artifactId>slf4j-log4j12</artifactId>
    			<version>1.7.12</version>
    		</dependency>
    		
    		<!-- 在CXF扩展提供者,提供转换json接口  -->
    		<dependency>
    			<groupId>org.apache.cxf</groupId>
    			<artifactId>cxf-rt-rs-extension-providers</artifactId>
    			<version>3.0.1</version>
    		</dependency>
    
    		<!-- cxf 扩展提供者 转换json 默认需求一个工具包  -->
    		<dependency>
    			<groupId>org.codehaus.jettison</groupId>
    			<artifactId>jettison</artifactId>
    			<version>1.3.7</version>
    		</dependency>
      </dependencies>
      <build>
    		<plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.3.2</version>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                    </configuration>
                </plugin>
            </plugins>
    	</build>
    

      2.创建服务接口

    package com.baidu.service;
    
    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.QueryParam;
    
    import com.baidu.domain.User;
    
    @Path("/userService")//服务器访问资源路径
    //@Produces("*/*")//  生成     方法的返回值   //指定能否生成哪种格式数据返回给客户端
    public interface UserService {
    	//@GET 查询 @PUT 修改 @POST 增加 @DELETE 删除
    	
    	@POST 
    	@Path("/saveUser")
    	@Consumes({"application/xml","application/json"})  //消费   方法的参数
    	public void saveUser(User user);
    	@DELETE
    	@Path("/deleteUser")
    	@Consumes({"application/xml","application/json"})
    	public void deleteUser(@QueryParam(value="id")Integer id);
    	@PUT
    	@Path("/updateUser")
    	@Consumes({"application/xml","application/json"})
    	public void updateUser(User user);
    	@GET
    	@Path("/queryUser/{id}")
    	@Consumes({"application/xml","application/json"})
    	@Produces({"application/xml","application/json"})
    	public User queryUser(@PathParam(value="id")Integer id);
    }
    
    @Path 服务器访问资源路径
    @Produces 指定生成那种格式的额数据格式返回给客户端
    @Consumes 指定接收的数据格式
    @POST 指定该方法为保存(保存)
    @DELETE 指定该方法为删除
    @PUT 指定该方法为修改
    @GET  指定该方法为查询

      

    3.创建服务实现类

    package com.baidu.service.imp;
    
    import com.baidu.domain.User;
    import com.baidu.service.UserService;
    
    public class UserServiceImp implements UserService {
    	public void saveUser(User user) {
    		System.out.println("saveUser"+user);
    	}
    	public void deleteUser(Integer id) {
    		System.out.println("deleteUser id:"+id);
    	}
    	public void updateUser(User user) {
    		System.out.println("updateUser user:"+user);
    	}
    	public User queryUser(Integer id) {
    		System.out.println("id");
    		if(id==1){
    			System.out.println(id);
    			User u=new User();
    			u.setId(id);
    			u.setName("zhangsan");
    			return u;
    		}
    		return null;
    	}
    }
    

      4.发布服务

    package com.baidu.publish;
    
    import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
    
    import com.baidu.domain.User;
    import com.baidu.service.UserService;
    import com.baidu.service.imp.UserServiceImp;
    
    public class PublishService {
    	public static void main(String[] args) {
    		UserService us=new UserServiceImp();
    		JAXRSServerFactoryBean serverFactoryBean=new JAXRSServerFactoryBean();
    		serverFactoryBean.setResourceClasses(User.class);
    		serverFactoryBean.setServiceBean(us);
    		serverFactoryBean.setAddress("http://localhost:8099");
    		serverFactoryBean.create();
    	}
    }

    测试项目的pom.xml文件

     <dependencies>
      		<!-- 使用CXF RS开发 -->
      		<dependency>
    			<groupId>org.apache.cxf</groupId>
    			<artifactId>cxf-rt-frontend-jaxrs</artifactId>
    			<version>3.0.1</version>
    		</dependency>
    
    		<!-- 使用log4j日志实现  -->
    		<dependency>
    			<groupId>org.slf4j</groupId>
    			<artifactId>slf4j-log4j12</artifactId>
    			<version>1.7.12</version>
    		</dependency>
    		
    		<!-- 使用rs客户端  -->
    		<dependency>
    			<groupId>org.apache.cxf</groupId>
    			<artifactId>cxf-rt-rs-client</artifactId>
    			<version>3.0.1</version>
    		</dependency>
    		
    		<!-- 在CXF扩展提供者,提供转换json接口  -->
    		<dependency>
    			<groupId>org.apache.cxf</groupId>
    			<artifactId>cxf-rt-rs-extension-providers</artifactId>
    			<version>3.0.1</version>
    		</dependency>
    
    		<!-- cxf 扩展提供者 转换json 默认需求一个工具包  -->
    		<dependency>
    			<groupId>org.codehaus.jettison</groupId>
    			<artifactId>jettison</artifactId>
    			<version>1.3.7</version>
    		</dependency>
      </dependencies>
      <build>
    		<plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.3.2</version>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                    </configuration>
                </plugin>
            </plugins>
    	</build>

     测试发布的服务

        public static void main(String[] args) {
    		// 保存
    		// User user = new User();
    		// user.setId(1);
    		// user.setName("zhangsan");
    		// WebClient.create("http://localhost:8099/userService/saveUser")
    		// .type(MediaType.APPLICATION_XML).post(user);
    
    		// 删除
    		// WebClient.create("http://localhost:8099/userService/deleteUser?id=1").type(MediaType.APPLICATION_XML).delete();
    		
    		// 修改
    		// User user = new User();
    		// user.setId(1);
    		// user.setName("zhangsan");
    		// WebClient.create("http://localhost:8099/userService/deleteUser").type(MediaType.APPLICATION_XML).put(user);
    
    		// 查询  
    		// User user =WebClient.create("http://localhost:8099/userService/queryUser/1")
    		// .accept(MediaType.APPLICATION_XML).get(User.class);
    		// System.out.println(user);
    
    	} 

     User类

    package com.baidu.domain;
    
    import javax.xml.bind.annotation.XmlElement;
    import javax.xml.bind.annotation.XmlRootElement;
    
    @XmlRootElement(name="User")
    public class User {
    	
    	private Integer Id;
    	private String name;
    	public Integer getId() {
    		return Id;
    	}
    	public void setId(Integer id) {
    		Id = id;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	@Override
    	public String toString() {
    		return "User [Id=" + Id + ", name=" + name + "]";
    	}
    	
    }
    

      

  • 相关阅读:
    改变原数组的filter
    fireEvent2
    Ajaxを勉強しよ
    javascript 地图
    fillZero函数
    window.onerror
    とある要素以下にある textNode で一致する textNode を XPath で高速に取り出す
    判定是否为表单元素
    Django中判断用户是否登陆
    【 如果你和我一样在一栋33层大厦的27层工作,在这栋大厦里发生了火灾,那么你该怎么办? 看看也许会保住你的性命!!!】
  • 原文地址:https://www.cnblogs.com/fjkgrbk/p/webservice_java_rs.html
Copyright © 2011-2022 走看看