随笔 - 119  文章 - 3173  trackbacks - 0
<2006年12月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

交友莫独酒,茅台西凤游。
口干古井贡,心徜洋河流。
称多情杜康,趟无量双沟。
赞中华巍巍,无此不销愁。

常用链接

留言簿(68)

随笔分类(136)

随笔档案(122)

最新随笔

搜索

  •  

积分与排名

  • 积分 - 522262
  • 排名 - 94

最新评论

Java6 WebServices (一)服务端这篇文章中和大家分享了Java6 WebServices 服务端的写法,光有服务端还不行,还要有客户端才行啊。看了一些网友的相关文章,都只给出了服务端的写法,没有说客户端怎么说。经过一番研究,终于搞定了客户端,今天偶就和大家分享下。
首先启动Java6 WebServices (一)服务端一文中写好的服务端。
新建个项目。命令行到src目录执行,
wsimport -keep  http://localhost:8080/HelloService?wsdl
会自动生成一些代码。


package org.hermit.study.jdk.client;

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


/**
 * This class was generated by the JAXWS SI.
 * JAX-WS RI 2.0_02-b08-fcs
 * Generated source version: 2.0
 * 
 
*/
@WebService(name 
= "Hello", targetNamespace = "http://jdk.study.hermit.org/client")
@SOAPBinding(style 
= SOAPBinding.Style.RPC)
public interface Hello {


    
/**
     * 
     * 
@param arg0
     * 
@return
     *     returns java.lang.String
     
*/
    @WebMethod
    @WebResult(partName 
= "return")
    
public String sayHello(
        @WebParam(name 
= "arg0", partName = "arg0")
        String arg0);

}

package org.hermit.study.jdk.client;

import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import javax.xml.ws.WebEndpoint;
import javax.xml.ws.WebServiceClient;


/**
 * This class was generated by the JAXWS SI.
 * JAX-WS RI 2.0_02-b08-fcs
 * Generated source version: 2.0
 * 
 
*/
@WebServiceClient(name 
= "HelloService", targetNamespace = "http://jdk.study.hermit.org/client", wsdlLocation = "http://localhost:8080/HelloService?wsdl")
public class HelloService
    
extends Service
{

    
private final static URL HELLOSERVICE_WSDL_LOCATION;

    
static {
        URL url 
= null;
        
try {
            url 
= new URL("http://localhost:8080/HelloService?wsdl");
        } 
catch (MalformedURLException e) {
            e.printStackTrace();
        }
        HELLOSERVICE_WSDL_LOCATION 
= url;
    }

    
public HelloService(URL wsdlLocation, QName serviceName) {
        
super(wsdlLocation, serviceName);
    }

    
public HelloService() {
        
super(HELLOSERVICE_WSDL_LOCATION, new QName("http://jdk.study.hermit.org/client""HelloService"));
    }

    
/**
     * 
     * 
@return
     *     returns Hello
     
*/
    @WebEndpoint(name 
= "HelloPort")
    
public Hello getHelloPort() {
        
return (Hello)super.getPort(new QName("http://jdk.study.hermit.org/client""HelloPort"), Hello.class);
    }

}

下面我们再写个测试,看看能不能用:
package org.hermit.study.jdk.client.test;

import org.hermit.study.jdk.client.Hello;
import org.hermit.study.jdk.client.HelloService;


public class TestClient {
    
public static void main(String[] args) {
        HelloService service 
= new HelloService();
        Hello _hello 
= service.getHelloPort();
        System.out.println(_hello.sayHello(
"hermit"));
    }
}
执行。
控制台输出:
hello:hermit

ok!搞定。
java6搞定web service就这么简单。。。。。。。。。。。。。。。。。。。。。。。。。。

xfire危险了。。。。。。。。。。。。。。。。。。。。。。。。
posted on 2006-12-21 10:06 交口称赞 阅读(7064) 评论(7)  编辑  收藏 所属分类: Java6

FeedBack:
# re: Java6 WebServices (二)客户端 2006-12-21 21:45 关关
拜读  回复  更多评论
  
# re: 学习Java6(一) WebServices (2)客户端 2007-01-03 22:02 jht
不错,问你个问题吧,如何发布刚刚写的服务端的WebService?我没搞过呀  回复  更多评论
  
# re: 学习Java6(一) WebServices (2)客户端 2007-01-04 09:14 交口称赞
服務端直接運行就發布了啊  回复  更多评论
  
# re: 学习Java6(一) WebServices (2)客户端 2007-01-04 18:44 jht
我的意思是难道我要一直运行服务端? 能不能搞到Tomcat里?  回复  更多评论
  
# re: 学习Java6(一) WebServices (2)客户端 2007-01-04 18:57 交口称赞
汗..........
明白了

偶在项目里面一直用的xfire做web service
写这个只是关注下新技术

我会尽快出个整合进tomcat的例子  回复  更多评论
  
# re: 学习Java6(一) WebServices (2)客户端 2007-01-05 13:47 交口称赞
# re: 学习Java6(一) WebServices (2)客户端[未登录] 2007-01-26 21:45 test
多谢多谢  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: