发布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标准来描述.发布.发现.协调和配置这些应用程序,用 ...
随机推荐
- drf频率组件
1.简介 控制访问频率的组件 2.使用 手写一个自定义频率组件 import time #频率限制 #自定义频率组件,return True则可以访问,return False则不能访问 class ...
- (转)Fabric 1.0 读写集
本文译自Fabric 1.0 文档,这篇文档详述了当前读写集语义实现的细节.文档地址为: https://hyperledger-fabric.readthedocs.io/en/latest/rea ...
- 远程访问对象java实现
服务端: 定义远程接口: package com.my.rmi; import java.rmi.Remote; import java.rmi.RemoteException; public int ...
- 2019.03.30 图解HTTP
文章来源<图解HTTP> 第一章 了解Web及网络基础 你有想过当你在浏览器(web browser)的地址栏上输入URL时,Web页面是如何实现的吗? 嗯,好像也没想过 web使用一种名 ...
- 高危Windows系统 SMB/RDP远程命令执行漏洞 手工修复办法
1.Windows Update更新补丁方式: 更新方法:点击“开始”->“控制面板”->“Windows Update” ,点击“检查更新”-“安装更新”: 2.检查安装结果: 点击“ ...
- Permission denied: user=root, access=WRITE, inode="/":hadoopuser:supergroup:drwxr-xr-x
提示往HDFS写文件是不容许的. 在conf/hdfs-site.xml中加入: <property> <name>dfs.permissions</name> & ...
- MVC4 原版样式
- python datatype
解释性语言,有类型的概念,没有类型的实体 所以,类型很重要 今天,我在这里练练python的类型 //test.py print int("10", 8) #8 scaleprin ...
- Go linux 实践4
这是目前学习的最难的Go demo例子 ***************************************** 如果能看懂,你就出师了,我的任务也就结束了 **************** ...
- centos7安装Amber16 && AmberTools
Centos7 安装amber16 1.准备下载好的amber(Amber16.tar.bz2)及tools(AmberTools16.tar.bz2)安装包: $ cd MySoftware_hom ...