发布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标准来描述.发布.发现.协调和配置这些应用程序,用 ...
随机推荐
- Unity-音频系统
1.声音格式: WAV:无损,音质好,文件大,适用于短文件 OGG&&MP3: 有损,文件小,适用于较长文件,比如背景音乐
- warning: LF will be replaced by CRLF in 解决办法
今天用Git bash遇到的问题,看了几个回答之后发现一个比较有价值的,给大家分享一下,其他很多的回答都有很或多或少存在一些弊端. 原回答地址在stackoverflow上,附上链接--http:// ...
- mysql 分组 列转行
SELECT aa.type,CONCAT('(',GROUP_CONCAT('\'',aa.user_id separator '\'\,'),'\')') FROM (select aa.typ ...
- 学习Shell(二)变量
如何给shell脚本传入参数 1.执行“vi test.sh”创建一个新的shell脚本. vi test.sh 2.脚本test.sh的内容如下: #!/bin/sh name=$ echo &qu ...
- 定义结构体和table type
1: 在se11 中创建结构体 2: 定义一个内表, row type 使用structure类型,将会具有structure的字段. 3:在代码中 使用 结构体和table type *& ...
- 231A
#include <iostream> using namespace std; #define maxSize 10 int main() { int views[maxSize]; i ...
- AWS EC2 Root密码重置
- python one
哈哈,今天把它搞了 谁? Python啊! ..... *************************************** python:解释性语言,功能很强大,现在很有市场! & ...
- FluentScheduler:开源轻量级定时任务调度架构
安装:FluentScheduler Install-Package FluentScheduler 一.控制台中使用 using System; using System.Collections.G ...
- 22.用demo通过点击切换图片路径
用demo通过点击切换图片路径 html: <img src="images/driving.png" class="driving"/> js: ...