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问题解决方案的主要内容,如果未能解决你的问题,请参考以下文章

SVR 估计器在训练后不包含支持向量

jq toggle1.9版本后不支持解决方案

WebService短信网关配置

WEBSERVICE之JDK开发webservice

WebService--使用JDK开发WebService

Apache NetBeans 10.0 正式发布:支持 JDK 11