WSDL2Java操作指南

简介: 1. 安装JDK1.5, 配置系统环境变量:     下载安装JDK后, 设置环境变量:     JAVA_HOME=C:\Program Files\Java\jdk1.5.0_02     Path=%Path%;%JAVA_HOME%\bin(这里的%Path%指你系统已经有的一系列配置)     CLASSPATH=%JAVA_HOME%\lib  2. 下载axis,
1. 安装JDK1.5, 配置系统环境变量: 
   下载安装JDK后, 设置环境变量: 
   JAVA_HOME=C:\Program Files\Java\jdk1.5.0_02 
   Path=%Path%;%JAVA_HOME%\bin(这里的%Path%指你系统已经有的一系列配置) 
   CLASSPATH=%JAVA_HOME%\lib 
2. 下载axis, 配置系统环境变量: 
   下载axis后,配置如下: 
   AXIS_LIB=F:\Java\axis\axis-1_4\lib 
   然后在CLASSPATH里添加axis的8个jar: 
   CLASSPATH=%JAVA_HOME%\lib; 
%AXIS_LIB%\axis.jar; 
%AXIS_LIB%\axis-ant.jar; 
%AXIS_LIB%\commons-discovery-0.2.jar; 
%AXIS_LIB%\commons-logging-1.0.4.jar; 
%AXIS_LIB%\jaxrpc.jar; 
%AXIS_LIB%\log4j-1.2.8.jar; 
%AXIS_LIB%\saaj.jar; 
%AXIS_LIB%\wsdl4j-1.5.1.jar; 
   
3. 添加附加的3个jar: 
   自己去获取activation.jar, mail.jar, xerces.jar, 放到AXIS_LIB所指的目录下, 
然后在CLASSPATH里添加: 
   CLASSPATH=%JAVA_HOME%\lib; 
%AXIS_LIB%\axis.jar; 
%AXIS_LIB%\axis-ant.jar; 
%AXIS_LIB%\commons-discovery-0.2.jar; 
%AXIS_LIB%\commons-logging-1.0.4.jar; 
%AXIS_LIB%\jaxrpc.jar; 
%AXIS_LIB%\log4j-1.2.8.jar; 
%AXIS_LIB%\saaj.jar; 
%AXIS_LIB%\wsdl4j-1.5.1.jar; 
%AXIS_LIB%\activation.jar; 
%AXIS_LIB%\mail.jar; 
%AXIS_LIB%\xerces.jar 
4. 获取或者自己编写wsdl文件 
5. 生成webservice服务器端的代码: 
   5.1 先看命令的帮助, 在cmd.exe的提示符执行:java org.apache.axis.wsdl.WSDL2Java -h 
       我可以看到很多选项,其中就有-s和-S 
   5.2 执行WSDL2Java, 生成skeleton类: 
       java org.apache.axis.wsdl.WSDL2Java -s -S true BluePower.wsdl 
       将生成:  A skeleton class 
                  An implementation template class 
                  One deploy.wsdd file 
                  One undeploy.wsdd file 
   5.3 执行WSDL2Java, 不生成skeleton类: 
       java org.apache.axis.wsdl.WSDL2Java -s BluePower.wsdl 
       将生成:  
                  An implementation template class 
                  One deploy.wsdd file 
                  One undeploy.wsdd file 
       (我们发现少了一个A skeleton class) 
   5.4 名字解释: 
   Skeleton class: 
      它是Axis engine 和 the actual service implementation 类之间的一个代理类。 
       The skeleton contains an implementation of the AddressBook service. 
       This implementation is either passed into the skeleton on construction, 
       or an instance of the generated implementation is created. 
       When the Axis engine calls the skeleton's addEntry method, 
       it simply delegates the invocation to the real implementation's addEntry method. 
   Implementation Template class: 
       它就是我们的实际服务器端的实现代码,我们要在不同的方法里写具体的实现处理。 
       
6. 根据deploy.wsdd生成server-config.wsdd: 
  这里比较模糊,我暂时的方法是: 
  先部署一个web服务器,如用resin,然后把第5步生成的类文件放到classes下(eclipse可以指定编译路径), 
  把deploy.wsdd放到classes上一目录,也就是WEB-INF下,运行命令: 
  java -cp %AXIS_CLASSPATH% org.apache.axis.client.AdminClient -lhttp://localhost:8080/test/services/MyServer deploy.wsdd 
  若出现:<Admin>Done processing</Admin>则成功,若出现失败,则具体情况具体分析。 
  成功后,当前目录就会生成server-config.wsdd文件。 
  注意:为什么这里用%AXIS_CLASSPATH%, 因为直接把这些jar配置在CLASSPATH里,调用log4j时有冲突。最好不要放到CLASSPATH 
  
7. server-config.wsdd文件里的未解决的数组类型问题: 
  若接口参数或返回值有数组,则会生成ArrayMapping的配置,而在resin下配置axis的servlet去装载,就是不行。
  暂时的解决方法是,把这些数组类型就声明为一般类型,就能装载了;客户端用数组类型访问,服务器也能正常 
  解析出来,返回给客户端的数组类型,客户端也能正常解析。
目录
相关文章
|
9天前
|
存储 Java 数据库连接
java多线程之线程通信
java多线程之线程通信
|
10天前
|
安全 Java 开发者
深入理解Java并发编程:线程安全与性能优化
【4月更文挑战第9天】本文将深入探讨Java并发编程的核心概念,包括线程安全和性能优化。我们将详细解析Java中的同步机制,包括synchronized关键字、Lock接口以及并发集合等,并探讨它们如何影响程序的性能。此外,我们还将讨论Java内存模型,以及它如何影响并发程序的行为。最后,我们将提供一些实用的并发编程技巧和最佳实践,帮助开发者编写出既线程安全又高效的Java程序。
22 3
|
13天前
|
设计模式 安全 Java
Java并发编程实战:使用synchronized关键字实现线程安全
【4月更文挑战第6天】Java中的`synchronized`关键字用于处理多线程并发,确保共享资源的线程安全。它可以修饰方法或代码块,实现互斥访问。当用于方法时,锁定对象实例或类对象;用于代码块时,锁定指定对象。过度使用可能导致性能问题,应注意避免锁持有时间过长、死锁,并考虑使用`java.util.concurrent`包中的高级工具。正确理解和使用`synchronized`是编写线程安全程序的关键。
|
11天前
|
Java
Java 并发编程:深入理解线程池
【4月更文挑战第8天】本文将深入探讨 Java 中的线程池技术,包括其工作原理、优势以及如何使用。线程池是 Java 并发编程的重要工具,它可以有效地管理和控制线程的执行,提高系统性能。通过本文的学习,读者将对线程池有更深入的理解,并能在实际开发中灵活运用。
|
9天前
|
算法 Java 开发者
Java中的多线程编程:概念、实现与性能优化
【4月更文挑战第9天】在Java编程中,多线程是一种强大的工具,它允许开发者创建并发执行的程序,提高系统的响应性和吞吐量。本文将深入探讨Java多线程的核心概念,包括线程的生命周期、线程同步机制以及线程池的使用。接着,我们将展示如何通过继承Thread类和实现Runnable接口来创建线程,并讨论各自的优缺点。此外,文章还将介绍高级主题,如死锁的预防、避免和检测,以及如何使用并发集合和原子变量来提高多线程程序的性能和安全性。最后,我们将提供一些实用的性能优化技巧,帮助开发者编写出更高效、更稳定的多线程应用程序。
|
7天前
|
安全 算法 Java
深入理解Java并发编程:线程安全与性能优化
【4月更文挑战第11天】 在Java中,高效的并发编程是提升应用性能和响应能力的关键。本文将探讨Java并发的核心概念,包括线程安全、锁机制、线程池以及并发集合等,同时提供实用的编程技巧和最佳实践,帮助开发者在保证线程安全的前提下,优化程序性能。我们将通过分析常见的并发问题,如竞态条件、死锁,以及如何利用现代Java并发工具来避免这些问题,从而构建更加健壮和高效的多线程应用程序。
|
11天前
|
Java
Java并发编程:深入理解线程池
【4月更文挑战第7天】在现代软件开发中,多线程编程已经成为一种不可或缺的技术。为了提高程序性能和资源利用率,Java提供了线程池这一强大工具。本文将深入探讨Java线程池的原理、使用方法以及如何根据实际需求定制线程池,帮助读者更好地理解和应用线程池技术。
15 0
|
2天前
|
存储 安全 Java
Java中的容器,线程安全和线程不安全
Java中的容器,线程安全和线程不安全
9 1
|
3天前
|
设计模式 运维 安全
深入理解Java并发编程:线程安全与性能优化
【4月更文挑战第15天】在Java开发中,多线程编程是提升应用程序性能和响应能力的关键手段。然而,它伴随着诸多挑战,尤其是在保证线程安全的同时如何避免性能瓶颈。本文将探讨Java并发编程的核心概念,包括同步机制、锁优化、线程池使用以及并发集合等,旨在为开发者提供实用的线程安全策略和性能优化技巧。通过实例分析和最佳实践的分享,我们的目标是帮助读者构建既高效又可靠的多线程应用。
|
5天前
|
Java 程序员 编译器
Java中的线程同步与锁优化策略
【4月更文挑战第14天】在多线程编程中,线程同步是确保数据一致性和程序正确性的关键。Java提供了多种机制来实现线程同步,其中最常用的是synchronized关键字和Lock接口。本文将深入探讨Java中的线程同步问题,并分析如何通过锁优化策略提高程序性能。我们将首先介绍线程同步的基本概念,然后详细讨论synchronized和Lock的使用及优缺点,最后探讨一些锁优化技巧,如锁粗化、锁消除和读写锁等。