Weblogic 12.2.1 WebService应用程序中的RegistrationService_V10映射到多个Servlet

时间:2017-07-28 18:58:47

标签: weblogic webservice-client servlet-3.0

我使用的是Weblogic 12.2.1,我添加了一个JAX-WS客户端。它在eclipse中运行时运行良好,但如果我尝试通过管理控制台部署war文件,我得到: Web应用程序webApp.war中的url-pattern RegistrationService_V10映射到多个Servlet。我可以找到对它的引用的唯一地方是名为RegistrationServiceV10的类中的com.oracle.webservices.wls.wls-soap-stack-impl包,它注释为RegistrationService_V10的web服务,但这是我唯一可以使用的地方找到它的引用,而不是映射到我的web.xml中,所以多个servlet映射来自哪里。

2 个答案:

答案 0 :(得分:0)

我知道这个问题是在一段时间之前提出的,但是我遇到了同样的问题,阅读该问题将我带到答案,所以这对我有用:

我遇到了同样的问题,是否在存储库中的每个文件上进行文本搜索,以查找文本“ RegistrationService_V10”(以及“ RegistrationService_V11”,因为我也遇到了同样的问题),但是它不存在。 / p>

问题是存在多个weblogic jar文件。我使用maven将依赖项复制到weblogic域lib文件夹中,但是由于代码依赖于weblogic,因此它也复制了许多weblogic jar文件。这导致在我的weblogic应用程序类路径(服务器自己的weblogic文件和我导入的文件)中相同文件的多个副本。因此,代码尝试多次注册具有相同名称的相同服务存在一个问题。

解决方案是确保weblogic只能使用一个weblogic jar文件副本(这是weblogic的一部分;您不应在其中复制任何副本)。

希望这可以帮助您或其他遇到相同问题的人。

答案 1 :(得分:0)

将战争文件上传到WebLogic服务器时,我也遇到了类似的问题。

在互联网上寻找答案后,我偶然发现了这个问题mapped to multiple servlet,导致我想到了OpenAM weblogic bugtracker

解决方法是通过以下任一方法禁用注释处理:

  • 使用-Dweblogic.servlet.DIDisabled = true参数启动WebLogic

  • 在web.xml中将metadata-complete属性设置为true
<web-app metadata-complete="true" id="WebApp_ID" 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_3_0.xsd"
version="3.0">

通过在我的web.xml中放置metadata-complete,可以为我解决问题。