发布webservice
发布时间:2020-12-16 22:24:17 所属栏目:安全 来源:网络整理
导读:首先我们需要一个service接口,getUsers方法就是给外部调用的接口 ?需要写实现类 @WebServicepublic interface ILoginServices {public String getUsers(String id);} 还需要一个实现类,这是基于注解的方式 @WebService(endpointInterface="com.hj.services
首先我们需要一个service接口,getUsers方法就是给外部调用的接口 ?需要写实现类
@WebService public 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{ @Override public void contextDestroyed(ServletContextEvent sce) { // TODO Auto-generated method stub } @Override public 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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |