发布webservice

来源:互联网 发布:机械先驱知乎 编辑:程序博客网 时间:2024/05/22 12:42
首先我们需要一个service接口,getUsers方法就是给外部调用的接口  需要写实现类
@WebServicepublic interface ILoginServices {public String getUsers(String id);}
还需要一个实现类,这是基于注解的方式
@WebService(endpointInterface="com.hj.services.webservices.ILoginServices",serviceName="Helloworld")public class LoginServices implements ILoginServices {public String getUsers(String id) {//假设外部调用我的接口传入一个id,我通过这个id查出了一个结果集 以xml的字符串返回过去String id="001001";String name="hujian";String sex="nan";StringBuffer sb = new StringBuffer();sb.append("<UsersInfo>").append("<UsersID>"+id+"</UsersID>").append("<UsersName>"+name+"</UsersName>").append("<UsersSex>"+sex+"</UsersSex>").append("</UsersInfo>");return sb.toString();}}
然后我们需要发布出去暴漏这个接口给别人调用<pre name="code" class="java">//我写了个Listener  会在web项目启动的时候调用contextInitialized方法来发布我的接口public class InitApp implements ServletContextListener{@Overridepublic void contextDestroyed(ServletContextEvent sce) {// TODO Auto-generated method stub}@Overridepublic void contextInitialized(ServletContextEvent sce) {    System.out.println("web service start");        LoginServices implementor = new LoginServices();  //这个是我要发布的那个接口的实现类        String address = "http://192.168.200.39:8080/creazy"; //让外部访问的地址        Endpoint.publish(address, implementor);   //发布出去        System.out.println("web service started");}}
还需要在web.xml配上
<span style="white-space:pre"></span><listener> <listener-class>com.hj.services.webservices.InitApp</listener-class> </listener>
<servlet>        <servlet-name>CXFServlet</servlet-name>        <display-name>CXFServlet</display-name>        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>           <servlet-name>CXFServlet</servlet-name>           <url-pattern>/webservice/*</url-pattern>    </servlet-mapping>

这样会在容器启动的时候找到我的InitApp类

配置好后在浏览器输入  <pre name="code" class="java">http://192.168.200.39:8080/creazy?wsdl    会看到你发布的接口信息

以上实现就可以发布我的webservice接口了   外部调用通过我发布的接口地址   接口, 参数 来访问

<span style="font-family:Arial, Helvetica, sans-serif;"><span style="white-space: normal;"></span></span>
0 0
原创粉丝点击