记一次WebService调用踩的坑
问题描述:由于公司最近引进了某公司A的网络管理软件,需要使用A提供的WebService接口。
遇到问题如下:
1、接口文档不规范。WebSerivce 接口有安全性校验要求,需要在 SOAP 头部增加相应的用户名和密码作为安全配置。
2、依赖冲突、Bug等
解决方法:
1、、拿到接口肯定是先测试,看能不能通,我也是这么干的,然,以前没使用过WebService (工作一年见的少)都是使用Rest风格的接口。一上来我就拿出了我的PostMan 。。。。怎么填都搞不定。。SOAP头搞得我焦头烂额,在网上查也没找到用PostMan测安全性校验WebSerivce 接口的例子。没辙,联系A公司售后,告诉我用soap UI ,然后帮我测了一个接口如图
总结:度娘不行的时候找客服。。。
2、实际在项目中遇到的问题描述如下:写完代码,调试完毕没有Bug的情况下,我把它打成了jar包,使用 java -jar xx.jar 执行的时候出现如下问题:
java.lang.NullPointerException
at org.apache.cxf.common.util.Compiler.useJava6Compiler(Compiler.java:190)
原因如下:
经查看源码发现有这样一句:
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
ToolProvider.getSystemJavaCompiler()返回的是NULL,因此在调用compiler.getStandardFileManager(null, null, null)的时候抛出了null pointer exception.
为啥会这样呢?查看了下ToolProvider的源代码,发现如下这么一段…
private static final String[] defaultToolsLocation = { "lib", "tools.jar" };
private static Class<?> findClass() throws MalformedURLException, ClassNotFoundException{try {return enableAsserts(Class.forName(defaultJavaCompilerName, false, null));} catch (ClassNotFoundException e) {// ignored, try looking else where}File file = new File(System.getProperty("java.home"));if (file.getName().equalsIgnoreCase("jre"))file = file.getParentFile();for (String name : defaultToolsLocation)file = new File(file, name);URL[] urls = {file.toURI().toURL()};ClassLoader cl = URLClassLoader.newInstance(urls);cl.setPackageAssertionStatus("com.sun.tools.javac", true);return Class.forName(defaultJavaCompilerName, false, cl);}
我已经设置了JAVA_HOME环境变量,指向了我的JRE安装目录D:\Java\jre6, 注意查找文件的代码…
for (String name : defaultToolsLocation)file = new File(file, name);
也就是说会查找目录D:\Java\jre6\lib\tools.jar
但是注意的是tools.jar并不在jre中,而是在jdk安装目录下,因此我手动把这个jar文件从jdk目录下拷贝到了jre目录下,再次运行上面的代码就没有问题了!同时注意到在代码工程目录下生成了一个名为Main.class的文件,这个确实说明了动态类Main已经编译成功了!
总结:
参考自:http://www.cnblogs.com/fangwenyu/archive/2011/10/12/2209051.html
记一次WebService调用踩的坑相关推荐
- SoapUI调用Webservice接口踩过的坑
SoapUI调用Webservice接口踩过的坑 SOAPUI的作用 安装 使用SoapUi调用Webservice 坑点一 HTTPS请求没有响应包 配置SSL Client Auth 坑点二 配置 ...
- 记一次ios内购开发中踩的坑
记一次ios内购开发中踩的坑 前段时间好不容易把APP中的非续期内购上架成功了,过程也是一波三折,各种问题,但最终还是内购审核通过了 通过后我以为就没问题了,但第二天打开xcode运行应用后,准备验证 ...
- 记第一次使用tiptap踩的坑
记第一次使用tiptap踩的坑 引入tiptap之后直接报错Duplicate use of selection JSON ID cell 局部引用报错 样式问题 引入tiptap之后直接报错Dupl ...
- 记一次uniapp的踩坑经历
前言 这几天在做一个app,打比赛用,使用的是uni+uView的组件库.这个组件库是半道加进来的,学弟推荐的,我看有组件的话确实会方便很多,而且他都是按需引入,不占用额外空间,挺好的,我也就直接拿来 ...
- 记一次 leo-api-auto 部署踩坑记录
首先感谢 leo-api-auto作者无私奉献,贴一段leo-api-auto的简介 LEO API测试平台简介 「LEO API测试平台」是一个免费开源的接口自动化测试平台. 既支持单个接口测试,也 ...
- 通用印刷体文字识别_谈谈调用腾讯云【OCR-通用印刷体识别】Api踩的坑
一.写在前面 最近做项目需要用到识别图片中文字的功能,本来用的Tesseract这个写的,不过效果不是很理想. 随后上网搜了一下OCR接口,就准备使用腾讯云.百度的OCR接口试一下效果.不过这个腾讯云 ...
- 记一次编译Cesium踩坑记录
记一次编译Cesium踩坑记录 cd cesium npm install npm install express --save npm install compression --save npm ...
- 程序员,Mybatis 你踩过坑吗?
大多数开发者应该都使用过Hibernate或者Mybatis的框架,或多或少都踩过一些坑! 如在MyBatis/Ibatis中#和$的区别,#方式能够很大程度防止sql注入,$方式无法防止Sql注入. ...
- map mybatis 的字段返回0_Mybatis 你踩过坑吗?
(给ImportNew加星标,提高Java技能) 作者:似水的流年 yq.aliyun.com/roundtable/49835 大多数开发者应该都使用过Hibernate或者Mybatis的框架,或 ...
最新文章
- EMNLP 2019 | 大规模利用单语数据提升神经机器翻译
- 查找Windows文件来历的好方法
- ABAP选择屏幕权限控制
- warning: incompatible implicit declaration of built-in function ‘exit’
- 第2章 Python 数字图像处理(DIP) --数字图像基础1 - 视觉感知要素 - 亮度适应与辨别
- Java中截取文件名不要后缀
- 回调机制在 Android 监听用户界面操作中的体现
- 。。。,带着这三点疑问,让我们层层深入的对HTTPS原理进行剖析!
- 【专栏精选】网络封包神器protobuf简介
- 为什么QQ浏览器不是默认浏览器但是在打开网页的时候还是默认启动?
- Android 模拟器连接异常:Unable to connect to ADB server
- iOS中使用UIActivityViewController系统分享到微信QQ微博包含文字图片URL
- 超强的用linux命令勾搭美女
- codeforces D. Palindrome pairs 动态规划
- audio2mid:音频提取主旋律
- 依图科技从科创板“退赛”:三年半累计亏损72亿,研发费用高企
- 上帝说,我派了三艘船去救你呀。
- UDF和UDAF,UDTF的区别
- 【论文投稿】Hindawi旗下4区Mobile Information Systems(misy)投稿详细步骤
- 三轮车出口欧盟没做e-mark认证会怎样?
热门文章
- mysql concat换行_Mysql 的 GROUP_CONCAT() 函数拼接串
- 美国计算机视觉专业排名,你了解美国计算机视觉专业吗
- [Python人工智能] 十六.Keras环境搭建、入门基础及回归神经网络案例
- 解决Python打包exe控制台无法粘贴问题
- DeFi明斯基时刻:压力测试与启示
- 记一次机器内存过高引起的线上故障
- dpi重启后会恢复_DPI 设置过大该如何还原?
- php7.2.3下载,最新PHP编程软件v7.3.2.0 官方版下载地址电脑版-锐品软件
- Android框架之路——Banner实现轮播图(RecyclerView添加Header)
- 获取IE浏览器版本号