问题描述:由于公司最近引进了某公司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调用踩的坑相关推荐

  1. SoapUI调用Webservice接口踩过的坑

    SoapUI调用Webservice接口踩过的坑 SOAPUI的作用 安装 使用SoapUi调用Webservice 坑点一 HTTPS请求没有响应包 配置SSL Client Auth 坑点二 配置 ...

  2. 记一次ios内购开发中踩的坑

    记一次ios内购开发中踩的坑 前段时间好不容易把APP中的非续期内购上架成功了,过程也是一波三折,各种问题,但最终还是内购审核通过了 通过后我以为就没问题了,但第二天打开xcode运行应用后,准备验证 ...

  3. 记第一次使用tiptap踩的坑

    记第一次使用tiptap踩的坑 引入tiptap之后直接报错Duplicate use of selection JSON ID cell 局部引用报错 样式问题 引入tiptap之后直接报错Dupl ...

  4. 记一次uniapp的踩坑经历

    前言 这几天在做一个app,打比赛用,使用的是uni+uView的组件库.这个组件库是半道加进来的,学弟推荐的,我看有组件的话确实会方便很多,而且他都是按需引入,不占用额外空间,挺好的,我也就直接拿来 ...

  5. 记一次 leo-api-auto 部署踩坑记录

    首先感谢 leo-api-auto作者无私奉献,贴一段leo-api-auto的简介 LEO API测试平台简介 「LEO API测试平台」是一个免费开源的接口自动化测试平台. 既支持单个接口测试,也 ...

  6. 通用印刷体文字识别_谈谈调用腾讯云【OCR-通用印刷体识别】Api踩的坑

    一.写在前面 最近做项目需要用到识别图片中文字的功能,本来用的Tesseract这个写的,不过效果不是很理想. 随后上网搜了一下OCR接口,就准备使用腾讯云.百度的OCR接口试一下效果.不过这个腾讯云 ...

  7. 记一次编译Cesium踩坑记录

    记一次编译Cesium踩坑记录 cd cesium npm install npm install express --save npm install compression --save npm ...

  8. 程序员,Mybatis 你踩过坑吗?

    大多数开发者应该都使用过Hibernate或者Mybatis的框架,或多或少都踩过一些坑! 如在MyBatis/Ibatis中#和$的区别,#方式能够很大程度防止sql注入,$方式无法防止Sql注入. ...

  9. map mybatis 的字段返回0_Mybatis 你踩过坑吗?

    (给ImportNew加星标,提高Java技能) 作者:似水的流年 yq.aliyun.com/roundtable/49835 大多数开发者应该都使用过Hibernate或者Mybatis的框架,或 ...

最新文章

  1. EMNLP 2019 | 大规模利用单语数据提升神经机器翻译
  2. 查找Windows文件来历的好方法
  3. ABAP选择屏幕权限控制
  4. warning: incompatible implicit declaration of built-in function ‘exit’
  5. 第2章 Python 数字图像处理(DIP) --数字图像基础1 - 视觉感知要素 - 亮度适应与辨别
  6. Java中截取文件名不要后缀
  7. 回调机制在 Android 监听用户界面操作中的体现
  8. 。。。,带着这三点疑问,让我们层层深入的对HTTPS原理进行剖析!
  9. 【专栏精选】网络封包神器protobuf简介
  10. 为什么QQ浏览器不是默认浏览器但是在打开网页的时候还是默认启动?
  11. Android 模拟器连接异常:Unable to connect to ADB server
  12. iOS中使用UIActivityViewController系统分享到微信QQ微博包含文字图片URL
  13. 超强的用linux命令勾搭美女
  14. codeforces D. Palindrome pairs 动态规划
  15. audio2mid:音频提取主旋律
  16. 依图科技从科创板“退赛”:三年半累计亏损72亿,研发费用高企
  17. 上帝说,我派了三艘船去救你呀。
  18. UDF和UDAF,UDTF的区别
  19. 【论文投稿】Hindawi旗下4区Mobile Information Systems(misy)投稿详细步骤
  20. 三轮车出口欧盟没做e-mark认证会怎样?

热门文章

  1. mysql concat换行_Mysql 的 GROUP_CONCAT() 函数拼接串
  2. 美国计算机视觉专业排名,你了解美国计算机视觉专业吗
  3. [Python人工智能] 十六.Keras环境搭建、入门基础及回归神经网络案例
  4. 解决Python打包exe控制台无法粘贴问题
  5. DeFi明斯基时刻:压力测试与启示
  6. 记一次机器内存过高引起的线上故障
  7. dpi重启后会恢复_DPI 设置过大该如何还原?
  8. php7.2.3下载,最新PHP编程软件v7.3.2.0 官方版下载地址电脑版-锐品软件
  9. Android框架之路——Banner实现轮播图(RecyclerView添加Header)
  10. 获取IE浏览器版本号