XFire根据WSDL生成客户端程序<o:p></o:p>
<o:p> </o:p>
1.更新The XFire Eclipse plugin<o:p></o:p>
The XFire Eclipse plugin provides Eclipse support for XFire's WSDL->Code generator. It requires Eclipse 3.2 and Java 5.<o:p></o:p>
Installing the Plugin<o:p></o:p>
To install the Eclipse XFire plugin:<o:p></o:p>
go to the Help menu, select "Software Updates" and then select "Find and Install." <o:p></o:p>
Select "Search for new features to install" and click Next. <o:p></o:p>
Select "Create New Remote Site" and enter "XFire" as the name and http://dist.codehaus.org/xfire/update/ as the eclipse update site. <o:p></o:p>
Select OK. <o:p></o:p>
Select Finish <o:p></o:p>
<o:p> </o:p>
2.安装好后出现
<o:p></o:p>
<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape id="_x0000_i1025" style="WIDTH: 388.5pt; HEIGHT: 362.25pt" type="#_x0000_t75"><v:imagedata o:title="ScreenShot045" src="file:///C:\DOCUME~1\pengch\LOCALS~1\Temp\msohtml1\01\clip_image001.png"></v:imagedata></v:shape><o:p></o:p>
<o:p> </o:p>
3.新建一个web project,将<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
<o:p> </o:p>
生成的client程序放到源文件夹中,<o:p></o:p>
不要加myeclipse中的XFire库文件,因为客户端运行所导入的xfire<st1:chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899">1.2.6</st1:chsdate>和服务器端的xfire1.2.5版本不一致,导致以上问题。<o:p></o:p>
直接下载xfire-<st1:chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899">1.2.6</st1:chsdate>,把其中的lib加到project就好了。<o:p></o:p>
<v:shape id="_x0000_i1026" style="WIDTH: 3in; HEIGHT: 221.25pt" type="#_x0000_t75"><v:imagedata o:title="ScreenShot046" src="file:///C:\DOCUME~1\pengch\LOCALS~1\Temp\msohtml1\01\clip_image003.png"></v:imagedata></v:shape><o:p></o:p>
4.最后写个测试程序就好。<o:p></o:p>
import com.kuaff.xfire.samples.MathServiceClient;<o:p></o:p>
import com.kuaff.xfire.samples.MathServicePortType;<o:p></o:p>
<o:p> </o:p>
public class Test {<o:p></o:p>
public static void main(String[] args) {<o:p></o:p>
MathServiceClient client = new MathServiceClient();<o:p></o:p>
MathServicePortType MathService = client.getMathServiceHttpPort();<o:p></o:p>
// 调用服务<o:p></o:p>
long result = MathService.add(1, 2);<o:p></o:p>
System.out.println("结果:" + result);<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
<o:p> </o:p>
当有参数传递时,<o:p></o:p>
import test.HelloServiceClient;<o:p></o:p>
import test.HelloServicePortType;<o:p></o:p>
import test.ObjectFactory;<o:p></o:p>
import test.User;<o:p></o:p>
import javax.xml.namespace.QName;<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
<o:p> </o:p>
<o:p> </o:p>
public class TestAddress {<o:p></o:p>
public static void main(String[] args) {<o:p></o:p>
HelloServiceClient client = new HelloServiceClient();<o:p></o:p>
HelloServicePortType HelloService = client.getHelloServiceHttpPort();<o:p></o:p>
<o:p></o:p>
// 当要传递参数时,调用ObjectFactory中的公用方法,而不用自己还要<o:p></o:p>
//new JAXBElement<String>(new<o:p></o:p>
// QName("http://test", "username"),String.class,"dfdfs"); <o:p></o:p>
//直接调用factory.createUserUsername("dfdfs")返回JAXBElement<String>类型<o:p></o:p>
<o:p></o:p>
ObjectFactory factory=new ObjectFactory();<o:p></o:p>
User user=factory.createUser();<o:p></o:p>
user.setPassword(factory.createUserPassword("afdsafsd"));<o:p></o:p>
user.setUsername(factory.createUserUsername("dfdfs"));<o:p></o:p>
<o:p></o:p>
// 调用服务<o:p></o:p>
//由JAXBElement转化为String,调用getValue();<o:p></o:p>
System.out.println(HelloService.getUser(user).getUsername().getValue());<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
分享到:
相关推荐
使用XFire根据WSDL生成客户端代码,可以大大简化开发过程,因为它自动生成了与服务接口对应的Java类和代理。以下是具体步骤: 1. **安装和配置XFire**:首先,确保已经下载并安装了XFire库。你可以通过Maven或...
它能自动生成客户端代理类,这些类可以直接调用远程服务的方法,就像调用本地方法一样,极大地降低了客户端开发的复杂性。 这个压缩包文件"xfireDemo"包含了实现xfire服务端和axis客户端所需的所有组件和jar包。...
3. **自定义WSDL生成器**:如果你的场景比较特殊,可以创建自定义的WSDLGenerator实现,覆盖XFire默认的行为,以控制字段名称的生成。 4. **使用XML Schema(XSD)**:如果字段涉及的数据类型较复杂,可以在WSDL...
Xfire支持SOAP、RESTful和XML/RPC等多种通信协议,使得开发者可以方便地构建服务端和客户端应用程序。 二、开发Web服务客户端 1. **导入jar包**:标题和描述中提到的"xfire_client_jar"是Xfire客户端开发所需的jar...
通过XFire提供的工具,我们可以根据WSDL生成对应的客户端代理类。这些代理类封装了调用远程服务的方法,使得开发者可以像调用本地方法一样调用Web服务。 对象传递是XFire的一大特色,它使得复杂的业务对象能够在Web...
1. **自动生成Web服务客户端代码**:这是插件的核心功能之一,通过解析WSDL(Web Services Description Language)文件,插件能够自动为指定的Web服务生成客户端存根代码,极大地简化了客户端开发过程。 2. **简化...
3. 使用相应的库(如CXF或axis2)从WSDL生成客户端代理类。 4. 在Xfire客户端代码中实例化并调用生成的代理类,传递必要的参数以执行Web服务操作。 5. 处理返回的结果,将数据展示或用于客户端逻辑。 在实际开发中...
4. **生成客户端代理类**:利用XFire提供的工具或者IDE(如Eclipse)的插件,根据WSDL生成对应的客户端代理类。这些类包含了调用Web服务的方法。 5. **实例化客户端**:创建代理类的实例,这通常需要提供服务的URL...
1. **生成客户端代理**:XFire提供了一个工具(如`xfire-proxy-gen`)用于从服务端的WSDL(Web Service Definition Language)文件生成客户端代理类。运行这个工具,指定服务的WSDL URL,它会生成相应的Java客户端...
1. Myeclipse生成客户端代码:这种方法适用于大部分情况,只需提供Wsdl文档的URL,Myeclipse会自动生成客户端代码。但缺点在于,服务器URL变动或新增功能时,需重新生成客户端代码。 2. Spring与Xfire整合访问:...
- 使用MyEclipse的Web服务消费者向导,根据WSDL生成客户端代理类。 - 在客户端代码中,实例化代理类并调用服务方法,实现与Web服务的交互。 8. **JSP整合** - 如果需要在Web前端展示服务结果,可以使用JSP(Java...
1. 生成客户端代理:XFire提供了一个工具(xfire-gen)可以自动生成客户端代理类。也可以手动创建,使用服务的WSDL地址和JAXWS的`javax.xml.ws.Service`类。 2. 使用代理调用服务:生成的客户端代理类可以直接调用...
2. **生成客户端代理类**:使用XFire的代码生成工具,根据WSDL文件自动生成客户端代理类。这将简化客户端调用服务的过程。 3. **引入依赖**:客户端同样需要XFire的相关jar包,以便解析和处理Web服务的请求和响应。...
4. **SOAP(Simple Object Access Protocol)处理**:Web服务通常使用SOAP协议进行数据交换,客户端代码需要能够生成和解析SOAP消息。 5. **异常处理**:客户端代码需要有良好的错误处理机制,当与Web服务通信出现...
- XFire提供了一个`ClientProxyFactoryBean`,用于根据WSDL生成一个Java客户端代理类。这个代理类可以像调用本地方法一样调用Web服务。 - 创建客户端代理后,实例化这个类并设置必要的连接参数(如服务URL),然后...
1. **生成代理类**: 使用Xfire的工具或者手动编写,根据WSDL生成客户端的代理类。 2. **配置客户端**: 设置服务的URL,以及任何必要的认证信息。 3. **调用服务**: 通过代理类调用服务方法,执行业务逻辑。 **六、...
- **生成客户端代理**: 使用XFire提供的工具或API,根据WSDL生成客户端代理类。 - **实例化代理**: 创建代理对象,设置服务URL等信息。 - **调用服务**: 通过代理对象调用服务方法,传递必要的参数。 **4. XFire与...
在使用XFire时,通常需要WSDL文件来生成客户端代理类,这些类提供了调用Web服务的方法。 3. **XFire客户端API**:XFire提供了客户端API,可以自动生成客户端代码,这些代码包含了调用Web服务的必要方法。开发者只...
1. **生成客户端代理类**:使用Xfire的工具(如`xfire-gen`)或在线工具,根据服务的WSDL(Web Service Description Language)文件生成客户端代理类。 2. **编写客户端代码**:实例化代理类并调用服务方法。 ```...
7. 在客户端,通过CXF的客户端API或者WSDL生成的代理类来调用服务。 通过这种方式,CXF使得开发者能够快速、方便地创建和部署Web服务,同时也简化了客户端的调用过程。由于CXF的广泛支持和灵活性,它是现代Java ...