1、 编写接口代码如下
import javax.jws.WebService; @WebService public interface WsServerDao { public int add(int a,int b); public int minute(int a,int b); }
2、 编写实现类如下(注意@WebService的Annotation内部声明的接口)
//声明实现接口的endpoint @WebService(endpointInterface="com.java.ws.WsServerDao") public class WsServerImpl implements WsServerDao{ @Override public int add(int a,int b) { System.out.println("a+b="+(a+b)); return a+b; } @Override public int minute(int a,int b) { System.out.println("a-b="+(a-b)); return a-b; } }
3、 发布服务
public class MyServer { //发布该webservice public static void main(String[] args){ String address = "http://192.168.1.103:7878/web"; Endpoint.publish(address,new WsServerImpl()); System.out.println("服务已经启动!"); } }
4、
模仿客户端解析服务
public class ClientTest { public static void main(String[] args) { try { //声明地址的url URL url = new URL("http://192.168.1.103:7878/web?wsdl"); //声明namespace arg0:访问地址的namespace,arg1:namespace后面的服务name QName qname = new QName("http://ws.java.com/","WsServerImplService"); //声明service Service service = Service.create(url,qname); //利用service拿到接口对象 WsServerDao wsd = service.getPort(WsServerDao.class); //调用方法 wsd.add(1,2); } catch (MalformedURLException e) { e.printstacktrace(); } } }
上述url中得两个参数分别是下图中得圈红部分。Namespace和服务name
说明:
上述程序只是我们对webservice的一个发布和测试。在client端调用的时候由于我们要声明接口对象。但是在现实中我们不可能给调用者接口对象代码。所以上述方法适合自行测试而已
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。