JAVA访问HTTPS协议的Web Service . jdk安裝ser方法

本文介绍了一种JAVA访问HTTPS协议的WebService的方法,包括下载证书、导入到keystore、使用CXF wsdl2java生成客户端代码及调用服务的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JAVA访问HTTPS协议的Web Service . jdk安裝ser方法

 

一朋友因工作需要,要访问HTTPS协议的Web Service,与其一同摸索,终于解决。

欣喜之余,记录下来供需要的网友参考。


1. 下载证书

访问服务的WSDL地址,比如 https://访问站点地址/nealnet-epcis/query?wsdl 

浏览器会提示证书错误或此网站未经过身份验证。点击查看证书,选择详细信息选项页,可以看到“复制到文件”按钮。

点击保存证书,格式选择为“DER 编码二进制 X.509 (.CER)”,例如保存为 nealnet.cer。

2. 把证书导入到keystore中

通常情况下,JAVA信任库在 C:\Program Files\Java\jdk1.6.0_27\jre\lib\security\cacerts

不同的安装路径会略有不同。

执行 keytool -import -trustcacerts -keystore "C:\Program Files\Java\jdk1.6.0_27\jre\lib\security\cacerts" -storepass changeit -alias nealnet -file nealnet.cer

其中,-alias nealnet 用于指定别名,nealnet.cer 为上面保存的证书。别忘了在命令行提示符执行的时候,证书要在当前路径下哦!

导入之后可以验证一下是否成功

keytool -keystore "C:\Program Files\Java\jdk1.6.0_27\jre\lib\security\cacerts" -storepass changeit -list -alias nealnet

3. 使用CXF wsdl2java工具生成ws客户端代码

wsdl2java -frontend jaxws21 -p com.xxx.ws.nealnet -d src -client https://访问站点地址/nealnet-epcis/query?wsdl

这里值得注意的是,访问站点的地址一定要跟证书的主题属性中的(CN)一致。

如果证书主题属性中,是站点名称,那么切忌不要用IP地址访问。

4. 调用服务

按照上面生成的代码是采用JAXWS API来创建代理对象的,与调用未加密WS服务不同的是,对目标访问地址作一下转换。

URL wsdlURL = MyService.class.getClassLoader.getResource(
	"https://访问站点地址/nealnet-epcis/query?wsdl"); 
QName serviceName = new QName("urn:myService", "MyService"); 
MyService service = new MyService(wsdlURL, serviceName); 
ServicePort client = service.getServicePort(); 
BindingProvider provider = (BindingProvider)client; 
// You can set the address per request here 
provider.getRequestContext().put( 
	BindingProvider.ENDPOINT_ADDRESS_PROPERTY, 
	"http://访问站点地址/nealnet-epcis/query?wsdl");


以上代码是从CXF官网找到的,大致的意思处理请求或响应的协议绑定,采用非加密方式。

(这纯属个人理解,似懂非懂,还忘大虾们指正)。采用其他方式创建代理对象的,个人未曾尝试,也就不班门弄斧了。

 

at org.apache.catalina.core.StandardServer.startInternal(StandardServer. java:930) ~[null:9.0.46] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[null:9.0.46] at org.apache.catalina.startup.Tomcat.start(Tomcat.java:486) ~[null:9.0. 46] at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initiali ze(TomcatWebServer.java:123) ~[null:2.3.12.RELEASE] at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.<init>(T omcatWebServer.java:104) ~[null:2.3.12.RELEASE] at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFa ctory.getTomcatWebServer(TomcatServletWebServerFactory.java:440) ~[null:2.3.12.R ELEASE] at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFa ctory.getWebServer(TomcatServletWebServerFactory.java:193) ~[null:2.3.12.RELEASE ] at org.springframework.boot.web.servlet.context.ServletWebServerApplicat ionContext.createWebServer(ServletWebServerApplicationContext.java:178) ~[null:2 .3.12.RELEASE] at org.springframework.boot.web.servlet.context.ServletWebServerApplicat ionContext.onRefresh(ServletWebServerApplicationContext.java:158) ~[null:2.3.12. RELEASE] at org.springframework.context.support.AbstractApplicationContext.refres h(AbstractApplicationContext.java:545) ~[null:5.2.15.RELEASE] at org.springframework.boot.web.servlet.context.ServletWebServerApplicat ionContext.refresh(ServletWebServerApplicationContext.java:143) ~[null:2.3.12.RE LEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication. java:755) ~[null:2.3.12.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication. java:747) ~[null:2.3.12.RELEASE] at org.springframework.boot.SpringApplication.refreshContext(SpringAppli cation.java:402) ~[null:2.3.12.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java :312) ~[null:2.3.12.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java :1247) ~[null:2.3.12.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java :1236) ~[null:2.3.12.RELEASE] at com.kucun.DemoApplication.main(DemoApplication.java:41) ~[rsrc:./:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa der.java:58) ~[rsrc:./:na] Caused by: org.apache.catalina.LifecycleException: A child container failed duri ng start at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.ja va:928) ~[null:9.0.46] at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java :829) ~[null:9.0.46] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[null:9.0.46] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase. java:1384) ~[null:9.0.46] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase. java:1374) ~[null:9.0.46] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[ na:na] at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineEx ecutorService.java:75) ~[null:9.0.46] at java.base/java.util.concurrent.AbstractExecutorService.submit(Abstrac tExecutorService.java:140) ~[na:na] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.ja va:909) ~[null:9.0.46] ... 27 common frames omitted Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.Lifecycl eException: Failed to initialize component [org.apache.catalina.webresources.Sta ndardRoot@6c3659be] at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[na:na] at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) ~[ na:na] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.ja va:916) ~[null:9.0.46] ... 35 common frames omitted Caused by: org.apache.catalina.LifecycleException: Failed to initialize componen t [org.apache.catalina.webresources.StandardRoot@6c3659be] at org.apache.catalina.util.LifecycleBase.handleSubClassException(Lifecy cleBase.java:440) ~[null:9.0.46] at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:139) ~ [null:9.0.46] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:173) ~[null:9.0.46] at org.apache.catalina.core.StandardContext.resourcesStart(StandardConte xt.java:4830) ~[null:9.0.46] at org.apache.catalina.core.StandardContext.startInternal(StandardContex t.java:4966) ~[null:9.0.46] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[null:9.0.46] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase. java:1384) ~[null:9.0.46] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase. java:1374) ~[null:9.0.46] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[ na:na] at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineEx ecutorService.java:75) ~[null:9.0.46] at java.base/java.util.concurrent.AbstractExecutorService.submit(Abstrac tExecutorService.java:140) ~[na:na] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.ja va:909) ~[null:9.0.46] ... 35 common frames omitted Caused by: java.lang.Error: factory already defined at java.base/java.net.URL.setURLStreamHandlerFactory(URL.java:1184) ~[na :na] at org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.<init> (TomcatURLStreamHandlerFactory.java:130) ~[null:9.0.46] at org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.getIns tanceInternal(TomcatURLStreamHandlerFactory.java:53) ~[null:9.0.46] at org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.regist er(TomcatURLStreamHandlerFactory.java:77) ~[null:9.0.46] at org.apache.catalina.webresources.StandardRoot.registerURLStreamHandle rFactory(StandardRoot.java:700) ~[null:9.0.46] at org.apache.catalina.webresources.StandardRoot.initInternal(StandardRo ot.java:682) ~[null:9.0.46] at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) ~ [null:9.0.46] ... 45 common frames omitted 2012-08-04 20:52:28.378 INFO 3416 --- [ main] o.apache.catalina.core. StandardService : Stopping service [Tomcat] 2012-08-04 20:52:28.394 WARN 3416 --- [ main] ConfigServletWebServerA pplicationContext : Exception encountered during context initialization - cancel ling refresh attempt: org.springframework.context.ApplicationContextException: U nable to start web server; nested exception is org.springframework.boot.web.serv er.WebServerException: Unable to start embedded Tomcat 2012-08-04 20:52:28.425 INFO 3416 --- [ main] ConditionEvaluationRepo rtLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2012-08-04 20:52:28.456 ERROR 3416 --- [ main] o.s.boot.SpringApplicat ion : Application run failed org.springframework.context.ApplicationContextException: Unable to start web ser ver; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat at org.springframework.boot.web.servlet.context.ServletWebServerApplicat ionContext.onRefresh(ServletWebServerApplicationContext.java:161) ~[null:2.3.12. RELEASE] at org.springframework.context.support.AbstractApplicationContext.refres h(AbstractApplicationContext.java:545) ~[null:5.2.15.RELEASE] at org.springframework.boot.web.servlet.context.ServletWebServerApplicat ionContext.refresh(ServletWebServerApplicationContext.java:143) ~[null:2.3.12.RE LEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication. java:755) ~[null:2.3.12.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication. java:747) ~[null:2.3.12.RELEASE] at org.springframework.boot.SpringApplication.refreshContext(SpringAppli cation.java:402) ~[null:2.3.12.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java :312) ~[null:2.3.12.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java :1247) ~[null:2.3.12.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java :1236) ~[null:2.3.12.RELEASE] at com.kucun.DemoApplication.main(DemoApplication.java:41) ~[rsrc:./:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa der.java:58) ~[rsrc:./:na] Caused by: org.springframework.boot.web.server.WebServerException: Unable to sta rt embedded Tomcat at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initiali ze(TomcatWebServer.java:142) ~[null:2.3.12.RELEASE] at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.<init>(T omcatWebServer.java:104) ~[null:2.3.12.RELEASE] at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFa ctory.getTomcatWebServer(TomcatServletWebServerFactory.java:440) ~[null:2.3.12.R ELEASE] at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFa ctory.getWebServer(TomcatServletWebServerFactory.java:193) ~[null:2.3.12.RELEASE ] at org.springframework.boot.web.servlet.context.ServletWebServerApplicat ionContext.createWebServer(ServletWebServerApplicationContext.java:178) ~[null:2 .3.12.RELEASE] at org.springframework.boot.web.servlet.context.ServletWebServerApplicat ionContext.onRefresh(ServletWebServerApplicationContext.java:158) ~[null:2.3.12. RELEASE] ... 14 common frames omitted Caused by: org.apache.catalina.LifecycleException: A child container failed duri ng start at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.ja va:928) ~[null:9.0.46] at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine. java:262) ~[null:9.0.46] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[null:9.0.46] at org.apache.catalina.core.StandardService.startInternal(StandardServic e.java:433) ~[null:9.0.46] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[null:9.0.46] at org.apache.catalina.core.StandardServer.startInternal(StandardServer. java:930) ~[null:9.0.46] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[null:9.0.46] at org.apache.catalina.startup.Tomcat.start(Tomcat.java:486) ~[null:9.0. 46] at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initiali ze(TomcatWebServer.java:123) ~[null:2.3.12.RELEASE] ... 19 common frames omitted Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.Lifecycl eException: A child container failed during start at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[na:na] at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) ~[ na:na] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.ja va:916) ~[null:9.0.46] ... 27 common frames omitted Caused by: org.apache.catalina.LifecycleException: A child container failed duri ng start at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.ja va:928) ~[null:9.0.46] at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java :829) ~[null:9.0.46] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[null:9.0.46] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase. java:1384) ~[null:9.0.46] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase. java:1374) ~[null:9.0.46] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[ na:na] at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineEx ecutorService.java:75) ~[null:9.0.46] at java.base/java.util.concurrent.AbstractExecutorService.submit(Abstrac tExecutorService.java:140) ~[na:na] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.ja va:909) ~[null:9.0.46] ... 27 common frames omitted Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.Lifecycl eException: Failed to initialize component [org.apache.catalina.webresources.Sta ndardRoot@6c3659be] at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[na:na] at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) ~[ na:na] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.ja va:916) ~[null:9.0.46] ... 35 common frames omitted Caused by: org.apache.catalina.LifecycleException: Failed to initialize componen t [org.apache.catalina.webresources.StandardRoot@6c3659be] at org.apache.catalina.util.LifecycleBase.handleSubClassException(Lifecy cleBase.java:440) ~[null:9.0.46] at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:139) ~ [null:9.0.46] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:173) ~[null:9.0.46] at org.apache.catalina.core.StandardContext.resourcesStart(StandardConte xt.java:4830) ~[null:9.0.46] at org.apache.catalina.core.StandardContext.startInternal(StandardContex t.java:4966) ~[null:9.0.46] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[null:9.0.46] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase. java:1384) ~[null:9.0.46] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase. java:1374) ~[null:9.0.46] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[ na:na] at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineEx ecutorService.java:75) ~[null:9.0.46] at java.base/java.util.concurrent.AbstractExecutorService.submit(Abstrac tExecutorService.java:140) ~[na:na] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.ja va:909) ~[null:9.0.46] ... 35 common frames omitted Caused by: java.lang.Error: factory already defined at java.base/java.net.URL.setURLStreamHandlerFactory(URL.java:1184) ~[na :na] at org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.<init> (TomcatURLStreamHandlerFactory.java:130) ~[null:9.0.46] at org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.getIns tanceInternal(TomcatURLStreamHandlerFactory.java:53) ~[null:9.0.46] at org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.regist er(TomcatURLStreamHandlerFactory.java:77) ~[null:9.0.46] at org.apache.catalina.webresources.StandardRoot.registerURLStreamHandle rFactory(StandardRoot.java:700) ~[null:9.0.46] at org.apache.catalina.webresources.StandardRoot.initInternal(StandardRo ot.java:682) ~[null:9.0.46] at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) ~ [null:9.0.46] ... 45 common frames omitted
最新发布
06-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值