放假前就在水木清华发贴说要试一试.Net和Java的互调Web Service,这几天也一直在看
Web Service Essential和Xml的书。直到昨天下午才真的做起来。
首先得要双方的工具,.Net就不说了,当然是标配:.Net 2003 Pro。至于Java,
我开始想用Eclipse,但是它要自己装插件,不爽,就直接用Websphere了,也是
一个很好的IDE,只是我用这么强大的东东好像有一种浪费的感觉,活活1.X个G啊
,crying……
不管这么多了,到晚上终于装好了。于是,一边看电视一边做,说实话,
Websphere的教程真的不是很多,CSDN上Eclipse和Websphere的文章有一个数量级
的,看来真的是曲高和寡啊。终于搜到一篇教如何用Websphere建立Web Service
的,跳过一大段principle他说Websphere默认试图是service,右边就有一个link
label是建立wsdl的,而我就是没有找到这个该死的试图。没办法,只能自己来了
。
在“新建”中的确是有一个Web Service的选项,但是只能建立示范,没招,那就
建立示范吧。第一个货运的范例怎么也调不同,说有“server interal error”
,鬼才看那些源代码呢;第二个是医院,但是需要db2,立刻pass;最后一个是股
票查询,还好能够运行。它有一个test page,类似于.Net的asmx的调试页面,不过代码好
像要自己写。我选择唯一能使得方法getQuote,参数是String symbol,返回值是float,
大致是查股票的价格吧,但是我怎么知道股票的名称呢?更要命的他的返回值总是什么ya
hoo.com Excepion。我狂ft,好好一个方法,至于抛出这种莫名其妙的异常吗?
没办法,只剩这个程序可用了。反正只有一个方法,那就看它源代码吧。我在所有的.jav
a文件中查找getQuote方法,终于在一个什么XXbindXX.java(具体名字记不清了)中找到
了。这下我找到原因了,原来这个方法用了remote,就是说它真的到yahoo去查股票价格了
。
这下好了,我只是试一下Web Service而已。所以把这个方法其他东西统统删掉,加了一句
:return (float)100.00;(Java默认100.00时double型的,要转换)。
试一下test page,搞定。(这个方法有两处,所以要改两次)
下面就轻松了,打开.Net,新建一个Windows Application(or whatever, of course it
must be able to invoke the web service),添加Web引用,找到股票系统的Web Servic
e定义文件(XX.wsdl,名字忘了,很容易找到的),.Net提示找到Web Service。返回,下
面的Web Service调用就与asmx没有任何区别了。
So Enjoy yourself。当然,我下一步还是想花点力气把Websphere的Web Service看一下,
达到自己能写一个Web Service的程度
Web Service Essential和Xml的书。直到昨天下午才真的做起来。
首先得要双方的工具,.Net就不说了,当然是标配:.Net 2003 Pro。至于Java,
我开始想用Eclipse,但是它要自己装插件,不爽,就直接用Websphere了,也是
一个很好的IDE,只是我用这么强大的东东好像有一种浪费的感觉,活活1.X个G啊
,crying……
不管这么多了,到晚上终于装好了。于是,一边看电视一边做,说实话,
Websphere的教程真的不是很多,CSDN上Eclipse和Websphere的文章有一个数量级
的,看来真的是曲高和寡啊。终于搜到一篇教如何用Websphere建立Web Service
的,跳过一大段principle他说Websphere默认试图是service,右边就有一个link
label是建立wsdl的,而我就是没有找到这个该死的试图。没办法,只能自己来了
。
在“新建”中的确是有一个Web Service的选项,但是只能建立示范,没招,那就
建立示范吧。第一个货运的范例怎么也调不同,说有“server interal error”
,鬼才看那些源代码呢;第二个是医院,但是需要db2,立刻pass;最后一个是股
票查询,还好能够运行。它有一个test page,类似于.Net的asmx的调试页面,不过代码好
像要自己写。我选择唯一能使得方法getQuote,参数是String symbol,返回值是float,
大致是查股票的价格吧,但是我怎么知道股票的名称呢?更要命的他的返回值总是什么ya
hoo.com Excepion。我狂ft,好好一个方法,至于抛出这种莫名其妙的异常吗?
没办法,只剩这个程序可用了。反正只有一个方法,那就看它源代码吧。我在所有的.jav
a文件中查找getQuote方法,终于在一个什么XXbindXX.java(具体名字记不清了)中找到
了。这下我找到原因了,原来这个方法用了remote,就是说它真的到yahoo去查股票价格了
。
这下好了,我只是试一下Web Service而已。所以把这个方法其他东西统统删掉,加了一句
:return (float)100.00;(Java默认100.00时double型的,要转换)。
试一下test page,搞定。(这个方法有两处,所以要改两次)
下面就轻松了,打开.Net,新建一个Windows Application(or whatever, of course it
must be able to invoke the web service),添加Web引用,找到股票系统的Web Servic
e定义文件(XX.wsdl,名字忘了,很容易找到的),.Net提示找到Web Service。返回,下
面的Web Service调用就与asmx没有任何区别了。
So Enjoy yourself。当然,我下一步还是想花点力气把Websphere的Web Service看一下,
达到自己能写一个Web Service的程度