加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

发布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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读