1

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

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

Deployed application -> Webservice -> Configuration tab

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

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

更改激活过程中发生错误,请参阅日志了解详细信息。

在部署 WebService 模块“TB_DBLEGI_SIMULATOR-trunk.war”的准备阶段遇到错误。部署 WebService 模块“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 文件夹中。另外,我试图将它放在不同的地方,但我没有运气。

4

1 回答 1

4

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

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>
于 2012-05-28T13:43:03.700 回答