通过WebService实现Java与.Net互联

Mr.Fang出品:银企互联(NC模式)开发者版本(.NET WebService中间件,Java、PHP、Python等跨语言测试通过) 相关介绍文章,放入本人的公众号(“开发谈”系列),方便读者查阅。 本开发者版本特点: ERP系统只需要通过HTTP协议将参数和发送内容一次性POST到WebService指定页面,接收应答即可。开发者不需要关注签名、提交页面格式、报文头参数、压缩模式等,实现了跨平台、跨语言的简单开发,技术门槛降至极低。 支持压缩模式提交大批量指令:rd最外层头尾套<zip>、</zip... 阅读详情

通过Web Service实现Java与.net互联

        (将.net程序封装成为Web Service,通过Java程序进行调用)

Web Service概述

什么是Web Service

       Web Service是能够基于网络,尤其是基于万维网(World Wide Web)直接调用的能够处理离散任务或连续任务的软件模型。目前较为流行的应用是,由一家公司对其专有数据进行封装,提供Web Service,然后其它公司就可以通过Internet来动态使用这些在线服务。这为未来全球的电子商务发展提供了新的标准和架构。

Web Service架构

Web Service是独立的、模块化的应用,能够通过因特网来描述、发布、定位以及调用。在Web Service的体系架构中包括三个角色:服务提供者(Service Provider)、服务请求者(Service Requestor)、服务注册器(Service Registry)。角色间主要有三个操作:发布(Publish)、查找(Find)、绑定(Bind)。

下图清楚的描述了三种角色,以及角色之间的作用关系。


Web Service协议标准

简单对象访问协议(SOAP)

       SOAP是Simple Object Access Protocol的缩写,是一种基于XML的不依赖传输协议的表示层协议,用来在分散或分布式的应用程序之间方便地以对象的形式交换数据。在SOAP的下层,可以是HTTP/HTTP,也可以是SMTP/POP3,还可以是为一些应用而专门设计的特殊的通信协议。

       SOAP包括三个主要部分:

²        SOAP封装结构:定义了一个整体框架,以表示消息中包含什么内容,谁来处理这些内容以及这些内容是可选的或是必需的。

²        SOAP编码规则:定义了用以交换应用程序定义的数据类型的实例的一系列机制。

²        SOAP RPC表示:定义了一个用来表示远程过程调用和应答的协定。

Web Service描述语言(WSDL)

       WSDL是Web Service Description Language的缩写,该语言将网络服务定义成一个能交换消息的通信端点集,为分布式系统提供了帮助文档,同时也可作为自动实现应用间通信的解决方案。

统一描述、发现和集成协议(UDDI)

       UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。

通过Java调用Web Service

       在这里我们通过.net实现了一个Web Service,它提供了这样的功能,将输入的两个数相加,返回结果。

示例Web Service提供的功能

       该示例Web Service提供了两个整数相加的功能,使用C#来实现Web Service,可以通过http://10.16.92.29/java/math.asmx?wsdl访问Web Service描述文件,其对应的WSDL描述如下所示:

通过JBuilder9调用该Web Service

建立一个新项目TestWebService

       新建一项目,指定项目名称“TestWebService”,及所在目录,其它全部按缺省设置。

从URL中导入Web Service

通过快捷方式“CTRL+N”,打开新建窗口,选择“Web Services”项,然后选择“Import a Web Service”,单击“OK”。

       输入WSDL文件地址:http://10.16.92.29/java/math.asmx?wsdl,然后单击“Next”。

这一步中,所有的选项按缺省设置就可以了。然后单击"Next"。 

       这一步中,您可以随意指定包名,如果将“Package options”中的复选框选中的话。生成的所有类将使用同样的包名。然后还可以选择“SOAP”协议类型,在此我们选择SOAP1.2协议,其它的设置就按缺省设置就可以了,单击“Next”按钮。

       在确认窗口中,单击“Finish”完成导入工作。

       导入成功后,JBuilder9会自动生成如下文件,如下所示。

自动生成文件的作用

Ø         Service1.java

该类定义了所需要的接口

Ø         Service1Locator.java

该类实现了Service1接口,主要用于定位WSDL文件

Ø         Service1Soap.java

该类定义了Web Service提供的接口方法

Ø         Service1SoapImpl.java

该类实现了Service1Soap接口

Ø         Service1SoapStub.java

该类实现了Service1Soap接口,用于实现Web Service调用。

Ø         Service1TestCase.java

JBuilder自动生成的单元测试类

编写测试代码

package org.tempuri;

 

import java.util.*;

 

/**

 * 测试程序

 * <p>Title: 通过客户端来测试Web Service</p>

 * <p>Description: 通过客户端来测试Web Service</p>

 * <p>Copyright: Copyright (c) 2004</p>

 * <p>Company: Tiger</p>

 * @author SucreTiger

 * @version 1.0

 */

public class Test

{

    public static void main(String[] agrs)

    {

        long startW = Calendar.getInstance().getTime().getTime();

        for (int i = 0; i < 3; i++) {

            try {

                //定位WSDL文件的位置

                Service1Locator sl = new Service1Locator();

                //获得Web Service的引用

                Service1Soap ss = (Service1Soap) sl.getService1Soap();

                //通过记录开始和结束的时间,来测试Web服务调用所花费的时间

                long start = Calendar.getInstance().getTime().getTime();

                System.out.println("开始时间 : " + start);

                //调用Web Service提供的功能方法

                int result = ss.add(100, 99);

                System.out.println("返回结果: " + result);

                long end = Calendar.getInstance().getTime().getTime();

                System.out.println("结束时间: " + end);

                System.out.println("时间消费: " + (end - start));

            }

            catch (Exception ex) {

                ex.printStackTrace();

            }

        }

    }

}

查看测试结果

D:/JBuilder9/jdk1.4/bin/javaw -classpath "D:/Projects/TestWebService/classes;D:/JBuilder9/thirdparty/junit3.8/junit.jar;D:/JBuilder9/lib/unittest.jar;D:/JBuilder9/lib/saaj.jar;D:/JBuilder9/lib/jaxrpc.jar;D:/JBuilder9/lib/axis.jar;D:/JBuilder9/lib/wsdl4j.jar;D:/JBuilder9/lib/log4j- 1.2.8 .jar;D:/JBuilder9/lib/commons-logging.jar;D:/JBuilder9/lib/commons-discovery.jar;D:/JBuilder9/lib/xercesImpl.jar;D:/JBuilder9/lib/xmlParserAPIs.jar;D:/JBuilder9/lib/activation.jar;D:/JBuilder9/lib/mail.jar;D:/JBuilder9/jdk1.4/demo/jfc/Java2D/Java2Demo.jar;D:/JBuilder9/jdk1.4/demo/plugin/jfc/Java2D/Java2Demo.jar;D:/JBuilder9/jdk1.4/jre/lib/charsets.jar;D:/JBuilder9/jdk1.4/jre/lib/ext/dnsns.jar;D:/JBuilder9/jdk1.4/jre/lib/ext/ldapsec.jar;D:/JBuilder9/jdk1.4/jre/lib/ext/localedata.jar;D:/JBuilder9/jdk1.4/jre/lib/ext/sunjce_provider.jar;D:/JBuilder9/jdk1.4/jre/lib/im/indicim.jar;D:/JBuilder9/jdk1.4/jre/lib/jaws.jar;D:/JBuilder9/jdk1.4/jre/lib/jce.jar;D:/JBuilder9/jdk1.4/jre/lib/jsse.jar;D:/JBuilder9/jdk1.4/jre/lib/rt.jar;D:/JBuilder9/jdk1.4/jre/lib/sunrsasign.jar;D:/JBuilder9/jdk1.4/lib/dt.jar;D:/JBuilder9/jdk1.4/lib/htmlconverter.jar;D:/JBuilder9/jdk1.4/lib/tools.jar"  org.tempuri.Test

开始时间: 1084968122004

返回结果: 199(Web Service返回的操作结果)

结束时间: 1084968122833

时间消费: 829(//调用一次Web Service所花费的时间,单位毫秒)

开始时间: 1084968122848

返回结果: 199

结束时间: 1084968123036

时间消费: 188

开始时间: 1084968123036

返回结果: 199

结束时间: 1084968123223

时间消费: 187

通过JSP来调用Web Service

Ø         将JBuilder9通过导入WSDL文件生成的类,打包成Client.jar。

上图是要打包的类文件的目录结构,使用如下命令完成打包操作:

jar –cvf Client.jar org

Ø         在JBuilder9的安装目录的LIB子目录下,查找如下类包(axis.jar、commons-discovery.jar 、jaxrpc.jar、log4j- 1.2.8 .jar、commons-logging.jar、saaj.jar、wsdl4j.jar)。

Ø         编写JSP测试代码,并将其打包生成测试的WEB应用。

上图是要打包的Web应用的目录结构,使用如下命令完成打包操作:

jar –cvf DefaultWebApp.war DefaultWebApp

Ø         然后通过http://localhost:7001/index.jsp 就可以测试Web Service了。

Ø         JSP测试源代码

<%@ page contentType="text/html; charset=GBK" %>

<%@ page import="java.util.*" %>

<%@ page import="org.tempuri.*" %>

<%

        long startW = Calendar.getInstance().getTime().getTime();

        for (int i = 0; i < 3; i++) {

            try {

                //定位WSDL文件的位置

                Service1Locator sl = new Service1Locator();

                //获得Web Service的引用

                Service1Soap ss = (Service1Soap) sl.getService1Soap();

                //通过记录开始和结束的时间,来测试Web服务调用所花费的时间

                long start = Calendar.getInstance().getTime().getTime();

                System.out.println("开始时间 : " + start);

                //调用Web Service提供的功能方法

                int result = ss.add(100, 99);

                System.out.println("返回结果: " + result);

                long end = Calendar.getInstance().getTime().getTime();

                System.out.println("结束时间: " + end);

                System.out.println("时间消费: " + (end - start));

            }

            catch (Exception ex) {

                ex.printStackTrace();

            }

        }

%>

注:所需的JAR包,一定要在应用服务器启动时加载,否则JSP文件编译不过。

参考资料

²        JBuilder9帮助文件

²        http://www.w3.org/2002/ws/

²        http:// www-900.ibm.com/developerWorks/cn/webservices/ ws-wsar/part2/index.shtml

webService学习-调用第三方提供的webService服务实现获取天气预报信息 前言:这篇文章的内容主要是参考了一些csdn上的童鞋写的文章来实现第三方webservice的调用, 按照网上的方法步骤经过自己一步一步的实践操作,中间又遇到了很多问题,这里来做个总结,希望可以帮助大家 ,如果内容有雷同希望见谅,蟹蟹啦。      互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中 阅读详情

相关推荐

Java WebService实战:从HelloWorld到WSDL接口开发与客户端调用详解

WebService作为一种基于SOAP协议和WSDL描述的标准化服务接口技术,其核心价值在于实现跨平台、跨语言的异构系统间可靠通信。其工作原理是通过XML格式的SOAP消息在HTTP等协议上传输,并由WSDL文件明确定义服务端点、操作及数据结构,形成机器可读的契约。在Java生态中,JAX-WS标准与Apache CXF框架的结合,为构建高互操作性的企业级服务提供了强大支持。通过代码优先的开发模式,开发者可以快速定义服务接口并发布服务,而客户端则可通过动态调用、工具生成存根等多种方式实现集成。本文以经典的

weixin_34067102的博客 313

java .net webservice_java调用.net的webservice

一.参考文献二.概述前面写了一篇博客eclipse+webservice是在java环境下进行的。考虑到webservice的跨系统,跨语言,跨网络的特性,下面写了一个实例来测试其跨语言的的特性。首先是用asp.net开发一个webservice,然后再java中创建客户端来调用这个service。三.实例(1)打开visual studio 2010,新建项目,如下图所示:新建的项目结果如下图...

weixin_42108948的博客 397

WebService应用深入解析与实践

本文还有配套的精品资源,点击获取 简介:WebService是一种基于XML的分布式应用程序构建技术,支持平台无关的通信和数据交换。本篇文章将深入探讨WebService的核心技术(SOAP、WSDL、UDDI),解析其工作流程,并探索其在跨平台通信、B2B集成、移动应用开发等领域的应用。同时,文章将介绍Java和.NET等不同开发环境下的源码实现工具和最佳实践。理解Web...

weixin_29155599的博客 1854

Java与.NET间进行Web Service交互的选择

谈到.NET和Java之间的Web服务交互性时,通常的选择只有SOAP over HTTP,而根据.NET 3.0的相关规范,这仅有的一个选择也将会受到更多限制,.NET中提供的BasicHTTP将是唯一能直接与Java Web Servcies进行交互的方式。 最近,有两个新的选择出现了——WebSphere MQ(WMQ)和ActiveMQ传送器,它们可以用于创建Java和.NET之间的交互...

weixin_30760895的博客 124

基于WebService的SendEMail程序设计与实现

回顾整个WebService技术栈,它就像是一个精密的瑞士手表,每个齿轮都严丝合缝地配合运转。虽然现在RESTful API大行其道,但在需要强契约、高可靠性的场景下,WebService依然有着不可替代的优势。最重要的是要记住:技术本身没有好坏之分,关键在于是否用对了地方。就像我们不会用显微镜去看风景,也不会用望远镜去观察细胞。选择WebService,就意味着选择了稳定性、可靠性和长期可维护性,这些都是企业级应用最看重的品质 💎。

weixin_42576804的博客 962

全面掌握WebService:教程与案例分析

Web服务是一种网络应用,它采用标准的互联网协议如HTTP或SMTP来实现不同平台的应用程序之间的交互。它允许不同系统之间以一种松耦合的方式进行通信,使得在不同编程语言或技术平台下构建的应用程序能够无缝协作。Web服务是基于网络的应用程序编程接口(API),它们使用标准的互联网协议来促进跨平台和跨语言的软件应用程序之间的通信。Web服务技术架构的核心是简单对象访问协议(SOAP),这是一种基于XML的消息传递协议,用于在网络中传输结构化信息。

weixin_28840811的博客 1109

C#开发和调用Web Service

1.1、Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。 XML:(Extensible Markup Language)扩展型可标

风.foxwho(神秘狐) 3018

java和.net调用webservice的各种方法总结

java 调用webservice的各种方法总结 现在webservice加xml技术已经逐渐成熟,但要真正要用起来还需时日!! 由于毕业设计缘故,我看了很多关于webservice方面的知识,今天和大家一起来研究研究webservice的各种使用方法。 一、利用jdk web服务api实现,这里使用基于 SOAP message 的 Web 服务 1.首先建立一个Web services EndPoint: package Hello; import javax.jws.WebService; import javax.jws.WebMethod; import javax.xml.ws.Endpoint; @WebService public class Hello { @WebMethod public String hello(String name) { return "Hello, " + name + "\n"; } public static void main(String[] args) { // create and publish an endpoint Hello hello = new Hello(); Endpoint endpoint = Endpoint.publish("http://localhost:8080/hello", hello); } } 2.使用 apt 编译 Hello.java(例:apt -d [存放编译后的文件目录] Hello.java ) ,会生成 jaws目录

.Net中 WebService的两种实现方式

WebService详解 和.Net中 WebService的两种实现方式

Ryangfeng 2910

如何用.net调用java或net写的webservice

如何用.net调用java或net写的webservice(遵循wsdl规则

应用处理器(AP)、系统级芯片(SoC)与微控制器(MCU)的区别与联系

应用处理器(AP)、系统级芯片(SoC)与微控制器(MCU)的区别与联系

a_zxswer的博客 1694

Web Service的介绍

Web Service的介绍你可能早就听说过Web Service了,你也可能已经对Web Service有了一些概念,现在不管是在什么场合,谈到以后发展的新趋势,大家都会提到Web Service。世界上的顶级公司,不管是微软、IBM还是SUN,都开始把Web Service频繁地挂在嘴边。大多数媒体也开始鼓吹Web Service是多么的好,多么的有前途或者“钱”途……但Web Servi

kw123信息专栏 2375

Silvaco TCAD仿真4——DeckBuild实战:从示例库到自定义设计

本文详细介绍了Silvaco TCAD仿真工具DeckBuild的实战应用,从示例库的使用到自定义设计的全过程。通过具体案例和参数修改技巧,帮助用户快速掌握TCAD仿真技术,提升半导体器件设计的效率和精度。特别适合需要从基础入门到进阶操作的工程师和研究人员。

weixin_29284657的博客 435

.net webservice怎么接收post过来的json_WebService快速入门

WebService简介Web Service也叫XML Web Service, WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。WebService是一种跨编程语言和跨操作系统平台的远程调用技术。还可以从多个角度来理解WebSe...

weixin_39772849的博客 1706

别再只盯着Text-VQA了!这4个主流VQA数据集(含中英双语)的保姆级下载与对比指南

本文深入解析了Text-VQA、ST-VQA、OCR-VQA和EST-VQA这4个主流视觉问答数据集的特性与应用场景,提供了详细的下载与预处理指南。通过对比分析,帮助开发者根据项目需求选择最适合的数据集,避免因选型不当导致的模型性能问题,特别适合需要处理中英双语或多模态文本理解的AI项目。

weixin_42524708的博客 362

Windows11安装UE4+Airsim

Windows11安装UE4+Airsim

Legendyyy的博客 3743

net调用java body_JAVA与.NET的相互调用通过Web服务实现相互调用

JAVA与.NET是现今世界竞争激烈的两大开发媒体,两者语言有很多相似的地方。而在很多大型的开发项目里面,往往需要使用两种语言进行集成开发。而很多的开发人员都会偏向于其中一种语言,在使用集成开发的时候对另一种语言感觉到畏惧。在这里在下向各位介绍一下,JAVA与.NET相互调用的例子。下面的介绍主要包括三方面:一是通过常用Web服务进行相互调用,二是使用TCP/IP套接字进行相互调用,三是使用Rem...

weixin_34374031的博客 113

NVIDIA Isaac GR00T N1.5 人形机器人强化学习入门教程(四)Lerobot、宇树 G1 等不同形态机器人微调教程

本笔记本是一份关于如何在新的数据集上对GR00T-N1预训练模型进行微调的教程。

2506_90492529的博客 1667

Java通过HTTP调用WebService接口,简单可靠

亲测好用

WgRui的博客 1万+

基于 STM32 的智慧图书馆智能控制系统设计与实现

智慧图书馆智能控制系统集成环境调控、安全监控、借阅管理与信息推送功能,通过 STM32 主控芯片联动传感器、执行器及云平台,实现图书馆智能化管理。系统架构分为感知层(传感器)、控制层(STM32 主控)、执行层(继电器 / 显示屏)及云端层(数据交互),支持温度自动调节、灯光自控、火情安防监控、天气推送及 RFID 借还书管理。本系统通过 STM32 实现多传感器融合与设备控制,结合 RFID 与云平台技术,构建了集环境智能调控、安全监控、便捷借阅于一体的智慧图书馆解决方案。

weixin_42300449的博客 2203

免费教你快速学会分析运算放大器电路(保证学会)

本文旨在学习如何快速简单地对运算放大器进行分析

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 1万+

java调用.net的web service

<br />一对应用,A使用Java开发,B使用.NET开发;现要求B应用开发一个.NET WebService接口,将此接口URL登记到A应用中,当有消息产生时,A应用通过此接口向B应用报告。<br /><br />WebService开发出来后联调发现,即使有消息产生,B应用接口也未能拿到任何数据,查看IIS日志却发现A应用是有在调用接口的。由于A系统已经是一个产品化的应用,所以只能是调整B应用去适应它。<br /><br />首先抓包,发现接口调用IIS直接报告HTTP 500错误<br />客户端的

lq547854的专栏 545

深度学习论文: Towards Total Recall in Industrial Anomaly Detection

在大规模工业制造中,能够准确检测出有缺陷的零件至关重要。我们在这项工作中面临的一个特殊挑战是冷启动问题:仅使用正常的示例图像来训练模型。虽然可以针对每个类别手动设计解决方案,但我们的目标是构建能够自动适用于多个任务的系统。最佳的方法是将ImageNet模型的嵌入特征与异常检测模型结合起来。在本文中,我们在这一研究基础上进行了扩展,并提出了PatchCore,它利用了一个具有最大代表性的正常补丁特征内存库。通过这种方法,我们能够更好地解决冷启动问题,并提高系统在多任务上的性能。

mingo_敏 1880

WebService核心原理与Java实战:从SOAP协议到企业级集成

远程过程调用(RPC)是分布式系统实现跨进程通信的核心范式之一,它允许程序调用另一台计算机上的函数或方法,如同调用本地函数一样。其原理在于通过网络协议封装调用请求和响应,实现服务的透明访问。在众多RPC实现中,基于XML的SOAP协议因其强契约、标准化和安全性,在企业级集成领域展现出独特的技术价值。它通过WSDL定义服务接口,利用XML Schema确保数据结构一致性,特别适用于金融、电信等对事务性、可靠性和安全性要求严苛的应用场景。本文以Java生态为例,深入解析SOAP WebService的架构思想,

weixin_30915275的博客 344

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

WebService总结

这里远程调用服务端只需要使用WebClient工具类即可完成,他调用请求方法后所返回的返回值为Response对象,该对象可以通过readEntity()方法来获取特定类型的返回值供我们使用。

m0_60027772的博客 2961

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: 相约在"冬至"_与冬至有关的诗词
下一篇: 特别调查:关于圣诞节的数字报告
magic_ring
博客等级 码龄22年 0粉丝 19原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值