JSP学习笔记(一百零七):使用metro开发webservice

一、下载metro
metro貌似已经整合在jdk1.6里面了,没有试过。我用的是jdk1.5,需要下载支持包,下载地址:https://metro.dev.java.net/2.0-ea/metro-2_0-ea.jar
metro官方地址: https://metro.dev.java.net/

二、布置metro到项目中去
Windows平台下,jar包可以执行,自动解压到metro路径下,我经过尝试,至少需要metro/lib目录下的:
webservices-api.jar
webservices-rt.jar
webservices-extra.jar
这三个包才能使用metro提供webservice服务

三、使用metro编写服务端代码
编写服务类Storck.java
package  com.mysite.webservice;

import  javax.jws.WebMethod;
import  javax.jws.WebService;
import  javax.jws.soap.SOAPBinding;

@WebService(targetNamespace 
=   " http://tempuri.org/ " )   
@SOAPBinding(style 
=  SOAPBinding.Style.RPC)   
public   class  Storck {
    
    @WebMethod
    
public  String Hello(String str)
    {
        
return   " Hello, "   +  str;
    }
}

开启服务类:
……
javax.xml.ws.Endpoint.publish(
" http://127.0.0.1:8080/proj1/HelloService " new  Storck());
……


运行开启服务的类,就可以使用http://127.0.0.1:8080/proj1/HelloService?wsdl 看到效果了


四、使用metro编写客户端代码
metro\bin目录下提供的有工具wsimport,可以根据wsdl生成相关类
我是这么用的:

wsimport  - s c:\hello - client  - p com.mysite.client  - extension http: // 127.0 . 0.1 : 8080 / proj1 / HelloService ? wsdl

-s c:\hello-client 生成客户端相关类的路径
-p com.mysite.client 生成客户端相关类的包名
-extension 貌似是忽略警告之类的
http://127.0.0.1:8080/proj1/HelloService?wsdl 提供服务的地址

用这个工具会生成两个文件到c:\hello-client:
Storck.java
StorckService.java

然后就是最终的调用了:

        StorckService service  =   new  StorckService();
        Storck storck 
=  service.getStorckPort();
        System.out.println(storck.hello(
"T om " ));

运行时,控制台打印结果为:Hello,Tom

五、使用metro编写代码调用.Net WebService
在.net环境编写WebService服务代码WebService1.asmx:

using  System.Web.Services;
using  System.Web.Services.Protocols;

namespace  App3
{
    
///   <summary>
    
///  WebService1 的摘要说明
    
///   </summary>
    [WebService(Namespace  =   " http://tempuri.org/ " )]
    [WebServiceBinding(ConformsTo 
=  WsiProfiles.BasicProfile1_1)]
    [SoapDocumentService(RoutingStyle 
=  SoapServiceRoutingStyle.RequestElement)]
    [ToolboxItem(
false )]
    
public   class  WebService1 : System.Web.Services.WebService
    {

        [WebMethod]
        
public   string  HelloWorld(String str)
        {
            
return   " Hi, "   +  str;
        }
    }
}
服务地址为: http://127.0.0.1/app1/WebService1.asmx?wsdl

用wsimport生成相关代码,上面有讲,这里略过,不过不同的是,生成了6个文件:
HelloWorld.java
HelloWorldResponse.java
ObjectFactory.java
package-info.java
WebService1.java
WebService1Soap.java

最终调用代码:

        WebService1 service  =   new  WebService1();   
        WebService1Soap soap 
=  service.getWebService1Soap(); 
        System.out.println(soap.helloWorld(
" Lily " ));

 运行时,控制台打印结果为:Hi,Lily

转载于:https://www.cnblogs.com/modou/articles/1546899.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值