首先说明: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生成客户端代码.rar
xfire客户端生成自动生成java代码调用
xfire webserivce客户端 jar
用java通过xfire框架实现ws,实现正向生成wsdl文件,并由wsdl逆向生成java ws客户端代码 测试输入:http://localhost:8080/webservice-xfire/services/CalculatorService?wsdl
xfire创建服务端客户端源码,包括了里面的jar,我的运行环境是jdk1.7和tomcat6,jdk1.6也试过,是可以的。
activation.jar commons-logging.jar jdom-1.0.jar spring.jar spring-mock.jar stax-api-1.0.1.jar stax-utils-snapshot-20040917.jar ...服务器端、客户端代码辅助生成; 对Spring、Pico、Plexus等项目的支持等。
xfire 的学习笔记,包括如何生成webservice客户端代码,如何集成spring框架以及常见异常的处理
xfire 是一个webservice框架,可以使用它搭建webservice服务,也可以使用它生成客户端代码。
用于Webservice的解析,并生成本地客户端代码 安装博客参考:http://t.csdn.cn/lwFev
webservice客户端几种方式调用汇总,客户端代码生成及调用方式详细说明等
我们都知道java的web项目可以对外发布webService服务和http服务,通过xfire只可以很方便的发布webService服务,但是java发布http服务一直不方便。通过java原生的servlet发布http服务可以方便其它平台调用,但是编程...
支持将Web服务绑定到POJO、XMLBeans、JAXB1.1、JAXB2.0和Castor; 支持基于HTTP、JMS、XMPP等多种协议访问Web服务;... 服务器端、客户端代码辅助生成; 对Spring、Pico、Plexus等项目的支持等。
2、使用已安装的插件进行客户端代码生成........................................................................ 20 4、编写调用代码,调用服务.................................................................
webservice模板 打击可以看一看 这样webservice调用就成功了, 其实客户端可以通过在Eclipse安装Xfire插件,添加WDSL路径自动生成webservice客户端代码,不过遇到个问题很久没解决如下:
集成soapUI快速生成客户端,CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要...
3.9. 粘合代码和可怕的singleton 3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext 3.11. 基于注解(Annotation-based)的配置 3.11.1. @Autowired 3.11.2. 基于注解的自动连接微调 3.11.3. ...
3.9. 粘合代码和可怕的singleton 3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext 3.11. 基于注解(Annotation-based)的配置 3.11.1. @Autowired 3.11.2. 基于注解的自动连接微调 3.11.3. ...
使用XFire来暴露Web服务 17.6. 对远程接口不提供自动探测 17.7. 在选择这些技术时的一些考虑 18. Enterprise Java Bean(EJB)集成 18.1. 简介 18.2. 访问EJB 18.2.1. 概念 18.2.2. 访问本地的无状态Session ...
3.9. 粘合代码和可怕的singleton 3.9.1. 使用Singleton-helper类 4. 资源 4.1. 简介 4.2. Resource 接口 4.3. 内置 Resource 实现 4.3.1. UrlResource 4.3.2. ClassPathResource 4.3.3. FileSystemResource 4.3.4...