WebServices接口的描述文件WSDL中经常出现类似 name="in0" 的参数配置,如下:
<xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="in1" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="in2" nillable="true" type="xsd:string" />
这样对于客户端来说太不方便了,可读性很差,只能对着接口文档才知道每个参数的名字。那么,如何让这些不友好的名称改成友好的参数名呢?如:name="callTime"。实现步骤如下:
第一步、JSR181注解配置(也称:annotation方式),对webservice接口类进行注解:
package com.metarnet.webservice;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
@WebService
public interface IAlarmSwitchService {
@WebMethod
@WebResult(name="resultMsg")
public String transferAlarm(@WebParam(name="serSupplier")String serSupplier,
@WebParam(name="serCaller")String serCaller,
@WebParam(name="callerPwd")String callerPwd,
@WebParam(name="callTime")String callTime,
@WebParam(name="opDetail")String opDetail);
}
第二步、services.xml文件配置
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<service xmlns="http://xfire.codehaus.org/config/1.0">
<name>AlarmSwitchService</name>
<serviceClass>
com.metarnet.webservice.IAlarmSwitchService
</serviceClass>
<implementationClass>
com.metarnet.webservice.AlarmSwitchServiceImpl
</implementationClass>
<serviceFactory>jsr181</serviceFactory><!--这个必须配置,否则还是显示in0...-->
</service>
</beans>
第三步、至此,配置步骤已完成,查看效果:
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="serSupplier" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="serCaller" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="callerPwd" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="callTime" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="opDetail" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
分享到:
相关推荐
XFire提供了生成WSDL文件的功能,允许开发者从Java类或者接口自动生成对应的WSDL定义,以便于服务的发布和消费。 在描述中提到"工作的地方不能上网更新",这意味着在离线环境下使用XFire插件生成WSDL文件。在这种...
2. **使用JAXB注解**:如果你的类是基于JAXB(Java Architecture for XML Binding)的,可以通过添加`@XmlElement(name="新字段名")`注解来改变WSDL中显示的字段名称,而无需修改源代码中的属性名。 3. **自定义...
标题“Xfire调用WebService无法传递参数问题”暗示了开发者在尝试使用Xfire框架时遇到了参数无法正常传递到Web服务的情况。这可能涉及到多个方面,如编码问题、序列化错误、类型不匹配或者配置不正确等。以下是一些...
在使用XFire时,通常需要WSDL文件来生成客户端代理类,这些类提供了调用Web服务的方法。 3. **XFire客户端API**:XFire提供了客户端API,可以自动生成客户端代码,这些代码包含了调用Web服务的必要方法。开发者只...
在这个例子中,`MyWebService`是服务接口类,`myMethod`是服务方法名,`"参数"`是传递给服务的方法参数。注意,实际应用中可能需要配置更多的属性,如HTTP连接超时、安全设置等。 五、异常处理 在调用Web服务时,...
3. **生成Java代码**:运行XFire的wsdl2java工具,指定WSDL文件的位置,它会生成一组Java类,包括服务接口、数据传输对象(DTOs)和代理类。服务接口定义了可以调用的Web服务方法,DTOs表示数据模型,代理类则负责...
在XFire客户端调用实现中,首先需要获取到Web服务的WSDL文件,这个文件描述了服务的接口、方法、参数和返回类型。通过XFire提供的工具,我们可以根据WSDL生成对应的客户端代理类。这些代理类封装了调用远程服务的...
5. **客户端调用**:客户端通过生成的WSDL文件(Web Service Description Language)生成服务代理,然后调用服务接口进行数据传输。 尽管Xfire在性能上具有优势,但随着Java社区的发展,Spring WS和CXF等其他Web...
2. **创建Web Service客户端**:使用Xfire,你可以通过WSDL(Web Service Description Language)文件生成Web Service的客户端代理类。WSDL文件定义了服务的接口、操作、消息格式和地址。在Eclipse中,可以使用Xfire...
2. **配置文件**:客户端代码可能包含XML配置文件,用于存储Web服务的URL、认证信息、端口等参数,便于配置和管理。 3. **HTTP/HTTPS通信模块**:由于Web服务通常基于HTTP或HTTPS协议,因此客户端代码需要有相应的...
接着启动xfire_client,配置好服务器的URL和其他必要参数,通过客户端代理类调用远程方法。请求会被包装成SOAP消息发送给服务器,服务器解析消息并执行相应的方法,最后将结果封装回SOAP响应,返回给客户端。 此...
这个操作接收一个名为`name`的字符串参数,返回一个字符串响应。服务通过SOAP协议在HTTP上运行: ```xml <wsdl:definitions ...> ... <wsdl:message name="SayHelloRequest"> <wsdl:part name="parameters" ...
- **解析WSDL**:使用XFire提供的工具,如`wsdl2java`,从WSDL文件生成Java客户端 stubs。 - **初始化客户端**:实例化客户端代理,通常是一个实现了服务接口的类。 - **配置传输机制**:设置HTTP或HTTPS等传输...
2. **WSDL文件**:描述了Web服务的接口,包括方法、参数和返回类型。开发者可以使用WSDL文件生成客户端代码或者验证服务端实现。 3. **配置文件**:如`xfire-config.xml`,用于配置XFire的行为,例如指定服务绑定...
2. **配置服务代理**:在Spring配置文件中,使用`<xfire:client>`标签声明客户端,指定服务URL和其他参数。 3. **注入服务代理**:通过Spring的依赖注入,将服务代理注入到需要使用它的类中。 4. **调用服务**:通过...
- 使用XFire的客户端API,可以从WSDL生成客户端代理类。这些代理类提供了与服务端接口相同的方法,调用这些方法实际上就是向远程服务发送请求。 - 如果是调用本地服务,你可以直接使用接口实例,无需生成客户端...
例如,我们可以创建一个名为`HelloWorldService`的接口,提供一个`sayHello`方法,然后实现这个接口,并在Xfire配置文件中声明它。 ### 3. 客户端调用 调用Web服务在Xfire中同样简单: 1. **获取服务代理**:使用...
接下来,需要在项目中编写一个具体的类,例如`Xfire`类,该类包含了一个名为`getMes`的方法,该方法接受一个字符串参数`name`,并返回一个拼接了特定字符串`"aaaa"`后的结果。 #### 2. 编写Service配置文件 紧接着...
4. **生成WSDL**:Xfire会自动根据服务接口生成对应的WSDL文件。 **五、消费Web服务** 1. **解析WSDL**:获取服务的接口和地址信息。 2. **创建服务代理**:Xfire提供API生成服务客户端,通过代理类调用远程服务。 ...