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

  • 相关阅读:
    【2019.7.10】树上差分 杂[LCA 倍增][树上差分 点差分 边差分]
    【luogu4145】 上帝造题的七分钟2 / 花神游历各国 [线段树]
    【luogu1198】 [JSOI2008]最大数 [线段树]
    【luogu2783】 有机化学之神偶尔会做作弊 [tarjan 缩点][LCA]
    【luogu3388】 【模板】割点(割顶)[tarjan 割点]
    【luogu2272】 [ZJOI2007]最大半连通子图 [tarjan 缩点][拓扑排序]
    【luogu2194】HXY烧情侣 [tarjan 缩点]
    【luogu3627】 [APIO2009]抢掠计划 [tarjan 缩点][最短路]
    【luogu3398】 仓鼠找sugar [LCA 倍增]
    【luogu2746】 [USACO5.3]校园网Network of Schools [tarjan 缩点]
  • 原文地址:https://www.cnblogs.com/dongma/p/9980192.html
Copyright © 2011-2022 走看看