首先说明:xfire和axis性能问题
xfire和axis进行比较的话,axis访问速度要快的多,即:axis性能更好(进行测试过)
发布webservice服务及生成客户端代码
使用Eclipse的第一种方式发布服务及生成客户端代码
一、发布webservice 服务:
1、新建项目
Eclipse中新建“动态web项目“
2、增加jar包
将 服务器端_lib目录下的所有jar包 拷贝到工程 lib下(或下载xfire-distribution-1.1.2.zip,),
下载地址:http://xfire.codehaus.org/Download
解压后出现xfire-1.1.2文件夹,将此文件夹下的xfire-all-1.1.2.jar和lib下的所有jar包拷贝到 工程lib下)
用到的jar包如下图:
3、在WebContent下的META-INF目录下 新建xfire文件夹,然后在xfire下建立services.xml,再把整个META-INF目录拖到WEB-INF目录下,目录结构如图:
4、配置services.xml
配置services.xml 将要发布的服务配置一下,下面是发布一个服务类的配置代码:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>serv</name>
<namespace>http://www.com.service/jie</namespace>
<serviceClass>ser.ServImpl</serviceClass>
</service>
</beans>
5、配置web.xml
将下面配置复制到web.xml中即可 :
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/servlet/XFireServlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
6、新建Server 用以部署工程
new 一个 Server ,然后 在工程下右击 》 Run As 》 Run on Server 选择 刚才new的server 运行即可
,加入 工程叫做:test ,打开浏览器输入URL:http://localhost:8080/test/services/serv?wsdl,如果显示wsdl描述那就成功了
二、生成客户端代码:
1、生成客户端代码
Eclipse下新建一个 Web Service Client 下一步 》在 Service definition 文本框输入http://localhost:8080/test/services/serv?wsdl 》 next 》 选择客户端代码放到哪个工程下(在下拉框选择即可)
2、使用客户端调用服务器端的服务
注意:调用服务时一定保证服务器端工程部署在应用服务器下 并且已经启动
因为sebservices.xml中定义了命名空间:<namespace>http://www.com.service/jie</namespace>,所以生成的客户端代码会放在
service.com.www.jie包下(这是Eclipse根据命名空间自动生成的),该包下会生成一些相关的类,此时我们只需要关心一个代理类即可,因为sebservices.xml中定义了 服务名:<name>serv</name> ,所以生成的类的前缀都是 serv(S会变成大写)开头,我们只关心名称为SerPortTypeProxy的代理类,使用方法如下:
SerPortTypeProxy Proxy = new SerPortTypeProxy (); 有了这个代理类我们就可以像在服务器端使用服务类一样调用方法了。
使用Eclipse的第二种方式发布服务及生成客户端代码
一、发布服务
1、发布服务
我们有个动态web项目,里面的某个(和多个)类要发布成webservice服务,假如该类放在test包下,类名为:Myserver ,那么我们就可以这样做:new 一个 Web Service 如下:
选中要发布的类
New 一个Web Service如下图:
点击next 显示如图:(此时在Service implementation框中已经写好test.Myserver)
点击next 选择要发布的方法 如图:
点击 Finish 服务发布完成了。
此时,WebContent下会生成一个wsdl文件夹,该文件夹下生成一个名为:Myserver.wsdl
描述文件(Myserver和我们的服务类名称一样,wsdl为后缀名),该文件便是webservice描述文件,里面已经生成了描述配置,
同时,WEB-INF下生成一个名为:MyserverService文件夹,该文件夹下有一些描述文件,
同时,web.xml中已生成好相关的配置
同时,需要的jar包已经加到工程里,可以去Eclipse工作空间 》工程的lib下去看看
此时的目录结构如下图:
Jar包如下图:
2、新建应用服务器Server
新建server是为了部署工程,因为只有部署到应用服务器中并且应用服务器已启动才能生成客户端
二、生成客户端代码
1、启动应用服务器,
打开浏览器输入URL:
http://localhost:8080/xucuotao/services/Myserver?wsdl 如果描述语言显示出来那么发布服务OK了
2、新建Web S ervice Client 生成客户端代码
选中要存放客户端代码的客户端工程 如图:
New 一个Web S ervice Client 如下图:
点击 next 在Service definition 框输入URL 如下图:
点击 next 在 output folter 下拉框选择 存放客户端代码的工程 如下图:
点击 Finish 客户端代码生成OK了
此时,客户端工程的src目录下生成test目录 该目录下是生成的一些客户端类 如图:
我们只关注其中的MyserverProxy代理类(Myserver和服务类名称一样,后面是proxy,说明是一个代理类),至于如何调用请阅读下面文字
3、客户端调用webservice服务
再生产的一些类中,我们只关注其中的MyserverProxy代理类,使用方法如下:
有了该代理类就像在服务器端 使用 服务类一样,直接调用方法即可 如下:
MyserverProxy proxy =new MyserverProxy();
public class Test {
public static void main(String[] args) {
MyserverProxy proxy =new MyserverProxy();
try {
System.out.println(proxy.getDateBase("zhaoshijie赵士杰"));
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
运行结果如下图:
三、使用MyEclipse发布webservice服务及生成客户端代码
1、发布服务
直接新建 Web Service Project 如下图:
然后新建Web Service (注意要用 MyEclipse 下的 Web Service) 如下图:
点击 next 选择服务类 放到哪个工程 如下图: 放到 ser 工程
并打钩 create new java bean (意思是建立一个新的服务类)
点击 next 在seb service name 框输入:Myservice
在 java package 新建服务类存放的包:serviceTest 此时如下图:
点击 Finish 完成了
2、生成客户端代码
有时间写一下
分享到:
相关推荐
使用XFire根据WSDL生成客户端代码,可以大大简化开发过程,因为它自动生成了与服务接口对应的Java类和代理。以下是具体步骤: 1. **安装和配置XFire**:首先,确保已经下载并安装了XFire库。你可以通过Maven或...
总结,XFire客户端生成是Java开发Web服务客户端的一种高效方式,通过自动化的代码生成,开发者可以快速地接入并调用Web服务,大大减少了手动编写客户端代码的工作量。在实际开发中,结合Spring等框架,可以构建出...
在本案例中,"Xfire的client.zip"是一个包含了Xfire客户端代码的压缩包,主要用于调用Web服务。 Xfire客户端代码是实现与Xfire服务器通信的代码库,它可能包含了多种语言的实现,如Java、C#或Python等。这些代码...
运行这个工具,指定服务的WSDL URL,它会生成相应的Java客户端代码。 2. **导入客户端代码**:将生成的客户端代理类添加到你的项目中,并配置必要的依赖。 3. **调用服务**:在你的客户端代码中,实例化客户端代理...
一旦WSDL文件被成功导入,XFire插件将自动生成与Web服务相关的客户端代码。这些代码通常包括接口定义、存根类和服务代理类等,可以直接用于调用Web服务。 #### 步骤四:测试和调用Web服务 最后,可以在Java项目中...
- 配置Xfire的XML配置文件,例如`xfire-config.xml`,定义服务端点地址和服务行为。 6. **测试Web服务** - 使用MyEclipse的内置Web服务工具,如WSDL生成器,生成服务的接口定义文档。 - 通过POSTMAN或其他HTTP...
它提供了全面的工具集,包括自动代码生成、强大的数据绑定和灵活的配置选项,使开发者能够快速地创建符合SOAP标准的Web服务。 标题中的“xfire客户端包含所需要的jar”指的是,为了使用XFire客户端功能,你需要一...
1. **自动代码生成**:插件能够自动生成服务客户端和服务器端的代码,大大减少了开发者的手动工作量。只需提供WSDL(Web服务描述语言)文件,插件就能生成相应的Java代理类,使得调用Web服务如同调用本地方法一样...
2. **客户端代码**:使用axis1生成的客户端代理类,这些类负责调用服务端的方法,处理响应,并可能包含必要的配置文件,如wsdlURL和服务端点地址。 3. **依赖的jar包**:项目所需的第三方库,包括xfire和axis的相关...
Xfire是Apache CXF项目的前身,它简化了Web服务的开发流程,提供了强大的XML绑定和自动代码生成功能。Xfire支持JAXB(Java Architecture for XML Binding)和Aegis两种数据绑定机制,可以方便地将Java对象转换为XML...
- 虽然XFire在发布和调用Web服务方面提供了便利,但它的功能相对有限。Java API for XML Web Services (JAX-WS)是Java平台的标准,提供了更广泛的Web服务支持,包括自动代码生成和协议绑定。 - JAX-WS通过注解和...
编写Java接口和服务实现 - 在`src/hello`包中创建接口类`IHelloService.java`和其实现类`HelloService.java`。 - `HelloService.java`代码示例: ```java package hello; public class HelloService implements...
【标题】:“xfire发布webservice服务” 在Java开发中,XFire是一个早期流行的Web服务...通过学习这篇博客和分析示例项目,开发者可以快速掌握使用XFire发布Web服务的基本流程,为后续的Web服务开发打下坚实的基础。
在XFire客户端调用实现中,首先需要获取到Web服务的WSDL文件,这个文件描述了服务的接口、方法、参数和返回类型。通过XFire提供的工具,我们可以根据WSDL生成对应的客户端代理类。这些代理类封装了调用远程服务的...
在Xfire中,XML-RPC为服务端提供了发布和调用远程方法的能力,而客户端则可以订阅并执行这些远程方法。 在创建服务端时,你需要配置一个基于Xfire的Servlet,该Servlet将在Tomcat这样的Servlet容器中运行。这通常...
4. **自动代码生成**:Xfire能够自动生成服务接口和客户端代理类,减少了手动编码的工作。 **配置过程**: 在Spring 2.5中集成Xfire通常涉及以下几个步骤: 1. **添加依赖**:在项目中引入Spring和Xfire的相关库。 ...
【xfire发布和调用demo】是一个用于演示如何使用Xfire框架发布和调用Web服务的实例。Xfire是一款早期的Java Web服务框架,它提供了一种简单的方式来创建、部署和消费SOAP服务。在这个示例中,我们不仅可以看到服务端...
4. 在Xfire客户端代码中实例化并调用生成的代理类,传递必要的参数以执行Web服务操作。 5. 处理返回的结果,将数据展示或用于客户端逻辑。 在实际开发中,可能还需要考虑错误处理、安全性和性能优化等问题。例如,...
XFire提供了生成WSDL文件的功能,允许开发者从Java类或者接口自动生成对应的WSDL定义,以便于服务的发布和消费。 在描述中提到"工作的地方不能上网更新",这意味着在离线环境下使用XFire插件生成WSDL文件。在这种...