首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在weblogic中更改ejb3 ejb3服务url

在weblogic中更改ejb3 ejb3服务url
EN

Stack Overflow用户
提问于 2011-07-14 01:10:07
回答 2查看 6.2K关注 0票数 7

我有一个用@WebService(serviceName="MyServiceName", portName="MyPortName")注释的EJB3会话bean。将其部署到Weblogic 11g中时,服务端点位于

host:port/BeanClassName/MyServiceName

是否可以更改the服务的服务端点地址?即到

host:port/my/context/root/something/MyServiceName

我尝试使用weblogic-webservices.xml部署描述符,但它需要webservices.xml描述符,该描述符需要一个WSDL location元素,但它应该由服务器生成,并且它在开发环境和生产环境中的位置不同。

EN

回答 2

Stack Overflow用户

发布于 2011-08-02 20:53:30

假设您有一个EJB

代码语言:javascript
运行
复制
package com.example;
@Stateless
@WebService
OrganizationService {...}

首先,您应该为它编写一个webservices.xml文件,如下所示,因为它的部分将从完成实际端点配置的weblogic-webservices.xml中引用回来。

webservices.xml (注意:通过添加webservices.xml webservice注解会覆盖类中的注解!):

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<webservices xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2">
  <webservice-description>
  <!-- just a label, can be anything you want -->
  <webservice-description-name>MyServiceName</webservice-description-name>
  <port-component>
    <!-- just a label, can be anything you want -->
    <port-component-name>MyServicePort</port-component-name>
        <!-- Target namespace from wsdl -->
        <wsdl-port xmlns:ex="http://example.com/target/name/Space">ex:MyService</wsdl-port>
        <!-- Fully qualified class name of the ejb interface/bean providing the service -->
        <service-endpoint-interface>com.example.OrganizationService</service-endpoint-interface>
        <service-impl-bean>
        <!-- The class name of the bean providing the service -->
          <ejb-link>OrganizationService</ejb-link>
        </service-impl-bean>
    </port-component>
  </webservice-description>
</webservices>

然后,在weblogic-webservices.xml中,您可以定义您想要的任何端点。

weblogic-webservices.xml:

代码语言:javascript
运行
复制
<?xml version='1.0' encoding='UTF-8'?>
<weblogic-webservices xmlns="http://www.bea.com/ns/weblogic/weblogic-webservices" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-webservices http://www.bea.com/ns/weblogic/weblogic-webservices/1.0/weblogic-webservices.xsd">
  <webservice-description>
  <!-- This must match the name given in webservices.xml -->
   <webservice-description-name>MyServiceName</webservice-description-name>
   <webservice-type>JAXWS</webservice-type>
    <port-component>
     <!-- This must match the name given in webservices.xml -->
      <port-component-name>MyServicePort</port-component-name>
      <service-endpoint-address>
        <webservice-contextpath>/myContextPath</webservice-contextpath>
        <webservice-serviceuri>/myServiceURI</webservice-serviceuri>
      </service-endpoint-address>
    </port-component>
  </webservice-description>
</weblogic-webservices>
票数 2
EN

Stack Overflow用户

发布于 2013-05-16 06:05:56

我找到了一个解决方案,可以在WebLogic从JAX- web服务生成的端点的基础上添加另一个端点。

我有一个类似这样的web服务(简化):

代码语言:javascript
运行
复制
@WebService(name = "ClientService",
            portName = "ClientService",
            serviceName = "ClientService")
public class ClientWebService {

    @WebMethod
    public ExtClient findClientDetails(String ref) {
        // etc.
    }
 }

WebLogic端点是<context>/ClientService,但我希望它是<context>/client/01

web.xml中,我有:

代码语言:javascript
运行
复制
<listener>
    <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>
<servlet>
    <servlet-name>WebServiceServlet</servlet-name>
    <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>WebServiceServlet</servlet-name>
    <url-pattern>/client/01</url-pattern>
</servlet-mapping>

现在,WebLogic在两个端点都提供了web服务。

需要在web.xml中指定URI,因为WebLogic中的JAX-WS库忽略了sun-jaxws.xml中的端点规范。(相反,GlassFish仅公开在sun-jaxws.xml中指定的enpoint。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6682811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档