【问题标题】:JAX-WS How to hide WSDL in weblogic?JAX-WS 如何在 weblogic 中隐藏 WSDL?
【发布时间】:2012-05-24 09:38:44
【问题描述】:

我创建了一个 JAX-WS web 服务并将其部署在 weblogic 10.3.3 上。部署成功,一切正常。

现在,我们想通过隐藏 WSDL 来访问 Web 服务。我尝试从 weblogic 管理控制台隐藏 WSDL。转到此位置

Deployed application -> Webservice -> Configuration tab

在此选项卡中,通过在参数“WSDL 发布文件”中输入“false”。

保存它创建了一个 Plan.xml。当我尝试激活 Weblogic 中的更改时会出现问题。以下是我得到的例外:

激活更改时出错,请查看日志 详情。

在部署 WebService 模块的准备阶段遇到错误 'TB_DBLEGI_SIMULATOR-trunk.war'。部署时遇到错误 Web 服务模块“TB_DBLEGI_SIMULATOR-trunk.war”。发布失败 wsdl java.io.IOException: Wsdl 文件应该放在 META-INF/wsdl, 或 WEB-INF/wsdl

wsdl文件应该放在META-INF/wsdl,或者WEB-INF/wsdl

在我的战争中,WSDL 放在 WEB-INF/wsdl 文件夹中。 另外,我尝试将它放在不同的地方,但我没有运气。

【问题讨论】:

  • 在 JAX-RPC 中是可能的。在注解@WSDL 中,我们有一个属性“exposed”。这样我们可以隐藏 wsdl,例如@WSDL(暴露=假)

标签: java jakarta-ee wsdl jax-ws weblogic-10.x


【解决方案1】:

您始终可以编写和注册Filter 以阻止对给定资源的访问。 例如:

public class BlockFilter implements Filter {

    @Override
    public void init(FilterConfig config) throws ServletException {}

    @Override
    public void destroy() {}

    public void doFilter(ServletRequest request, ServletResponse response,
                        FilterChain chain) throws IOException, ServletException {
        return;
    }
}

并在web.xml中注册过滤器:

<filter>
    <filter-name>blockFilter</filter-name>
    <filter-class>namespace.BlockFilter</filter-class>    
</filter>

<filter-mapping>
    <filter-name>blockFilter</filter-name>
    <url-pattern>*?wsdl</url-pattern>
</filter-mapping>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 2011-05-24
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多