webService之helloword(java)rs

时间:2022-12-09 22:26:47

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 + "]";
} }

  

webService之helloword(java)rs的更多相关文章

  1. webservice之helloword&lpar;web&rpar;rs

    spring整合webservice 1.pom.xml文件 <dependencies> <!-- cxf 进行rs开发 必须导入 --> <dependency&gt ...

  2. webService之helloword&lpar;java&rpar;

    webservice 远程数据交互技术 1.导入jar包(如果是 maven项目导入项目坐标) 2.创建服务 3.测试服务 我们使用maven来做测试服务 pom.xml文件 <project ...

  3. struts1&plus;spring&plus;myeclipse &plus;cxf 开发webservice以及普通java应用调用webservice的实例

    Cxf + Spring+ myeclipse+ cxf 进行  Webservice服务端开发 使用Cxf开发webservice的服务端项目结构 Spring配置文件applicationCont ...

  4. C&num;动态webservice调用接口 &lpar;JAVA,C&num;&rpar;

    C#动态webservice调用接口 using System; using System.Collections; using System.IO; using System.Net; using ...

  5. Axis2 webservice 之使用java调用webservice

    在上一篇中写了一个简单了webservice,实现了一个sayHello功能.那么webservice写好之后我们如何使用Java程序来调用webservice呢? 一.java调用的webservi ...

  6. php调用webservice接口,java代码接收不到参数

    前段时间做了一个项目的二次开发,有个功能是需要php调用java实现的webservice接口,并传递一些参数给接口,然后按照对方提供的接口说明文档进行传参调用,java那边有接收到请求,但是参数总是 ...

  7. WebService应用--使用java开发WebService程序

    使用Eclipse开发第一个WebService程序,本示例采用的工具为Spring-Tool-Suite,和Eclipse没有本质的区别,开发环境jdk1.7 一.开发步骤: 1.新建名为WebSe ...

  8. webService之helloword&lpar;web&rpar;

    spring 整合webservice pom.xml文件 <dependencies> <!-- CXF WS开发 --> <dependency> <gr ...

  9. 做Webservice时报错java&period;util&period;List是接口&comma; 而 JAXB 无法处理接口。

    Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExc ...

随机推荐

  1. linux中inode、软链接、硬链接

    1 软链接 linux中软链接理解成window中的快捷方式.创建软链接的命令 ln -s 源文文件或目录 目标文件或目录 2 硬链接 创建硬链接的命令如下 ln  源文文件或目录 目标文件或目录 3 ...

  2. Blender to XPS&lpar;blender 2&period;7x Internal materials&rpar;

    Things we are gonna need are Blender 2.7x www.blender.org/ XPS tools addon for Blender A model made ...

  3. 在JSP页面显示九九乘法表

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  4. java定义类 对象,引用,指针

    java是根据面向对象编程,因此有类和对象的概念,类分为普通类与抽象类. 一.定义类 类由N个 构造器  成员变量  方法组成,可以不定义,也可以根据语法定义N个. [修饰符] class 类名{ 构 ...

  5. HibernateTemplate和HibernateDaoSupport

    Spring整合Hibernate后,为Hibernate的DAO提供了两个工具类:HibernateTemplate和HibernateDaoSupport HibernateTemplateHib ...

  6. centos值cron-计划任务

    一.crond简介 crond是Linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具.并且会自动启动cro ...

  7. Testlink1&period;9&period;17使用方法&lpar;第十一章 其他易用性功能&rpar;

    第十一章 其他易用性功能 QQ交流群:585499566 一. 自定义 一). 自定义字段管理 在主页点击[自定义字段管理]按钮-->进入自定义字段管理页面,点击[创建]按钮,可以创建一个字段, ...

  8. python 内置函数,匿名函数,sorted,filter,map,递归,二分法&comma;冒泡算法 eval

    ############################总结#################################1. lambda 匿名函数 语法——lambda 参数:返回值 __na ...

  9. python-包及日志模块使用

    一.包 1.包就是一个保护有__init__.py文件的文件夹,包的本质就是一种模块,即包是用来导入使用的,包内部包含的文件也都是用来被导入使用的.包是为了更好组织好模块,就是一个文件夹. 注:在py ...

  10. APUE习题3&period;2用dup实现dup2以及shell中重定向符号的使用

    习题3.2的要求是不使用fcntl()而编写一个同dup2()功能相同的函数.直觉上是不断使用dup()直到返回指定的文件描述符. #include <stdio.h>#include & ...