微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

webservice一简单的webservice实例

webservice基础知识

异构平台间的交互


java实现:
JAX-WS
框架:
CXF
AXIS
METRO

jax方式生成新的接口和实现接口的类(用于存放在client端)
-d        指定生成的目录
-keep    指定是否生成文件
-p        指定报名
-verbose显示生成详细过程
java:wsimport -d D:\sid\workspace_webservice\wsimport -keep -verbose http://localhost:6666/ns?wsdl


SEI(Service EndPoint Interface)
SIB(Service implement Bean)


WSDL基础:

SOAP:Simple object access Protocol(协议)
SOAPMessage:

WSDL:(url后出现的)
types:用来定义访问的类型
message:SOAP
portType:指明接口名称(绑定in和out;operation:指定方法名称
binding:指定传递消息所使用的格式(style:document和rpc)
service:指定服务所发布的基本信息

java EE视图:
可以查看web service Explorer
可以看到SOAP协议的发送与返回的xml

可以用tcpMon来捕获更清晰的xml
可以设置自己的监听端口,然后再用tcpmon来进行转发


实例:

package org.sid.service;

import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;

@WebService
public interface IMyService {
	@WebResult(name="addResult")
	public int add(@WebParam(name="a")int a,@WebParam(name="b")int b);

	@WebResult(name="minusResult")
	public int minus(@WebParam(name="a")int a,@WebParam(name="b")int b);

	@WebResult(name="login")
	public User login(@WebParam(name="username")String username,@WebParam(name="password")String password);
	
}
package org.sid.service;

import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;

@WebService(endpointInterface="org.sid.service.IMyService")
public class MyServiceImpl implements IMyService {

	@Override
	public int add(int a,int b) {
		System.out.println(a+b);
		return a+b;
	}

	@Override
	public int minus(int a,int b) {
		System.out.println(a-b);
		return a-b;
	}

	@Override
	@WebResult(name = "login")
	public User login(@WebParam(name = "username") String username,@WebParam(name = "password") String password) {
		User user = new User();
		user.setUsername(username);
		user.setPassword(password);
		return user;
	}

}



package org.sid.service;

import javax.xml.ws.Endpoint;

public class MyServer {
	public static void main(String[] args) {
		String address = "http://localhost:6666/ns";
		Endpoint.publish(address,new MyServiceImpl());
	}
}


package org.sid.service;

import java.net.MalformedURLException;
import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;

public class TestClient {
    public static void main(String[] args) {
        try {
            //创建访问的wsdl服务器地址url
            URL url = new URL("http://localhost:6666/ns?wsdl");
            //通过Qname致命服务的具体信息namespaceURI和localPart在http://localhost:6666/ns?wsdl中查找
            QName qname = new QName("http://service.sid.org/","MyServiceImplService");
            //创建服务
            Service service = Service.create(url,qname);
            //实现接口(依赖于接口了)
            IMyService ms = service.getPort(IMyService.class);
            ms.add(23,21);
        } catch (MalformedURLException e) {
            e.printstacktrace();
        }
        
    }
}


wsimport之后,将生成文件考入新的client项目中

使用如下客户端调用

package org.sid.service;


public class TestClient2 {
	public static void main(String[] args) {
		MyServiceImplService msis = new MyServiceImplService();
		IMyService ms = msis.getMyServiceImplPort();
		ms.add(12,2);
	}
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐