用Myeclipse在web项目中发布WebService
准备工作:
1、新建一个web项目;
2、定义服务的接口Speaker:
- package com.beauxie.webservice;
- import javax.jws.WebService;
- /**
- * 定义服务的接口
- * @author
- *
- */
- @WebService//此注解用在类上指定将此类发布成一个WebService
- public interface Speaker {
- String sayHello(String name);
- }
- package com.beauxie.webservice;
- import javax.jws.WebService;
- /**
- * 定义服务的实现类
- * @author Beauxie
- *
- */
- @WebService(endpointInterface="com.beauxie.webservice.Speaker")
- public class Person implements Speaker {
- public String sayHello(String name) {
- return "Hello,"+name;
- }
- }
主要步骤:
1.依次点击左上角的“File”-->“New”-->“other”,如下图所示:
2.选择"Web Service",点击“Next”,如下图所示:
3.点击"Install JAX-WS-Facet"安装JAX-WS-Facet,如下图所示:
4.选择自己所要发布服务的项目等,如下图所示:
5.在 Java class一栏中,选择web服务的实现类,(点击右边的Browse,直接搜索类名即可),其余的不用修改:
6.完成上述步骤以后,在WEB-INF目录下可以看到多了两个文件:“sun-jaxws.xml”和“web.xml”,然后再导入相关的jar包,不然会报错:java.lang.ClassNotFoundException: com.sun.xml.ws.transport.http.servlet.WSServletContextListener
。(点击下载相关jar包)
7.打开"web.xml",可查看配置:
8.启动web项目之后,打开浏览器,访问“web.xml”中servlet(url-pattern)对应的webservice:
出现以上界面,说明服务发布成功。
总结:
1.当出现:java.lang.ClassNotFoundException: com.sun.xml.ws.transport.http.servlet.WSServletContextListener异常时,很大原因是因为忘了导入相关jar包;
2.通过“web.xml”中对应的servlet(url-pattern)访问发布的webservice,每个人端口号不同,我这里修改了tomcat的配置文件,将默认端口改成了80。