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

  • 相关阅读:
    小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载一(PhoneGap中的API)
    有一种蓝,是神往,是心醉,是心伤
    persits.jpeg 水印组件
    SD卡操作相关的工具SDCardUtils
    apollo 消息分发源代码分析
    tcp ip协议笔记(1)——简单介绍
    百度地图SDK调试SDKInitializer.initialize(getApplicationContext())错误
    一气呵成编完代码的感觉对不正确
    多线程编程1-NSThread
    VIP的转移
  • 原文地址:https://www.cnblogs.com/dongma/p/9980192.html
Copyright © 2020-2023  润新知