6

如何更改 Web 服务中的肥皂地址。我正在开发 JBoss 7.1.1。

我有这个网络服务类:

@WebService
public class Card {

   @WebMethod
   public CardResponseDTO insertCard(
           @WebParam(name = "cardRequestCardDTO") CardDTO cardDTO,
           @WebParam(name = "userName") String userName) {

       Date today;
       CardResponseDTO cardResponseDTO = new CardResponseDTO();

       try {
            today = Calendar.getInstance().getTime();
            // My logic in here...
            return cardResponseDTO;
       } catch (Exception ex) {
            log.error(ex.getMessage(), ex);
            cardResponseDTO.setErrorCode(-2);
            cardResponseDTO.setErrorMessage(ex.getMessage());
            return cardResponseDTO;
       }
   }
}

当我在我的本地主机上工作时,这个 WSDL 可以正常工作:

<wsdl:service name="CardService">
  <wsdl:port binding="tns:CardServiceSoapBinding" name="CardPort">
    <soap:address location="http://localhost:8080/inventory-ws/Card"/>
  </wsdl:port>
</wsdl:service>

但是当我部署到我的服务器时,它的名称为 server1.somedomain.com,它不起作用,因为我只有 http://server1:8080/ ...

<wsdl:service name="CardService">
  <wsdl:port binding="tns:CardServiceSoapBinding" name="CardPort">
     <soap:address location="http://server1:8080/inventory-ws/Card"/>
  </wsdl:port>
</wsdl:service>

我需要的是如何让它在我的服务器中使用完整的 url:server1.domedomain.com。

提前致谢。

4

3 回答 3

13

如果您需要部署 SOAP Web 服务以供公共访问,例如通过 Apache,您可以在standalone.xml中删除这一行:<wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>完全。
然后主机名将从 WSDL URL 中获取。
在这种情况下,您不需要为每个部署阶段更改配置。例如dev.myhost.com、qa.myhost.com 或 ww.myhost.com。

这也避免了公共服务的错误 SSL 端口 8443 的问题。

于 2014-11-26T14:17:10.567 回答
6

澄清,

在standalone.xml 中,就在标签下:

<subsystem xmlns="urn:jboss:domain:webservices:1.1">

您必须修改这些条目

<modify-wsdl-address>true</modify-wsdl-address>
<wsdl-host>www.myhost.com</wsdl-host>

要更改端口:

<wsdl-port>80</wsdl-port> <!-- case you need change port, instead 8080 -->
<wsdl-secure-port>443</wsdl-secure-port> <!-- case you need change port, instead 8443 -->

要更改 URI 架构:

<wsdl-uri-scheme>https</wsdl-uri-scheme> <!-- or http for non secure -->
于 2014-05-06T10:18:59.290 回答
1

你必须配置 jboss 来监听你想要的接口。为此,您必须编辑standalone.xml 文件并添加一些新的接口标签。我认为这篇文章可能有用。 https://community.jboss.org/message/614897

于 2012-07-18T06:50:42.803 回答