面试时webservice的说法

本文介绍了WebService作为一种跨平台和跨编程语言的远程调用技术的基本原理。详细解释了如何使用Axis、XFire等框架发布服务,以及客户端如何通过WSDL文件找到并调用这些服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

           webservice是一种远程调用技术,还有RMI,Remote method invoke,CORBA,;webservice是替代它们的技术,因为webservice是跨平台和跨编程语言的远程调用技术。做webservice包括两个方面,一个方面是把自己的业务方法发布成webservice服务,让远程合作单位和个人可以来调用;另一个方面是调用人家发布的webservice服务,大多数人是在做后者方面的开发,例如:问天网发布天气预报的wevbservice服务,我们都可以远程。

           发布服务,使用的是一些webservice框架,例如:axis,xfire,cxf。这些框架的细节看看手册都很简单,一下就可以搞定helloworld,这些框架的本质就是一个大大的servlet,当远程调用客户端给它通过http发送过来soap格式的请求数据时,它分析这个说不局,就知道要调用哪个java类的哪个方法,于是去查找或创建这个对象,并调用其方法,再把方法返回的结果包装成soap格式的数据,通过http响应消息回给客户端。

 

          客户端要调用一个webservice,首先要有知道这个服务的地址在哪,以及这个服务有什么方法可以调用。webservice通过一个wsdl文件来说明自己家里有啥服务可以用,以及这个服务时什么,这个服务在哪个url地址,通过什么方式来调用,即what,where ,how@这个文件本身又是存在web服务器,通过一个url地址就可以访问和获取到这个wsdl文件。如果我们调用人家的webservice,我们只需要做一件事,知道人家的wsdl文件的url地址即可。一些java厂商提供了client API供我们调用,我们给这个api传递wsdl文件的url地址。

### 关于 WebService面试题整理 以下是关于 WebService 技术的一些常见面试题目及其解答: #### 1. **什么是 WebService?** WebService 是一种基于标准协议(如 SOAP 和 REST)的技术,允许不同平台上的应用通过网络相互通信。它通常使用 XML 或 JSON 数据格式进行数据交换,并可以通过 HTTP 协议访问。 - 它的核心目标是跨平台和跨语言的互操作性[^1]。 ```java // 示例代码:Java 调用 WebService import javax.xml.ws.Service; import java.net.URL; public class WebServiceClient { public static void main(String[] args) throws Exception { URL url = new URL("http://example.com/service?wsdl"); Service service = Service.create(url, new QName("namespace", "serviceName")); MyPortType port = service.getPort(MyPortType.class); String result = port.callMethod("inputParam"); System.out.println(result); } } ``` --- #### 2. **SOAP 和 REST 的主要区别是什么?** | 特性 | SOAP | REST | |-----------------|-------------------------------|------------------------------| | 协议依赖 | 基于 XML | 可以基于 XML/JSON | | 性能 | 较低(由于复杂的封装结构) | 更高 | | 使用场景 | 复杂的企业级应用 | 简单轻量级 API | RESTful WebService 更加流行的原因在于其简单性和高效的数据传输方式[^2]。 --- #### 3. **如何处理 WebService 请求中的超问题?** 在调用 WebService ,可以在客户端设置合理的超间。例如,在 Dubbo 中,服务消费者端可以配置 `timeout` 参数来定义请求的最大等待间。如果消费方设置了超,则该设置具有更高的优先级[^5]。 ```xml <dubbo:reference id="demoService" interface="com.example.DemoService" timeout="3000"/> ``` --- #### 4. **WebServcie 如何实现安全性?** 常见的安全措施包括: - 使用 HTTPS 加密通信通道。 - 实现身份验证机制(如 OAuth、Basic Auth)。 - 在 SOAP 消息中嵌入 WS-Security 标准的安全令牌。 这些技术确保了数据在网络上传输过程中的机密性和完整性[^1]。 --- #### 5. **WSDL 文件的作用是什么?** WSDL (Web Services Description Language) 描述了一个 WebService 提供的功能接口以及如何与其交互的具体细节。开发者可以根据 WSDL 自动生成客户端代码或者测试工具。 ```xml <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="..."> <message name="GetUserRequest"> <part name="userId" type="xs:string"/> </message> </definitions> ``` --- #### 6. **Dubbo 注册中心挂掉后会发生什么情况?** 当 Dubbo 的注册中心发生故障,已经建立连接的服务提供者与消费者仍然可以继续正常工作一段间,直到会话过期或重新启动服务为止。然而新发起的服务发现流程将会失败。 --- ### 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值