zoukankan      html  css  js  c++  java
  • 发布webservice服务

    1,定义一个接口

    public interface HaiService {
    //定义一个方法
    	String speak(String str);
    }
    

    2,编写一个实现类

    import javax.jws.WebService;
    
    import com.lxinet.jeesns.test.ws.HaiService;
    //这里要用WebService 注解
    @WebService
    public class HaiServiceImpl implements HaiService {
    
    	@Override
    	public String speak(String str) {
    		System.out.println("来到服务端了。。。。。"+str);
    		return "hai pong";
    	}
    
    }
    

    3,发布服务

    import javax.xml.ws.Endpoint;
    
    import com.lxinet.jeesns.test.ws.HaiService;
    import com.lxinet.jeesns.test.ws.impl.HaiServiceImpl;
    
    public class ClientTest {
    	
    	public static void main(String[] args) {
    		HaiService ws=new HaiServiceImpl();
    		Endpoint.publish("http://192.168.43.119:8083/ws", ws);
    		System.out.println("服务发布成功。。。");
    		
    	}
    
    }
    

    4,通过浏览器访问

    http://192.168.43.119:8083/ws?wsdl

    5,通过代码访问

    在dos窗口 输入 :wsimport -s D:html http://192.168.43.119:8083/ws?wsdl

    将代码保存到本地,然后将代码拷贝到一个java工程中

    编写一个客户端类

    public class ClientTest {
    
    	public static void main(String[] args) {
    		HaiServiceImplService service=new HaiServiceImplService();
    		HaiServiceImpl impl = service.getHaiServiceImplPort();
    		String speak = impl.speak("hui");
    		System.out.println("client res:"+speak);
    	}
    }
    

    5.1通用代理调用

    import com.hai.server.TestServerInf;
    import com.hai.util.MyWSFactoryBean;
    
    public class ServerPublish {
    	
    	public static void main(String[] args) {
    		TestServerInf ws = MyWSFactoryBean.getMyWs("http://127.0.0.1:8787/webservice/ws?wsdl", TestServerInf.class);
    		String res = ws.speak("小苏");
    		System.out.println("结果:"+res);
    	}
    
    }
    

      

    import java.util.HashMap;
    import java.util.Map;
    
    import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
    import org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor;
    import org.apache.wss4j.dom.handler.WSHandlerConstants;
    
    import com.hai.security.MyClientSecurity;
    
    public class MyWSFactoryBean {
    
    	
    	public static <T>T getMyWs(String url,Class<T> t){
    		JaxWsProxyFactoryBean jwfb=new JaxWsProxyFactoryBean();
    		jwfb.setAddress(url);
    		jwfb.setServiceClass(t);
    		
    		if(t.getSimpleName().equals("LoginServerInf")) {
    			//加入安全协议
    			Map<String, Object> props=new HashMap<>();
    			props.put(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN);
    			props.put(WSHandlerConstants.PASSWORD_TYPE, "PasswordText");
    			props.put(WSHandlerConstants.PW_CALLBACK_CLASS, MyClientSecurity.class.getName());
    			WSS4JOutInterceptor interceptor=new WSS4JOutInterceptor(props);
    			jwfb.getOutFaultInterceptors().add(interceptor);
    		}
    		
    		T bean = (T) jwfb.create();
    		return bean;
    	}
    }
    

      

    6,通过soapui访问

    参考:https://blog.csdn.net/weiqing723/article/details/78865734

  • 相关阅读:
    数据库事务4种隔离级别及7种传播行为
    Spring AOP深入剖析
    SQL语句-创建索引
    global文件中的application_start方法中做: 定时器
    细说ASP.NET Forms身份认证
    asp.net(C#)实现功能强大的时间日期处理类完整实例
    C# 文件操作类大全
    SQL Server Profiler:使用方法和指标说明
    分库分表原则 总结
    做软件与团队建设——对带研发团队和管理的总结
  • 原文地址:https://www.cnblogs.com/dongma/p/9980192.html
Copyright © 2011-2022 走看看