JAX-WS weService实例 c/s形式

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

你可能感兴趣的:(JAX-WS weService实例 c/s形式)