从Glassfish 3.0升级到Glassfish 3.1.2时,EJB Web服务端点URL发生了更改

时间:2014-08-26 02:22:52

标签: ejb glassfish-3

我目前正在与之合作的开发团队计划将服务器上运行的Glassfish服务器应用程序从3.0版(Sun Glassfish)升级到3.1.2版(Oracle Glassfish),并遇到EJB的问题Web服务端点URL已更改为:

http://serverip:port/PROJECT_NAME/primeRequestTTService

要:

http://serverip:port/primeRequestTTService/primeRequestTT

经过几天的谷歌搜索,我发现后一个URL目前是EJB端点的标准构造,而由于我在前者上找不到任何内容,我认为是Sun Glassfish构建端点URL的非标准方法。

代码摘录如下:

import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.jws.WebService;

@WebService(serviceName = "primeRequestTTService", portName = "primeRequestTTSoap", wsdlLocation = "WEB-INF/wsdl/primeRequestTT/primeListTT.wsdl")
@Stateless
public class primeRequestTT {
    @EJB

我尝试将PROJECT_NAME设置为serviceName属性,但最终以http://serverip:port/PROJECT_NAME/primeRequestTT结尾。

问题: 除了修改所有EJB Web服务类名称以使其具有" Service"前缀,当我将Glassfish升级到3.1.2版本时,如何修改此Web服务应用程序项目以维护以前的端点构造?我正在寻找"配置文件"解决方案的类型。我已经尝试了glassfish-web.xml但它不起作用。

1 个答案:

答案 0 :(得分:1)

卢克曼,

您必须包含' name' @WebService注释中的参数:

@WebService(serviceName = "primeRequestTTService", portName = "primeRequestTTSoap", name= "primeRequestTT")

所以,你的结局如下:

http://localhost:8080/primeRequestTTService/primeRequestTT