加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

WebService之.net与java远程调用

发布时间:2020-12-17 00:39:55 所属栏目:安全 来源:网络整理
导读:? 在java ee项目中有一对密码进行加密解密的算法,需要在局域网中有.net系统的机器上远程调用该算法,自然而然想到了 webservice,由于之前没了解过webservice的相关知识,更不清楚其原理,百度了一大堆也没能解决知识,这里说下具体的远程调用方法: ??????

? 在java ee项目中有一对密码进行加密解密的算法,需要在局域网中有.net系统的机器上远程调用该算法,自然而然想到了

webservice,由于之前没了解过webservice的相关知识,更不清楚其原理,百度了一大堆也没能解决知识,这里说下具体的远程调用方法:

??????????? webservice相当于中间接口,如果之前类的结构不是用的接口方式,需要改造下,webservice是按照接口中的public方法生成的,

也即生成dll文件后只有接口中的几个方法,但这些方法的实现并没有在dll文件中,webservice只是一个桥梁作用,当.net使用dll中的方法时

,会通过webservice去远程调用java中的相应函数

?????????? 项目(右键)--->Myeclipse---->Add XFire Web Service Capabilities..-----> 打开生成的WebServices目录----->修改

sevices.xml

????????? services.xml修改方法如下:

????????? 在<beans></beans>中添加<service>

?????????????????????????????????????????????????????????????????????? <name>类名</name>

?????????????????????????????????????????????????????????????????????? <namespace>命名空间</namespace>

?????????????????????????????????????????????????????????????????????? <serviceClass>接口类地址</serviceClass>

??????????????????????????????????????????????????????????????????????? <implementationClass>实现接口类地址

</implementationClass>

???????????????????????????????????????????????????????????????????????? </service>

???????????

?????????? 打开项目web.xml可以看到Myeclipse已经为我们生成好了相关配置,在浏览器中输入以下地址:http://localhost:端口/项目名

称/services/javaws?wsdl ,如果页面中出现xml内容表示webservice接口生成成功(注:有的浏览器可能不会显示,可以用浏览器查看源码),

在浏览器上把该页面另存为 xx.wsdl文件

????????? 到这一步已经完成了java到webservice的转换,下边就是.net对该文件的使用,实际上对于wsdl文件,任何语言都可以通用的。

????????? 打开visual studio 命令提示符---->选择到存放xx.wsdl文件目录(这里比如说在d盘下存放了javaws.wsdl文件) --->输入以下命令

:wsdl /n:wyq /out:javaws.cs javaws.wsdl(注:注意中间见得空格,每个/之前都会有个空格,/n:命名空间,/out:输出文件)------>命令执

行无错后我们可以在d盘下看到多长javaws.cs文件----------->输入命令:csc /out:javaws.dll /t:library javaws.cs(注:/out:dll文件名称

,javaws.cs一定要与上一步输出的cs文件名一致),大家可以看到d盘下有多了javaws.dll文件,好了,可以在本机打开visual studio添加对该

dll的引用,使用时添加using namespace +命令中/n后边的值,例如:这里是using namespace wyq;大家还记得在services.xml中配置的<name>

类名</name>,实例化该类就可以调用方法了

????????? 也许到这里你已经成功在本机调用了方法,但是你想,如果局域网中的其他机器想用这个dll呢?直接把dll文件拷贝过去行吗?答案

是肯定不行的,如果想在其他机器上使用java方法,第一种方法:在visual studio命令提示符对wsdl进行转换时,wsdl: /n:wyq /out

javaws.cs http://192.168.1.104:8080/wyqldtec/services/javaws?wsdl即可

第二种方法是在visual studio中添加web引用即可

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读