疯狂

STANDING ON THE SHOULDERS OF GIANTS
posts - 481, comments - 486, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

JAX-WS weService实例 c/s形式

Posted on 2010-01-13 23:22 疯狂 阅读(2481) 评论(0)  编辑  收藏 所属分类: webservice
Java SE 6封装了JAX-WS(Java API for XML-Web Services),而JAX-WS同时支持基于SOAP的Web服务和REST风格的Web服务,以下是个人写的一个实例:
首先是服务端:
   首先创建java项目或者web项目都可;
   首先编写service端接口,WebServerInterface(必须已接口形式发布)
 
@WebService(serviceName="testserver",targetNamespace="http://testserver.com")
@SOAPBinding(style 
= SOAPBinding.Style.RPC)
public interface WebServerInterface {

    @WebMethod
    
public TestUser getAllTestUsersByUserName(String userName);
}

 TestUser.java
package com.server;

public class TestUser {

    
private int id;
    
private String usetName;
    
private String pwd;
    
    
public int getId() {
        
return id;
    }

    
public void setId(int id) {
        
this.id = id;
    }

    
public String getUsetName() {
        
return usetName;
    }

    
public void setUsetName(String usetName) {
        
this.usetName = usetName;
    }

    
public String getPwd() {
        
return pwd;
    }

    
public void setPwd(String pwd) {
        
this.pwd = pwd;
    }

    
    
}


实现类:
@WebService(endpointInterface="com.server.WebServerInterface")
public class WebServerInterfaceImpl implements WebServerInterface {

    @Override
    
public TestUser getAllTestUsersByUserName(String userName) {
        
// TODO Auto-generated method stub
        return TestUserManager.getUserByName(userName);
    }


}


接下来是TestUserManager.java(用户管理类)
public class TestUserManager {

    
public static List<TestUser> users;
    
static{
        users 
= new ArrayList<TestUser>();
        
for(int i=0;i<=10;i++){
            TestUser testUser 
= new TestUser();
            testUser.setId(i);
            testUser.setUsetName(
"userName_"+i);
            testUser.setPwd(
"pwd_"+i);
            users.add(testUser);
        }

    }

    
    
public static TestUser getUserByName(String userName){
        
for(TestUser testUser:users){
            
if(testUser.getUsetName().equals(userName)){
                
return testUser;
            }

        }

        
return null;
    }

}


这样server就编写好了 然后就是发布server:当然如果是web项目的话可以通过servlet发布 当然要设置:load-on-startup 为1 在tomcat启动时初始化发布
public static void main(String[] args) {
         Endpoint.publish(
"http://127.0.0.1:10100/mywebserver"new WebServerInterfaceImpl());  
    }
运行后webserver就发布好了 可以同ie访问

接下来是客户端的访问:
客户端可以同eclipse通过wsdl的url来自动生成
也可以自己实现
例如:
URL url = new URL("http://127.0.0.1:10100/mywebserver?wsdl");
QName qname = new QName("http://service.myweb/","TimeServerImplService");  其中第一个参数为:namespaceURI 第二个为localPart
Service service = Service.create(url, qname);  
WebServerInterface = service.getPort(WebServerInterface .class);  
然后就可以操作了

代码下载:
/Files/freeman1984/src_server.rar /Files/freeman1984/src_client.rar


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


网站导航: