【问题标题】:CXF (and interceptors) and 2.5 webappsCXF(和拦截器)和 2.5 webapps
【发布时间】:2013-06-28 17:46:04
【问题描述】:

我有一个非常基本的问题。如果我的 webapp 是 2.5 或更高版本,CXF 何时以及如何启动。我正在运行的 weblogic 10.3 会选择我的 web-app 中定义的 WS 注释。

到目前为止,我的网络应用程序版本为 2.3。当我在 webapp XML 中将它升级到 2.5 时,我注意到我的拦截器没有被启动,因为现在 weblogic 能够处理注释并且 CXF 不适用(基于堆栈跟踪分析)。

我的观察是正确的,还是我完全错了?我刚从:

<DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

【问题讨论】:

    标签: servlets weblogic cxf interceptor


    【解决方案1】:

    我不想弄乱 WL,因为我们在 WL 上运行的应用程序不止一个。所以简单的解决方案是使用处理程序。见这里:handlers_introduction

    【讨论】:

    • 也许我没有表达清楚,但 weblogic-application.xml 是 EAR 存档中的配置文件。使用它,您可以更改应用程序级别的类加载策略,而不是服务器级别。我更新了我的答案。
    • 是的,我知道你是/绝对正确的。我们明年有 JBoss 迁移计划,我不想增加明年的任务列表。但我同意你说的。
    【解决方案2】:

    你是对的,将 Servlet 版本更改为 2.5 会触发使用 @WebService 注释的类的自动发现。

    为了防止这种情况,您必须调整类加载策略。在 Apache CXF 网站上有一个很好的描述:Apache CXF - WebLogic

    根据本网站,您有两种选择:

    • “将 geronimo-ws-metadata_2.0_spec-1.1.1.jar 放入 $Weblogic_Home/jdk_../jre/lib/endorsed 文件夹中。” - 这将影响整个服务器,并可能破坏在 WebLogic 上运行的其他 Web 服务
    • “在耳朵中打包战争,使用 weblogic-application.xml 部署耳朵” - 这样您可以更改单个 EAR 应用程序的类加载策略,而不是整个服务器。

    我更喜欢使用基于 weblogic-application.xml 的解决方案,因为它更便携。

    但是它并没有立即对我起作用,我不得不向 EAR/WAR 添加额外的库 - geronimo-ws-metadata_2.0_spec-1.1.1.jar。

    <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
        <version>1.1.1</version>
    </dependency>
    

    如果您还没有 EAR 存档,则必须创建一个。假设您使用的是 maven:

    mvn archetype:generate -DarchetypeGroupId=org.codehaus.mojo.archetypes -DarchetypeArtifactId=ear-jee5
    

    并将您的 WAR 项目添加到依赖项中。

    【讨论】:

    • 非常感谢您确认我的疑问。
    猜你喜欢
    • 2017-08-02
    • 2023-04-07
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多