当只有一个

时间:2016-10-21 19:58:20

标签: java web-services soap wsdl weblogic

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

在开发应用程序期间,我以各种方式更改了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/BannerAPIJavaAdapterWsdl} callBanner。

抱怨应用程序中有两个端口具有相同的名称。但事实并非如此。 我检查了JDeveloper生成的.war文件 WEB-INF / web.xml只有一个服务条目 WEB-INF / weblogic.xml也是正确的,只是指定了context-root。

我已经确定在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 个答案:

答案 0 :(得分:0)

我终于找到了答案。

当我使用JDeveloper重新生成服务的类时,我必须以某种方式更改名称。这导致新的java正在构建。

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

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

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