基于rest方式的web service

7 篇文章 0 订阅

具体可以参详我的博客:http://www.paisays.com/?p=79

公司跨系统的接口都换成了rest风格,对于没有使用过rest的人真是感觉茫茫大海,无从下手啊。查找了一些资料并询问有经验的人,最后算是知道了基于cxf框架的rest风格的web service 怎么用,下面我简单介绍一下:

首先需要在web.xml文件中进行配置:

1
2
3
4
5
6
7
8
9
<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>/services/*</url-pattern>
</servlet-mapping>

11
在cxf-servlet.xml文件中需要配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<bean id = "crmTaskOrgService" class = "com.deppon.foss.service.impl.CrmTaskOrgService" >
     <property name= "matchTaskOrgService" ref= "matchTaskOrgService" ></property>
</bean>
 
<!-- restfull -->
<jaxrs:server id= "fossToCrmTaskOrgService" address= "/crmUrl" >
     <jaxrs:serviceBeans>
         <ref bean= "crmTaskOrgService" />
     </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>

serviecesBeans里面是你spring中配置的那个bean,这里CrmTaskOrgService必须给他一个接口,因为spring自动装配会默认用jdk的动态代理来完成,如果不想写接口也行,在CrmTaskOrgService中添加一个默认的构造器。具体原因请查阅:http://www.paisays.com/?p=70 ;address是很重要的参数,会在最后的url中显示,类似命名空间。

不要忘记引入相应的标签:

111

然后是接口配置(也可以写在实现类中):

 

1
2
3
4
5
6
7
8
@Produces (MediaType.APPLICATION_JSON)
public interface ICrmTaskOrgService {
 
     @GET
     @Path (value = "/matchTaskOrg/{waybillNo}" )
     List<OrgDto> matchTaskOrg( @PathParam ( "waybillNo" ) String waybillNo);
 
}
@Produces(MediaType.APPLICATION_JSON) 声明返回类型是json的形式;
@GET  表示是用get方式提取数据。rest的思想是将http的四种动作(get,put,post,delete)用于他们真正的地方,现在无论是增删改查,基本都是用的get 或者post,put和delete很少用到。rest则提倡将相应的动作用到相应的请求上,get就是取资源,post是新增资源,put是更新,delete就是删除资源。
@Path(value = "/matchTaskOrg/{waybillNo}")  定义这个接口的路径,类似命名空间。{}中是url传过来的参数。
@PathParam("waybillNo")  声明参数

引入相应的jar
22

如果接口返回的是自己定义的实体类,或者集合类等,需要在对应的实体加上下面注解:
1
2
@XmlRootElement
public class OrgDto implements Serializable{

最后一步是 添加相应的maven库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        <dependency>
       <groupId>javax.ws.rs</groupId>
       <artifactId>javax.ws.rs</artifactId>
       <version> 1.0 </version>
</dependency>
<dependency>
     <groupId>org.apache.cxf</groupId>
     <artifactId>cxf-rt-frontend-jaxws</artifactId>
</dependency>
<dependency>
     <groupId>org.apache.cxf</groupId>
     <artifactId>cxf-rt-transports-http</artifactId>
</dependency>
<dependency>
     <groupId>org.apache.cxf</groupId>
     <artifactId>cxf-rt-transports-http-jetty</artifactId>
     <scope>test</scope>
</dependency>
<dependency>
     <groupId>org.apache.cxf</groupId>
     <artifactId>cxf-rt-frontend-jaxrs</artifactId>
</dependency>

jar包不要多,否则会报jar冲突的错误。

都配置好后就可以访问了,

url : http://localhost:8080/test/services/crmUrl/matchTaskOrg/976865745

测试结果:



33

33
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Web service是一种基于Web技术的软件服务,通过Internet进行通信和交互。它可以与其他应用程序进行数据交换,并提供跨平台的集成解决方案。 使用Web service可以实现不同平台、不同语言的应用之间的数据交换和互操作性。如今,Web service在许多领域得到了广泛应用,如电子商务、金融、医疗保健等。 使用Web service的好处主要有以下几点: 1. 跨平台互操作性:Web service基于开放标准,如XML、SOAP、WSDL等,可以在不同操作系统和开发语言之间进行通信。这意味着可以将不同的应用程序连接起来,实现数据共享和功能集成。 2. 灵活性和可扩展性:Web service是松耦合的,这意味着它们可以独立开发、部署和更新,而不会对其他系统产生影响。这使得系统变得灵活和可扩展,可以根据需求进行定制和修改。 3. 安全性:Web service提供了多种安全机制,如身份验证、消息加密和访问控制,以保护数据的安全性和完整性。这对于处理敏感信息的应用程序尤为重要。 4. 异地分布和远程调用:Web service可以在不同地点的计算机上部署,使得分布式系统的开发和管理变得更加容易。应用程序可以通过网络远程调用Web service提供的功能和服务。 总之,使用Web service可以实现不同平台、不同语言的应用程序之间的无缝通信和数据交换,为现代软件开发提供了更大的灵活性和互操作性。在构建分布式系统和实现业务集成时,Web service是一种强大的工具。 ### 回答2: 使用web service(网络服务)是一种通过网络提供数据和功能的方法。它基于标准的通信协议和格式,如HTTP和XML或JSON,使不同平台和系统之间能够相互通信和交换数据。 使用web service具有以下优势: 1. 系统集成:通过web service,不同的系统和平台可以实现集成,使它们能够相互通信和交互。例如,一个电子商务网站可以通过web service与物流公司进行集成,实现订单的自动处理和物流跟踪。 2. 跨平台兼容性:由于web service采用标准的通信协议和格式,它可以在不同的操作系统和硬件平台上运行,无论是Windows、Linux还是Mac系统,都可以通过web service进行交互。 3. 简化开发:使用web service可以简化软件开发过程。开发人员可以通过调用web service的API(应用程序接口)来获取需要的数据和功能,而不需要自己实现复杂的逻辑和算法。这样可以节省开发时间和资源,提高开发效率。 4. 服务可扩展性:web service可以轻松地进行扩展和升级。当需求变化时,只需要修改或添加相应的服务端代码,而不需要改变客户端代码。这样可以保持客户端与服务端的分离,提高系统的可维护性和可扩展性。 5. 安全性:web service可以通过使用安全协议和加密技术,保证数据的安全传输和访问控制。例如,通过使用HTTPS协议和SSL证书,可以确保数据在传输过程中被加密和保护。这对于涉及敏感数据和隐私信息的应用非常重要。 综上所述,使用web service可以实现系统集成、跨平台兼容、简化开发、提高可扩展性和保障安全性。它是现代化网络应用中不可或缺的一部分。 ### 回答3: C:使用web服务是一种可以在网络上进行数据交互和通信的方式Web服务是一种基于客户端-服务器模型的技术,它通过使用标准的HTTP协议来实现不同应用程序之间的通信。Web服务允许不同的软件应用程序在不同的平台上进行交互,无论它们使用的编程语言或操作系统是什么。 使用Web服务的好处是它可以提高应用程序的可扩展性和灵活性。通过使用Web服务,应用程序可以通过网络访问和交换数据,而不需要了解底层的实现细节。这使得不同的应用程序可以相互协作,并且可以根据需要进行扩展和更新。 在创建和使用Web服务时,需要定义接口和协议,以确保不同的应用程序之间可以互相理解和通信。常见的用于定义Web服务接口的技术包括SOAP(Simple Object Access Protocol)和REST(Representational State Transfer)。 使用Web服务可以实现各种功能,例如获取实时天气数据、查询数据库、进行支付交易等。这使得我们可以通过不同的应用程序来访问和使用这些功能,而无需重新实现这些功能。 总而言之,使用Web服务是一种方便且灵活的方式,可以实现不同应用程序之间的数据交互和通信。它提供了一种标准化的方法,使得应用程序可以在不同的平台上互相协作,从而实现更高的可扩展性和灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值