发布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
发布webservice服务的更多相关文章
- CXF发布webService服务以及客户端调用
这篇随笔内容是CXF发布webService服务以及客户端调用的方法 CXF是什么? 开发工作之前需要下载CXF和安装 下载地址:http://cxf.apache.org 安装过程: <1&g ...
- Spring整合CXF之发布WebService服务
今天我们来讲下如何用Spring来整合CXF,来发布WebService服务: 给下官方文档地址:http://cxf.apache.org/docs/writing-a-service-with-s ...
- 使用CXF发布WebService服务简单实例
一.说明: 前面介绍了使用axis2来发布Webservice服务,现在介绍一种更popular,更高效的Webservice服务发布技术:CXF Apache CXF = Celtix + XFir ...
- dubbo发布webservice服务
dubbo发布webservice服务 学习了:https://blog.csdn.net/zhangyunpengchang/article/details/51567127 https://blo ...
- Aixs2发布webservice服务
http://www.blogjava.net/pzxsheng/archive/2012/12/21/393319.html 开发前准备: 1.Eclipse Java EE IDE(Juno ...
- 使用CXF框架,发布webservice服务,并使用客户端远程访问webservice
使用CXF框架,发布webservice服务,并使用客户端远程访问webservice 1. CXF介绍 :soa的框架 * cxf 是 Celtrix (ESB框架)和 XFire(webs ...
- So easy Webservice 6.使用EndPoint发布webservice服务
创建第一个Web服务: @WebService // 添加了此注解,代表是一个WebService public class HelloWorld { // 非 static final privat ...
- cxf发布 webservice服务
导包 antlr-2.7.7.jar aopalliance-1.0.jar asm-3.3.jar commons-collections-3.2.1.jar commons-lang-2.6.ja ...
- 05.使用jdk发布webservice服务
无论服务端是用什么写的,使用框架写的还是用jdk写的,它都会发布出来这样一个东西.主要你遵循咱们这七个步骤来走就可以调用了. 咱们现在转换一下角色,自己发布一个服务让别人去调.怎么来发布一个服务? 我 ...
- 使用CXF发布webservice服务及注意要点
一.概念 1.什么是webservice Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML标准来描述.发布.发现.协调和配置这些应用程序,用 ...
随机推荐
- LongAdder,AtomicIntegerFieldUpdater深入研究
从LongAdder看更高效的无锁实现 AtomicIntegerFieldUpdater字段原子更新类 div:not([id]){display:none;} --> ul{padding: ...
- 前端框架之Vue(2)-模板语法
Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据.所有 Vue.js 的模板都是合法的 HTML ,所以能被遵循规范的浏览器和 HTML 解 ...
- ps切图插件
ps切图工具插件 下载网址:http://www.cutterman.cn/zh/cutterman 安装完插件,关闭ps,重新打开,窗口- 扩展,即可使用
- php 代码复用机制
https://juejin.im/entry/5927ec4544d904006413f61d 提到 php 的代码复用,我们可能第一时间会想到继承,但是这种单继承语言一旦派生的子类过多,那么会产生 ...
- [js]js中回调函数
//回调函数: 把一个函数当参数传给另个函数 /* function f1() { console.log('f1'); } function f2(f) { f(); console.log(1); ...
- Oracle SQL常用语句
1,查询插入 insert into user_role(account_id, role_id, create_user) select t.employee_id, 'BC8FBF8B1D9843 ...
- 2019.03.24 Ajax
也还是会用到jquery中的Ajax请i求 所以第一还是引入jQuery包 可以去网上搜腾讯网静态资源库 然后引入包 Ajax还是异步处理 处理堵塞问题 import time 就可以了 ...
- git push 报错:missing Change-Id in commit message footer
使用gerrit后,提交代码会出现如下截图问题: 临时解决: step1:把上面红色的那条gitidir复制下来执行下: step2:执行下面的命令会添加change_id git commit -- ...
- [LeetCode] 276. Paint Fence_Easy tag: Dynamic Programming
There is a fence with n posts, each post can be painted with one of the k colors. You have to paint ...
- Linux Performance 一文
http://www.brendangregg.com/linuxperf.html Brendan D. Gregg 专注 Linux performance & tuning 许多年,其博 ...