2011-06-30 64 views
2

我在部署定期调用Web服务的Glassfish Web应用程序时遇到问题。基本上这个问题似乎是对javax.xml.ws.Service的调用似乎永远不会返回。没有例外抛出。javax.xml.ws.Service构造函数不返回

的代码如下所示(对象/变量名称更改):

MyService ss = new MyService(wsdlURL, SERVICE_NAME); 

其中WSDLURL是一个本地的WSDL文件(也尝试与远程托管的WSDL)的URL对象,SERVICE_NAME是字符串与Web服务名称。

对于为MyService对象的实际构造函数只是调用超级上javax.xml.ws.Service

public class MyService extends Service { 
    public MyService(URL wsdlLocation, QName serviceName) { 
     super(wsdlLocation, serviceName); 
    } 
} 

在我的机器这个工程完全符合市场预期,但在部署调用 的MyService构造从来没有回报。

我试图在运行在红帽企业Linux服务器版本5.6(Tikanga)上的Glassfish v3.1服务器上进行部署。

在开发和部署环境中,Java版本为1.6。

有没有人对这里会发生什么有什么想法?缺少任何异常使得调试非常困难。我想这可能可能是一个WSDL问题,就好像我理解正确一样,javax.xml.ws.Service在调用构造函数时做了一些解释,我认为这可能导致某些内容挂起。但是,它似乎很奇怪,它可以在我的开发机器上正常工作,但不在部署服务器上。

任何帮助非常感谢!

回答

0

问题可能是因为正在部署机器上使用代理。 我遇到了同样的问题,后来发现它是由于代理设置。创建stub类之前

尝试设置代理,即

System.setProperty("http.proxyHost", "xxx.x.xx.xx"); 
System.setProperty("http.proxyPort", "8080"); 
MyService ss = new MyService(wsdlURL, SERVICE_NAME); 
+0

感谢您的。我决定重新编写应用程序,使其作为独立的Java应用程序运行,并与服务器并行运行。出于某种原因,分离代码允许Web服务的东西毫无问题地工作,所以它好像是某种与Glassfish相关的问题。 – Beardy