jdk11后不支持webservice问题解决方案
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdk11后不支持webservice问题解决方案相关的知识,希望对你有一定的参考价值。
参考技术A在调用webservice服务时,接口中会要求传递 xml 字符串,需要我们进行 实体类 --> xml字符串 之间的互转, 这个互转的程序,通常是使用 jdk8 中提供的一个 JAXB 库, 但是这个库在jdk11时已经彻底删除掉了,在打包放到服务器上运行时,在运行到这一行时,就会报错:
<meta charset="utf-8">
错误图片:
网上大多数让自己引入JAXB的包,经过测试发现引入后本地运行是可以的,但是打包后,在服务器中运行还是会报以上错误
由于网上的方法已经尝试过,在服务器中运行还是会报错,所以我们就直接弃用此JAXB,用第三方的互转工具来做Bean和xml的互相转换,这里推荐使用 Xstream
2.1 maven地址
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.17</version>
</dependency>
XStream 是一个简单的库,用于将对象序列化为 XML 并再次序列化。
官网: http://x-stream.github.io/
快速入门: http://t.csdn.cn/VkGIf
在调用webservice接口的地方 , 使用XStream,来代替JAXB进行实体类与xml之间的互转即可
注意: 使用XStream,需要配合其提供的注解来标记实体类属性,再进行转换
例如:
Ajax请求WebService跨域问题
1、背景
用Jquery中Ajax方式在asp.net开发环境中WebService接口的调用
2、出现的问题
原因分析:浏览器同源策略的影响(即JavaScript或Cookie只能访问同域下的内容);
3、解决方案:
(1) JSONP:只支持GET方式
(2) CROS:跨域资源共享
以下为CROS解决方案:
a.在WebService接口加上响应头信息:
b.在web.config文件中加上相关配置节信息:
运用a或者b的解决方案后,浏览器头信息中变动如下:
最终问题得以较好的解决,但对于此方案各个浏览器支持情况不同,附图如下:
4、其他参考文章
(1) http://www.cnblogs.com/Darren_code/p/cors.html
(2) http://blog.csdn.net/liyifei21/article/details/17509735
(3) http://www.cnblogs.com/yuzhongwusan/p/3677955.html
以上是关于jdk11后不支持webservice问题解决方案的主要内容,如果未能解决你的问题,请参考以下文章