VS2010 根据WSDL文件(java Web Service)生成.cs文件

我们添加webService引用,一般是通过 添加服务引用完成的,其实 添加服务引用 在背后为我们生成了代理类。

我们手动生成代理类方法:

1、通过java Web Service,生成wsdl文件:

   1.1、IE地址栏中输入wsdl的url 例如:http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl

   1.2、通过IE的 【文件】-->【另存为】-->文件名中输入 UserService55.wsdl, 保存类型: 所有文件(*.*) ;

2、开始菜单-->Microsoft Visual Studio 2010 -->Visual Studio Tools-->Visual Studio Command Prompt (2010) ;

3、输入wsdl wsdl文件路径(D:\UserService55.wsdl) /out:UserService55.cs, 如下图:

 

4、cs文件生成在 Microsoft Visual Studio 10.0\VC\目录中;

转载于:https://www.cnblogs.com/qianxingdewoniu/archive/2012/11/19/2777964.html

实验题目 实验一 创建基于SOAP的Web Service 一、实验目的 1、掌握创建一个基于SOAP的Web服务的基本流程; 2、掌握查看Web服务描述文档的方法; 3、创建客户端使用服务。 二、实验内容和要求 1、使用Java创建一个基于SOAP的Web服务,查看对应的WSDL文档和创建客户端使用服务。 2、学习使用基于JWS的web service和Apache CXF的web service。 三、实验主要仪器设备和材料 1.计算机及操作系统:PC机,Windows 11; 2.编辑及运行环境:idea2025,Tomcat,JDK 1.8 四、实验方法、步骤及结果测试 创建基于JWS的Web Service 1、创建基于JWS的Web Service,命名为JWSofLiuC(姓名标记)。该服务有一个方法string JWSHelloLiuC,该方法接收学号string作为输入,输出个人的基本信息string,如学院,班级,姓名,籍贯。 2、服务的部署和配置 3、在浏览器中查看该Web服务的描述文档,同时结合自己编写的web服务,说明该服务的WSDL文档中各元素与服务之间的对应关系。 4、产生客户端代理 5、创建客户端 创建基于Apache CXF的web service 1、创建基于Apache CXF的web service,命名为CXFofLiuC。该服务有一个方法string CXFHelloLiuC,该方法接收学号string作为输入,输出个人的基本信息string,如学院,班级,姓名,籍贯。 2、服务的部署和配置 3、在浏览器中查看该Web服务的描述文档,结合自己编写的web服务,说明该服务的WSDL文档中各元素与服务之间的对应关系。 4、创建客户端 五、实验中出现的问题及解决方案 根据以上实验要求,完成相应的项目。 1.内容较多,分多次回答完成; 2.生成具体的项目文件目录,再生成具体的文件代码。
最新发布
05-31
<think>好的,我现在需要帮助用户完成基于SOAP的Web Service实验,分为JWS和ApacheCXF两部分。首先,我得理清实验的具体要求,然后一步步构建解决方案。用户要求使用Java创建基于JWS的WebService,命名为JWSofLiuC,有一个方法JWSHelloLiuC,接收学号返回基本信息。然后部署并查看WSDL文档,生成客户端。接着是Apache CXF的部分,类似的结构。首先,JWS(JAX-WS)部分。我需要回忆JAX-WS的创建步骤。通常,使用@WebService注解标记服务类,然后发布服务。用户可能使用Endpoint发布,或者部署到Tomcat。但实验要求可能使用简单的内置服务器,比如JDK自带的HttpServer。不过用户提到Tomcat作为环境,可能需要部署到Tomcat上。但有时候,JAX-WS可以通过Endpoint.publish()快速启动服务,这样更简单,适合实验环境。然后,客户端生成部分,需要使用wsimport工具生成客户端代理类。这部分需要指导用户如何运行命令,然后编写客户端代码调用服务。对于ApacheCXF部分,需要不同的配置。可能需要使用Spring配置或者CXF的Servlet来处理服务。用户需要添加CXF的依赖,配置web.xml和cxf-servlet.xml,然后创建服务实现类。客户端部分可能需要使用CXF的JaxWsProxyFactoryBean来创建代理。接下来,考虑具体的项目结构。对于JWS项目,可能需要一个简单的Java项目,包含服务类,然后通过Endpoint发布。而CXF项目可能需要一个Web应用,部署到Tomcat,配置相关的servlet和CXF的bean。现在,生成项目目录结构。JWS部分可能较简单,而CXF需要标准的Maven项目结构,包含webapp目录和配置文件。然后,代码部分。JWS的服务类需要@WebService注解,定义方法。Endpoint.publish()可能在主类中启动服务。客户端则需要使用wsimport生成的类,调用服务。对于CXF部分,服务类同样需要注解,然后通过Spring的配置发布为WebService。客户端可以使用CXF提供的代理工厂来创建客户端。在编写步骤时,需要详细说明每个文件的代码,以及如何部署和访问WSDL。同时,用户需要结合自己的服务解释WSDL中的元素,比如types、message、portType、binding、service等,对应到服务类和方法。 可能遇到的问题包括依赖缺失、配置错误、端口冲突等。需要提醒用户检查依赖是否正确,Tomcat是否正常运行,端口是否被占用,以及WSDL的访问路径是否正确。最后,生成相关问题,涉及JWS和CXF的区别、WSDL结构、客户端生成方式等,确保用户深入理解相关概念。</think>### 基于JWS的Web Service实现方案 #### 项目文件目录结构 ``` /JWS_WebService ├── src │ └── main │ ├── java │ │ └── com │ │ └── example │ │ ├── service │ │ │ ├── JWSofLiuC.java # 服务实现类 │ │ │ └── ServerPublisher.java # 服务发布类 │ │ └── client │ │ └── JWSClient.java # 客户端类 │ └── resources ├── pom.xml └── target ``` #### 1. 服务端实现 ```java // JWSofLiuC.java package com.example.service; import javax.jws.WebService; @WebService(endpointInterface = "com.example.service.JWSofLiuC") public class JWSofLiuCImpl implements JWSofLiuC { public String JWSHelloLiuC(String studentId) { // 根据学号返回基本信息 return "学院:计算机学院 | 班级:CS2023 | 姓名:刘晨 | 籍贯:北京"; } } ``` #### 2. 服务发布类 ```java // ServerPublisher.java package com.example.service; import javax.xml.ws.Endpoint; public class ServerPublisher { public static void main(String[] args) { String address = "http://localhost:8080/JWSofLiuC"; Endpoint.publish(address, new JWSofLiuCImpl()); System.out.println("服务已启动:" + address + "?wsdl"); } } ``` #### 3. 客户端实现 ```java // JWSClient.java package com.example.client; import com.example.service.JWSofLiuC; import javax.xml.namespace.QName; import javax.xml.ws.Service; import java.net.URL; public class JWSClient { public static void main(String[] args) throws Exception { URL wsdlUrl = new URL("http://localhost:8080/JWSofLiuC?wsdl"); QName serviceName = new QName("http://service.example.com/", "JWSofLiuCImplService"); Service service = Service.create(wsdlUrl, serviceName); JWSofLiuC port = service.getPort(JWSofLiuC.class); String result = port.JWSHelloLiuC("2023001"); System.out.println("服务响应:" + result); } } ``` #### 实现说明: 1. `@WebService`注解标记服务端点接口 2. 使用JDK内置的`Endpoint.publish()`方法发布服务 3. 客户端通过WSDL地址创建服务代理 4. WSDL文档可通过`http://localhost:8080/JWSofLiuC?wsdl`访问 ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值