我在整个Web上都看到过这个问题,但仍未找到适用于我的明确解决方案。这里的问题:在Java中创建Web服务客户端时的错误
我想在Java中创建一个Web服务客户端。客户端需要是一个控制台应用程序,它将放置在服务器上,并以特定的时间间隔自动运行。我试图使用的Web服务是由第三方公司主持编写的。该服务是用ASP.NET编写的。有问题的公司有我们碰到的几项服务。所有这些都是用ASP.NET编写的。直到两天前,我才从事这些服务的处理,当时我负责消费2项服务并从数据中构建Excel电子表格。在继续之前,让我描述一下我的开发环境。一些这方面是相关的,有些是没有,但我想包括一切:
- Windows 7专业版32位
- NetBeans IDE的6.9.1
- 的Java JDK 1.6.0_17
- JRE6
- Glassfish的3开源全平台发行
- 所有软件已经有了所有可用的更新应用
解决问题。当我将第一个Web服务客户端添加到我的控制台应用程序时,我对这个过程的顺利进行感到惊讶。我写Web服务应用程序的大部分经验都在.NET中。我能够在第一次尝试时导入WSDL和NetBeans生成的所有类。在5分钟内,我能够打电话给我的第一个服务,并得到了预期的响应,让我知道我的尝试是成功的。然后,我使用第二个WSDL所需的地址将第二个Web Service Client添加到控制台应用程序。这是我遇到的一个主要问题。
在导入WSDL,我被NetBeans的声明提醒的错误:
Web服务客户端无法通过JAXWS创建:wsimport的实用工具。
原因:未定义元素声明的:模式'
滥用谷歌下一个小时的寻找解决的办法,我终于决定申请一些试验和错误。查看NetBeans中的Output窗口,我可以看到它抱怨了3条特定的行。有一次,我在WSDL接过一看,我可以看到那些3线都是一模一样的,如下:
<s:element ref="s:schema" />
这3条线路在随机的地方被发现从WSDL的顶部,下降到约一半通过。我从Web服务引用文件夹中找到的WSDL中删除了这些行,将WSDL保留在META-INF文件夹中。然后我对服务参考进行了刷新,让我感到意外的是,NetBeans解析了WSDL并像以前一样生成了我的类。很好,对吧?那么,这里是#2问题的起因。
既然我能够编译我的应用程序没有错误,我不得不尝试击中服务,看看我的黑客是否工作。它没。由于JAXWS中存在另一个错误,在创建服务对象时,我必须在构造函数中为WSDL提供URL。这意味着我修正的WSDL被忽略,服务现在回到使用无法解析的WSDL。当我试图提供我在项目中本地编辑的WSDL的位置时,遇到另一个编译错误,指出我有一个NullPointerException。它说我需要在使用它之前初始化对象。
我研究了本网站上寻找和尝试提供任何解决方案的无限量主题。我也尝试过来自全网的解决方案,所有这些都没有运气。如果有人对我有任何建议,任何提示,技巧,黑客,请让我知道。我愿意接受任何建议。
在此先感谢您提供的任何帮助。
这可能是相关的:http://weblogs.java.net/blog/vivekp/archive/2007/05/how_to_deal_wit_1.html – 2011-05-04 20:23:48