当只有一个端口时,Weblogic SOAP 服务部署错误报告两个端口处于战争状态

Posted

技术标签:

【中文标题】当只有一个端口时,Weblogic SOAP 服务部署错误报告两个端口处于战争状态【英文标题】:Weblogic SOAP service deployment errors reporting two ports in war when there is only one 【发布时间】:2017-03-04 05:35:35 【问题描述】:

我有一个带有两个 SOA 服务器集群的 weblogic 服务器。 我正在使用 JDeveloper 向导创建的 SOAP servlet 将 servlet 部署到该服务器(从 WSDL 创建 Java Web 服务 -> Java EE 1.5,支持 JAX-WS 注释) 它被部署为一个独立的应用程序。

在开发应用程序期间,我以各种方式更改了 WSDL,包括更改端口名称。

我已经进入weblogic界面,删除了之前的安装,通过JDeveloper重新部署。我收到以下错误消息:

[08:44:59 PM] weblogic.management.DeploymentException:在部署 WebService 模块“RJMTestBannerAdapter.war”的准备阶段遇到错误。 callBannerService(WebserviceDescriptionBean) 中的两个端口同名http://ic.ac.uk/AIAMetaData/AIAComponents/ApplicationObjectLibrary/Banner/V1/APIJavaAdapter/BannerAPIJavaAdapterWsdlcallBanner.

它抱怨应用程序中有两个同名的端口。但是没有。 我检查了 JDeveloper 生成的 .war 文件 WEB-INF/web.xml 有一个服务条目 WEB-INF/weblogic.xml 也是正确的,只是指定了上下文根。

我已经确定,在 weblogic 服务器的某个地方,一定有一些东西在我删除应用程序时没有被清除。 我检查了 weblogic 控制台用户界面,浏览了 web 应用程序和服务列表并确认它不存在。

weblogic 服务器是否有部署计划文件或在部署时获取的类似文件?如果是这样,这个部署计划在哪里?

我认为这并不重要,但这是我的 web.xml:

<?xml version = '1.0' encoding = 'UTF-8'?>
<web-app 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" version="2.5"
         xmlns="http://java.sun.com/xml/ns/javaee">
  <servlet>
    <servlet-name>callBanner</servlet-name>
    <servlet-class>ic.ac.uk.ic.rjmtest.banner.adapter.gen.main.Main_ptImpl12</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>callBanner</servlet-name>
    <url-pattern>/callBanner</url-pattern>
  </servlet-mapping>
</web-app>

这也是出现在 war 文件中的 weblogic.xml。 (它不在我的项目中,但 JDeveloper 必须生成它)

<?xml version = '1.0' encoding = 'UTF-8'?>
<weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd" xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">
    <context-root>RJMTestBannerAdapter</context-root>
</weblogic-web-app>

我也检查了 WSDL,只有一个端口。

【问题讨论】:

您是否尝试过在没有集群或任何其他环境的情况下部署应用程序?它会为您指明服务器/服务器清理是否存在问题的方向。 我没试过,但这是个好主意。我会这样做并反馈结果 【参考方案1】:

我终于找到了答案。

当我使用 JDeveloper 为服务重新生成类时,我一定以某种方式更改了名称。这导致构建了新的 java。

由于我没有删除类或部署目录,所以旧的仍然存在于我的 war 文件中。所以我试图部署两个,即使我的 .java 文件没有反映这一点。

删除类和部署目录然后重新编译解决了这个问题。

这篇文章可能对遇到此错误的其他人有用!

【讨论】:

以上是关于当只有一个端口时,Weblogic SOAP 服务部署错误报告两个端口处于战争状态的主要内容,如果未能解决你的问题,请参考以下文章

Weblogic 12c 一个domain建多个server(端口)

安装和使用WebLogic

在weblogic 12c中部署的cxf soap客户端webservices

使用 apache-camel [2.24.3] 使用 SOAP 服务时出错

weblogic下同域不同端口下的跨域问题解决

当 XML SOAP 响应中存在单个元素时,JSON 对象而不是数组