发布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标准来描述.发布.发现.协调和配置这些应用程序,用 ...
随机推荐
- v-show 和 v-if 对 v-chart的影响
借鉴:https://blog.csdn.net/xiaxiangyun/article/details/78909991 使用v-show控制tab切换 其中一个tab数据请求后显示第二个tab,第 ...
- 万恶之源 - Python模块一
序列化 我们今天学习下序列化,什么是序列化呢? 将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. 为什么要有序列化模块: 比如,我们在python代码中计算的一个数据需要给另外一段程序使用 ...
- MySQL 基础 DDL和DML
DDL 数据库定义语句 创建数据库 create table if exits 数据库.表名( field1 数据类型 约束类型 commit 字段注释, field2 数据类型 约束类型 commi ...
- 对接口(interface)的思考
接口,java中用关键字interface定义.今天学习java基础API时,发现一个特点:每个包中都定义了一堆的接口,感觉有马克思主义中提到的“上层建筑”的味道.接口就是为需要实现的功能定一个基调, ...
- js动态规划---背包问题
//每种物品仅有一件,可以选择放或不放 //即f[i][w]表示前i件物品恰放入一个容量为w的背包可以获得的最大价值. //则其状态转移方程便是:f[i][w]=max{f[i-1][w],f[i-1 ...
- plt.contour 与 plt.contourf
contour:轮廓,等高线 1.为等高线上注明等高线的含义: cs = plt.contour(x, y, z) plt.clabel(cs, inline=True, fontsize=10)#i ...
- excel 常用法
粘贴格式化数据 数据如下 206190 98604 20991 2807.20 236584 113705 24599 3268.68 272083 128111 29021 3721.33 2487 ...
- MongoDB--连接客户端和服务
直接在官网上下载好编译好的二进制文件,安装.这里安装在c盘了 安装图形界面: 打开文件进入C:\Program Files\MongoDB\Server\3.4\bin 在bin目录下: 客服端和服务 ...
- vue中解决跨域问题
方法1.后台更改header header('Access-Control-Allow-Origin:*');//允许所有来源访问 header('Access-Control-Allow-Metho ...
- LeetCode110.平衡二叉树
一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1. 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回 true . 示例 ...