【问题标题】:JBoss Web Services Behind IIS Through HTTPs通过 HTTPs 支持 IIS 的 JBoss Web 服务
【发布时间】:2009-11-18 18:41:25
【问题描述】:

我想这是一个交织在一起的网,但它真的不应该那么难。让我看看我能不能画一幅画:

我编写了一个 Web 服务,从一个 WSDL 开始,它是在 JBoss 中运行的。当我在本地机器上运行它并将我的 Netbeans“客户端生成器”(可能只是使用“wsimport”或在幕后的任何东西)指向它以生成它按预期工作的客户端时,这一切都很好而且很花哨。所有这些都是通过直接访问端口 8080 来实现的,<soap:address> 元素如下所示:

<soap:address location="http://localhost:8080/MyoutfitWebService/funService"/>

现在,当这只小狗被部署时,它将通过 AJP 将来自 IIS 的请求转发到我认为的端口 8009。IIS 处理我们的客户端证书验证,然后应该只是将请求转发到我的 Web 服务。我不知道在我的 WSDL 的 &lt;soap:address&gt; 元素中使用什么,以便我可以将 WSDL URL 提供给某人以生成他们自己的客户端。如果我使用:

<soap:address location="https://real.server.com/MyoutfitWebService/funService"/>

当我部署它并指向 WSDL 时,&lt;soap:address&gt; 元素被破坏,看起来像:

<soap:address location="https://127.0.0.1:8443/MyoutfitWebService/funService"/>

谁能告诉我是否需要修改 jbossws.sar jboss-beans.xml 中的某些内容或什么? 我正在使用 JBoss Web Services Native 3.0.4。

感谢阅读。

【问题讨论】:

标签: java jboss jax-ws


【解决方案1】:

我不知道如何在 IIS 中处理这个问题,但我会写一些关于 Apache 的注释

我遇到了同样的问题,并在 apache 中使用 mod_ext 模块解决了它

您的配置将如下所示

 ExtFilterDefine fixservice mode=output cmd="/bin/sed s/127.0.0.1:8443/real.server.com:443/g"

 <Location "/MyoutfitWebService/services/funService">
      ProxyPass ajp://local.server.com:8009/MyoutfitWebService/funService   
      SetOutputFilter fixservice
 </Location>
 ProxyPass /MyoutfitWebService/funService ajp://local.server.com:8009/MyoutfitWebService/funService

因此,您的“正确”WSDL 地址将是

 real.server.com/MyoutfitWebService/services/funService?wsdl 

这将有正确的肥皂:地址,

 real.server.com/MyoutfitWebService/funService 

(因为这里只能放一个超链接,所以我删除了 https)。

可能有更好的方法,但遗憾的是我没有时间进行深入调查。这个解决方案很有效(我在几分钟前发现它并且已经过测试)

【讨论】:

    猜你喜欢
    • 2016-10-16
    • 2018-03-31
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    • 2011-02-25
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多