我一直在使用rpclib自动生成WSDL并在Python中实现它。在
然后我想使用JavaEE调用一个具有此WSDL的web服务*,所以我只在Eclipse的creation向导(Indigo 3.7.1 with OEPE)中使用webservice from WSDL选项,但Ant构建失败,出现异常(简而言之):
weblogic.wsee.tools.WsBuildException Error running JAX-WS wsdlc
Caused by java.lang.NoSuchMethodException: javax.xml.bind.annotation.XmlElementRef.required()
我该怎么办?如何使用JavaEE调用web服务?在
*web服务配置为:Apache HTTP Server 2.2.2+mod\wsgi 3.3+Python 2.6.5+rpclib 2.6.1。在
好吧,第二次无意中发现了你的帖子,所以我将详细说明我之前的评论:)。在
首先,我简要介绍一下你的设置:
调用WS的常规选项:
第一个选项在您的设置中不起作用,因为DI只在容器管理的环境中工作(见我的评论)。这意味着WS类和执行类必须在同一个容器中(例如,同一个服务器)。在
所以剩下的就是手动生成WS存根。因此,您可以使用您自己的答案中提到的
wsimport
工具。使用这个工具有几种不同的方法。让我们看看CLI的用法:%IDE_WORKSPACE%/your project/src
stub
wsimport -keep <http://yourwsdl?wsdl>
回到IDE中:
现在您可以通过从生成的
service
-文件中获取port
来使用生成的存根文件连接到WS最后提示:
在
wsimport
工具中有一个option直接在导入例程中设置它。在wsimport
工具。一旦设置好了,它会加速你的工作。在希望这有帮助,玩得开心!在
编辑:只是为了澄清:
使用
wsimport
工具后,应该有一个包含如图所示文件的目录。为了使这个例子更清楚,您需要从RequestFileService
(这是我的WS操作)获得一个服务,如RequestFileService service = new RequestFileService();
,然后您需要在这个服务上有一个端口,比如RequestFile proxy = service.getRequestFilePort();
。在此之后,您可以使用端口
proxy.yourMethod(yourParam);
调用方法调用相关问题 更多 >
编程相关推荐