如何在JBoss 7 java webservice中更改soap地址

时间:2012-07-17 17:42:56

标签: java jax-ws jboss7.x

如何更改Web服务中的soap地址。我正在研究JBoss 7.1.1。

我有这个Web服务类:

@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;
       }
   }
}

当我在我的localhost工作时,使用此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在我的服务器中使用它。

提前致谢。

3 个答案:

答案 0 :(得分:12)

如果您需要部署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的问题。

答案 1 :(得分:5)

澄清,

在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 -->

答案 2 :(得分:0)

您必须配置jboss才能收听所需的界面。 为此,您必须编辑standalone.xml文件并添加一些新的接口标记。 我认为这篇文章可能有用。 https://community.jboss.org/message/614897