如何更改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在我的服务器中使用它。
提前致谢。
答案 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