独立java Web服务客户端

独立java Web服务客户端,java,web-services,soap,wsdl,Java,Web Services,Soap,Wsdl,一般来说,我不熟悉Web服务。我正在尝试编写一个Java独立客户机,它可以从Web服务返回响应 我试着搜索SO和Google,但现在我更加困惑了。下面是我广泛浏览的链接 我有一个类似的url: 我还有一个SOAP请求,类似于: <?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs

一般来说,我不熟悉Web服务。我正在尝试编写一个Java独立客户机,它可以从Web服务返回响应

我试着搜索SO和Google,但现在我更加困惑了。下面是我广泛浏览的链接

我有一个类似的url:

我还有一个SOAP请求,类似于:

<?xml version="1.0" encoding="utf-8"?> 
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> 
<soap12:Body> 
<AuthUsername>someName@someWhere.com</AuthUsername> 
<AuthPassword>mypassword</AuthPassword> 
<Sid>12121</Sid> 
<DynamicProductFeedsRequest xmlns="http://api.something.com/remote/SomeEncryptedText"> 
</DynamicProductFeedsRequest> 
</soap12:Body> 
</soap12:Envelope> 

在上面提到的一个答案中,我能够在浏览器上获得一个完美的html/xml文件

现在我不知道我应该使用哪个软件?链接中的信息零零碎碎,我无法相互关联,因为我对SOA一无所知

有谁能告诉我编写独立Java客户机的高级步骤,该客户机接收WSDL URL和SOAP请求并向我提供其输出


如果我遗漏了任何信息,请告诉我。

这个问题取决于以下几点:

  • Java编译器的JDK版本
  • 您的WSDL版本(有1.0、1.2和2.0)
基本上,如果您使用生成web服务,那么您将需要与Java5相关的web服务库(支持注释)

一些关于使用带注释的Java Web服务(JAX-WS)的文章:

我将从使用不支持注释的Java生成Web服务客户端开始。众所周知,将WSDL生成为Java的客户端是(最后一个版本是2006年4月22日发布的1.4)。这基本上需要一个WSDL定义并将其生成回客户机。它支持旧版本的WSDL(1.0),如果使用新版本的WSDL(1.2和2.0),则会崩溃

基本上,它接受您的WSDL并生成一个与您的Web服务通信的java代理。它可以允许基于RPC以及基于XML的通信

对于支持注释的Java,有效地有两种方法:

  • 使用Java自己的wsimport命令(可执行文件位于
    JDK_HOME/bin/
    文件夹下)
  • 使用第三方库,例如(有效地取代了ApacheAxis并支持WSDL版本2.0)或(支持WSDL高达1.2)
要使用wsimport,基本上需要转到shell命令(或编写脚本)并有效地执行以下操作:

wsimport -d [outputdir] wsdl_file
您的java代理将在
[outputdir]
文件夹中找到

wsimport
可以在JDK1.6中找到(我不知道它是否存在于早期版本中)。更多来源,以及

对于Apache Axis、Apache Axis 2或Apache CXF,有一个执行源代码生成的
WSDL2Java
类文件

下面是关于如何在和中使用
WSDL2Java
的指南


我希望这能在某种程度上帮助你,就像我花了30分钟的时间做这件事一样。:-)

使用CXF并遵循此链接中的所有步骤嗨,非常感谢。按照顺序,我正在探索约瑟克的解决方案。我遇到了WSDL2Java的问题,它给了我以下错误;>WSDLToJava错误:CXF不支持Rpc/编码的WSDL,请使用SO的解决方案修复它。我基本上删除了编码,现在生成了两个文件1。RemoteModelDynamicProductFeedsPort.java和2。RemoteModelDynamicProductFeedsService.java。需要继续链接中的步骤。我也会尝试“精英绅士”的职位时卡住。谢谢“这是非常详细的内容。@先生,只需记录现有实践并将其保存在非现场位置即可,我使用CFX教程生成了三个文件,如下所示:RemoteModelDynamicProductFeedsPort.java RemoteModelDynamicProductFeedsPort\u RemoteModelDynamicProductFeedsPort\u Client.java RemoteModelDynamicProductFeedsPort\u Client.java remotemodeldynamicproductfeedssservice.java,然后发布:wsdl2java-ant-Client-dD:\experiementals\webservice java\apache-cxf-2.2.10\bin-b async_binding.xml wsdlfile.wsdl什么也不发生。我认为我已经生成了存根,并且已经通过了SOAP请求。有什么想法吗?基本上,本教程是处理一些复杂的东西。是因为我删除了加密,它什么都没做吗?嗨,有人能帮我吗。我认为CFX生成的文件中有很多错误。提到的类名与创建的文件名不匹配。在相互调用的类中也是如此,例如:RemoteModelDynamicProductFeedsPort\u RemoteModelDynamicProductFeedsPort\u Client.java,该类被声明为RemoteModelDynamicProductFeedsPort。在调用程序的文件中,每个单词之间都有下划线,但文件名没有下划线。@oneworld,您需要更具描述性:您遇到了哪些异常?您的WSDL是什么样子的&生成的代码有什么问题?