gpt4 book ai didi

java - 如何在 OSGi 容器中使用 JAX-WS 通过 HTTPS 发布 Web 服务?

转载 作者:行者123 更新时间:2023-12-02 08:15:30 25 4
gpt4 key购买 nike

使用 Java,可以轻松地通过 HTTPS 使用 Web 服务,但如何发布 Web 服务?

标准 JAX-WS 实现不支持它。我们尝试了 Jetty,但 Jetty 也不支持 HTTPS 上的 Web 服务(JettyHttpServerProvidercreateHttpsServer() 抛出 UnsupportedOperatonException)。我想这个问题应该很简单。但不知怎的,我总是碰壁。

另外这必须与 OSGi 一起使用,所以我更喜欢大多数或所有依赖项都作为 bundle 提供。目前我尝试运行 CXF,但它有很多非 OSGi 依赖项,这使得部署非常困难。

我们还需要通过证书进行客户端身份验证,但我希望一旦启用 HTTPS,这将相对容易。

为什么这是一件大事?例如,要使用 Jetty 提供静态内容,您所需要做的就是创建一个服务器,添加任何 SSL 连接器,然后就完成了。为什么 Web 服务就不能这么简单?

最佳答案

我们的系统在OSGi中使用cxf和jetty,并且它与HTTPS一起工作得很好。

当你将服务发布到WebService时,你不应该关心它是HTTP还是HTTPS。通过将以下属性传递给 OSGi 将您的 jetty 配置为支持 HTTPS:

org.eclipse.equinox.http.jetty.http.enabled=false
org.eclipse.equinox.http.jetty.https.enabled=true
org.eclipse.equinox.http.jetty.https.port=443
org.eclipse.equinox.http.jetty.ssl.keystore=...
org.eclipse.equinox.http.jetty.ssl.password=...

您可以查看其他属性

org.eclipse.equinox.http.jetty_2.0.0.v20100503.jar\OSGI-INF\metatype\config.xml

这样你就可以尝试使用IE通过https访问你的服务的wsdl了。

关于java - 如何在 OSGi 容器中使用 JAX-WS 通过 HTTPS 发布 Web 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6532780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com