我目前正在与之合作的开发团队计划将服务器上运行的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
但它不起作用。
答案 0 :(得分:1)
卢克曼,
您必须包含' name' @WebService注释中的参数:
@WebService(serviceName = "primeRequestTTService", portName = "primeRequestTTSoap", name= "primeRequestTT")
所以,你的结局如下:
http://localhost:8080/primeRequestTTService/primeRequestTT