0

我正在开发一个将在 Web 逻辑服务器上发布的 Web 服务,在它前面,将有一个 Apache 服务器来处理所有请求并将它们定向到正确的 WL 实例,但使用 HTTPS。这里的问题是我让 CXF 直接生成 WSDL,所以如果你访问

https://myapp.com/myapp/ws/

它将显示所有已发布的服务及其相应的 WSDL。问题是这似乎没有考虑 https 前缀,而是显示了与 http 对应的 URL,这是不允许的并且没有响应。如果您复制并粘贴任何这些 URL 并在 URL 中的 HTTP 中添加一个“s”,则内容看起来很好,但在导入中带有“位置 URL”的 WSDL 内部也会发生同样的问题:

<wsdl:import location="http://myapp.com:80/myapp/ws/AdminService?wsdl=AdminService.wsdl" namespace="http://myapp.com/"></wsdl:import>

因此,任何尝试使用该 WSDL 的应用程序或用户都会收到错误,因为客户端无法获取导入文件。

我的问题是,有没有办法指定这个?难道我做错了什么?

这是界面:

@WebService
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = ParameterStyle.WRAPPED)
public interface AdminService {

@WebResult(name = "message")
public String createUser(
        @WebParam(name = "adminUser") AdminUser adminUser,
        @WebParam(name = "queryUser") QueryUser queryUser)
        throws AdminServiceException;
}

和实际的类:

public class AdminServiceImpl implements AdminService,
        InitializingBean {

提前致谢!

4

0 回答 0