使用wsdl文件的Java客户端应用程序(本地)

时间:2011-06-15 10:44:46

标签: java web-services wsdl jax-ws

我在自己的Web服务器上部署了一个Web服务(不在任何IIS或Tomcat上) 。所以,我所拥有的只是一个WSDL文件和一个webserver.exe(它有web 内部实施的服务。)

使用此WSDL文件,我已经在.net中开发了一个客户端应用程序 (C#)运行正常。

现在我必须使用相同的WSDL在JAVA中创建另一个客户端应用程序。 但我不知道如何继续(我是JAVA的新手)。具体来说,我有一些 问题继续进行..请参阅我用Java编写的代码片段。

trustAllHttpsCertificates();
HttpsURLConnection.setDefaultHostnameVerifier(hv);

QName serviceName = new QName("Sphericall");
URL url = new URL("https","localhost",8085,"/SphericallService");

testthebest.Sphericall_Service service = new testthebest.Sphericall_Service
(url, serviceName);
//service.create(serviceName); 

testthebest.Sphericall port = service.getSphericall();
// TODO initialize WS operation arguments here
testthebest.StartSessionRequest value = new testthebest.StartSessionRequest();

在上面的代码段中,我编写了绕过证书检查的代码, 然后进行主机名验证,最后尝试创建对象 服务。

但是在创建对象时,我收到以下异常。 (未找到WSDL)。 请注意,在代码中我已经为服务分配了新的URL。并在 项目我附加了Web引用(WSDL),它保存在我的 机器的D盘。因此,它将URL作为D:/xyz.wsdl,但不是 URL的正确路径,所以我将其更改为“https:// localhost: 8085 / SphericallService“。但它没有运行..

com.sun.xml.ws.wsdl.parser.InaccessibleWSDLException: 2 counts of
InaccessibleWSDLException.

java.io.FileNotFoundException: https://localhost:8085/SphericallService
java.io.FileNotFoundException: https://localhost:8085/SphericallService?wsdl

正如我所说,我的服务是在我们自己开发的网络服务器上运行的 可执行文件(作为exe文件)。并且单独提供了wsdl文件。所以,没有路径 对于wsdl,存在“https:// localhost:8085 / SphericallService?wsdl”。

如果您对此有任何想法,请提出建议。

1 个答案:

答案 0 :(得分:0)

您可以使用java函数wsimport生成客户端代码,以便从wsdl文件访问您的Web服务。示例:http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.wsfep.multiplatform.doc/info/ae/ae/twbs_jaxwsclientfromwsdl.html