【问题标题】:WebService is not "visible" in WebLogic 10.3WebService 在 WebLogic 10.3 中不“可见”
【发布时间】:2013-04-15 15:32:17
【问题描述】:

我目前正在尝试让我的应用程序提供网络服务。 该应用程序使用 spring 并在 Weblogic 10.3 实例下运行。

我按照“合同优先”的方法构建了 Web 服务。 所以我基本上拥有的是一个生成的 WS-Interface、我对该接口的实现、一个定义 servlet-bindings 的 web.xml 和一个定义端点的 sun-jaxws.xml。 (或多或少类似于:http://www.mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/)。

现在,在将我的应用程序部署到 weblogic 之后,实际上一切正常。 我可以在浏览器中输入 WebService 的 URL,我看到了 WSDL,我可以调用它的方法。 如果这不是一个小的化妆品事实: 当我单击部署时,在 WL 的部署概述中,它向我显示了一个 WebServices 列表......这是空的。所以我的网络服务没有列在那里。

那么,谁能告诉我,我必须做些什么才能让网络服务出现在那儿?

【问题讨论】:

    标签: java web-services spring web.xml weblogic-10.x


    【解决方案1】:

    尽管拥有 JAX-WS 的 Web 服务描述符并不是必须的,但 Weblogic 有时无法识别 Web 服务(无法找到原因)

    以下是我为使其正常工作所做的工作。在 web.xml 中添加 WebService 实现类作为 Servlet

    <?xml version='1.0' encoding='UTF-8'?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" id="WebApp_ID">
      <display-name>MyWebService</display-name>
      <servlet>
        <servlet-name>serviceServlet</servlet-name>
        <servlet-class>com.aneesh.WebServiceImpl</servlet-class>
        <load-on-startup>0</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>serviceServlet</servlet-name>
        <url-pattern>/Service</url-pattern>
      </servlet-mapping>
    </web-app>
    

    并添加网络服务描述符(webservices.xml)

    <?xml version='1.0' encoding='UTF-8'?>
    <webservices xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.1">
      <webservice-description>
        <webservice-description-name>MyWebService</webservice-description-name>
        <port-component>
          <port-component-name>MyWebServiceSoapPort</port-component-name>
          <wsdl-port xmlns:an="http://www.aneesh.com/service">an:MyWebServiceSoapPort</wsdl-port>
          <service-endpoint-interface>com.aneesh.WebService</service-endpoint-interface>
          <service-impl-bean>
            <servlet-link>serviceServlet</servlet-link>
          </service-impl-bean>
        </port-component>
      </webservice-description>
    </webservices>
    

    【讨论】:

      【解决方案2】:

      根据创建 Web 服务的开发人员,将 webservices.xml 和 weblogic-webservices.xml 等部署描述符添加到应用程序中。描述符用于配置、覆盖默认设置和添加元数据。对于 Web 服务,这可以是端点、端口配置、Web 服务与 EJB 组件的链接等等。部署后,Web 服务的 WSDL 位置会列在 WebLogic 控制台中,并且可以在运行时检索 WSDL。

      From the Trenches 2 | Patching OSB and SOA Suite to PS5

      另见:

      【讨论】:

      • 老实说,我既没有webservices.xml,也没有weblogic-webservices.xml。但是查看 oracle 文档(您的“另请参阅”的第一个链接),它指出,我不需要创建/触摸它们:“本部分仅出于提供信息的目的而发布。通常,配置更新是使用管理控制台或使用 JWS 注释,您无需直接编辑任一部署描述符文件。"
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 2014-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多