mingyi's profile大头的空间PhotosBlogListsMore Tools Help

Blog


    September 22

    关于WebService的调用

    在跟着乱箭大哥做项目的一段时间, 在被乱箭大哥无情的摧残下总算对WebService的调用上有点心得..关于WebService的创建不多说..现在一大把框架,工具都能自动的生成WebService,象AXIS2, CXF, SUN内嵌在JDK1.6中的JAX-WS(比之前的JAX-RPC要好的多),然而对于WEBSERVICE的调用虽然这些技术都能实现, 但是要做到动态的调用一个WebService,目前的这些工具是远远不足的. 首先这些技术主要是依靠WSDL然后生成一些JAVA代码, 这些JAVA代码很好, 将调用WEBSERVICE的底层工作给完全隐藏起来, 但是如果需要在运行时的状态下生成这些代码然后在编译他们相信并不是一件轻松的事.
    为了能够动态的调用WEBSERVICE, 首先必须了解到底调用WEBSERVICE的底层是如何实现的, 其实当前的大多数WEBSERVCIE 都是通过SOAP信息来传输信息的, 也就是说如果能够动态的生成这个WEBService 所需要的SOAP信息.然后发到这个这个WEBSERVICE指定的端口, 那么就能够远程调用这个WEBSERVICE. WSIF框架就是在实现这样一个功能, 运用WSIF框架可以动态的调用一个WEBSERVICE, 在之前调用WEBSERVICE必须生成WEBSERVICE的客户端或者生成WEBSERVICE的STUB, 这样在大型的工作流系统中,如果要交互的是数百个WEBSERVICE, 那么就得生成数百个客户端.然后WSIF 只需要编写数行的代码就能实现数百个WEBSERVICE共享一个客户端.
    而且WSIF所需的参数是WEBSERVICE的WSDL文件, WSIF绕过了生成繁多的JAVA 代码的步罩, 直接根据WSDL文件来生成一个SOAP信息, 然后将SOAP信息发送给指定的WebService. 其中所有涉及的操作都是对XML文件的处理, 象WSDL 和 SOAP都仅仅是简单的XML文件而已.
    然而让人伤心的是WSIF居然在2005年就停止更新了......目前的WSIF只支持SOAP1.1和简单的数据类型......
    在WSIF框架的启发下,开始自己编写创建根据WSDL文件来解析创建SOAP信息的程序, 虽然有了一些成效.但是自己编写的程序不仅需要WSDL文件而且需要大量的类库和参数...
    后来无意之中发现了SOAPUI这个工具,而且这个工具居然是开源的...惊喜之下将他的类包导入到项目中,然后试了下SOAPUI 的API函数..发现里面有个支持SOAP的类库, 一试之下,果然不出所料.这个小小东西居然能只根据一个WSDL文件然后轻松的解析出WEBSERVICE所需要的SOAP信息.....一顿狂试之下终于发现SOAPUI所依赖的是APACHE的XMLbeans 这个开源类库
    将SOAPUI的SOAP消息创建机制融合于工作流系统中终于能够做到动态的调用WEBServices了...
    SOAPUI确实是个好东西希望能得到广泛支持.....

    Comments (1)

    Please wait...
    Sorry, the comment you entered is too long. Please shorten it.
    You didn't enter anything. Please try again.
    Sorry, we can't add your comment right now. Please try again later.
    To add a comment, you need permission from your parent. Ask for permission
    Your parent has turned off comments.
    Sorry, we can't delete your comment right now. Please try again later.
    You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
    Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
    Complete the security check below to finish leaving your comment.
    The characters you type in the security check must match the characters in the picture or audio.

    To add a comment, sign in with your Windows Live ID (if you use Hotmail, Messenger, or Xbox LIVE, you have a Windows Live ID). Sign in


    Don't have a Windows Live ID? Sign up

    shrimpy wuwrote:
    嗯。。老大。。你应该写成英文的。。那样会现多人来看
    22 Sept.

    Trackbacks

    The trackback URL for this entry is:
    http://kasper329.spaces.live.com/blog/cns!DB580A4D7F97D154!664.trak
    Weblogs that reference this entry
    • None