java axis1.4

转载http://blog.csdn.net/songdexv/article/details/7827289

最近需要使用axis根据wsdl文件生成客户端代码,由于axis不像axis2中有WDSL2Java这个脚本,而且在使用axis中的WDSL2Java类时,碰到了一些问题,主要就是类路径的问题,按照网上说的使用java 命令来运行,但是总是报错说WDSL2Java类找不到,后面发现如果在eclipse里面做这件事的话简直太容易了。

一 . 下载axis-1.4.1-bin.zip,下载地址是http://www.apache.org/dyn/closer.cgi/ws/axis/1_4.解压,要用到lib里的所有jar包,但是这里还不够,还要再另外下载几个,activation.jar, mail.jar, xmlsec-1.2.1.jar, xalan.jar.

二.eclipse里进行第二个步骤,新建一个工程,然后将刚才提到的所有jar包引入,找到axis.jar里的WSDL2Java.class文件,这个class是可以右键run的.

三 . 右键点击WSDL2Java.class -- run us -- run Configurations -- Arguments,Program argument.这里是给main传参数的,在这里参数自然就是wsdl文件的位置了.输入-p packagename -u XXX\XX.wsdl,(XXX代表路径),或者wsdl地址也可以

搞定,就是这样了,run一下就ok了,工程目录下会有自动生成的java文件


四。

以前项目上用到webservice都是我们服务端提供wdsl,现在集团统一下发了wdsl。刚接手一时还不知道怎么弄,在网上查了很多资料。

当然AXis的WSDL2Java在网上有很多资料,但是我看到有些网友说需要JDK1.5,让我迷茫了一些时间(我们项目比较老,用的jdk1.4)。

慢慢了解了WSDL2Java后,才知道,自己以前对webservice服务有多么陌生,虽然现在也是一知半解,^_^。

测试环境:

jdk1.4、axis1.4

1,新建web工程 webservice

2,把axis1.4下的所有jar包导入classpath

3,把已知的wsdl文件放入工程的web-info/下(目录不是随意)

4,写一简单的批处理文件wsdl2Java.bat(也可一再dos下进行)

[java] view plaincopy
set Axis_Lib=E:/workspace/cattsoft/csm/webservice/WebRoot/WEB-INF/lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% org.apache.axis.wsdl.WSDL2Java
set Output_Path=E:/workspace/cattsoft/csm/cust/src
%Java_Cmd% -o%Output_Path% --server-side GrpAcctInfoSer.wsdl
双击wsdl2Java.bat文件,会生成服务端和客户端代码

还会生成部署文件:deploy.wsdd,卸载文件:undeploy.wsdd

5,从下载的axis1.4的jar包中找到web.xml覆盖工程中的web.xml,相当于配置访问的servlet

6,部署工程,并启动服务器。把deploy.wsdd复制到部署路劲的web-info下,利用org.apache.axis.client.AdminClient 命令生成server-config.wsdd文件

cmd到deploy.wsdd的位置:

[java] view plaincopy
java -cp %AXIS_CLASSPATH% org.apache.axis.client.AdminClient -lhttp://localhost:8080/test/services/MyServer deploy.wsdd
AXIS_CLASSPATH:在环境变量中配置的类路径,指向axis下的所有jar包

生成server-config.wsdd文件后,访问:

[html] view plaincopy
http://localhost:7001/servlet/AxisServlet
就会现实服务列表。

注:我当时做到这一步时,访问wsdl时报错:

Fault - makeTypeElement() was told to create a type "{http://ws.chinaunicom.cn/GrpAcctInfoSer/unibssBody/syncGrpAccountInfoReq}>>cust_infos>cust_info", with no containing element

困扰我好久,还是google给力,好像是axis的一个bug,虽然用浏览器访问不了wsdl,但是客户端访问是正常的。

解决方案连接:



[html] view plaincopy
http://www.coderanch.com/t/222942/Web-Services/java/Developing-Web-Services-Apache-A
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.TOMCAT+AXIS的安装配置 首先机子上应该安装JDK1.5版本以上(带有XML解析包)。我这里是1.5.0.6 从APACHE的官方网站(www.apache.org)下载TOMCAT安装软件。下载版本要在4.0以上。这里用的是5.0版本。安装完后,启动TOMCAT,访问http://localhost:8080/安装成功应该出现Apache启动页面。以下用TOMCAT_HOME表示TOMCAT的安装主目录。 解压缩AXIS软件包(这里为1.4版本axis.war包)。 将axis项目放在某个盘的根目录下,(因在tomcat的安装目录在版本号前有个空格,配置axis环境变量时系统认不到对应的变量路径) 如:D:\axis;然后在TOMCAT的server.xml的添加项目加载的<Context>: <Context path="/axis" docBase="D:/axis" debug="0" reloadable="true" crossContext="true"></Context> 重新启动TOMCAT,访问http://localhost:8080/axis/,出现Apache-Axis启动页面。点击链接Validation进入页面。上面会显示已经找到的jar包和未找到的jar包。对于未找到的jar包。可以从它提示的链接中下载。我缺少activation.jar,mail.jar,xerces.jar这里在可选组件(optional components)中提示缺少xml-security包。从它提示的地址下载软件包后,解压缩后在lib文件夹下,将xalan.jar和xmlsec-1.2.1.jar复制到TOMCAT_HOME\webapps\axis\WEB-INF\lib下。重新启动TOMCAT,再点击链接Validation进入页面后。将没有未找到包的提示了。 接下来配置类路径。右键点击我的电脑——属性——高级——环境变量。在系统变量中选择ClassPath进行编辑。增加下列类路径(以“;”间隔符)。 D:\axis\WEB-INF\lib\activation.jar; D:\axis\WEB-INF\lib\axis.jar; D:\axis\WEB-INF\lib\axis-ant.jar; D:\axis\WEB-INF\lib\axis-schema.jar; D:\axis\WEB-INF\lib\commons-discovery-0.2.jar; D:\axis\WEB-INF\lib\commons-logging-1.0.4.jar; D:\axis\WEB-INF\lib\jaxrpc.jar; D:\axis\WEB-INF\lib\log4j-1.2.8.jar; D:\axis\WEB-INF\lib\mail.jar; D:\axis\WEB-INF\lib\saaj.jar; D:\axis\WEB-INF\lib\wsdl4j-1.5.1.jar; D:\axis\WEB-INF\lib\xmlsec.jar 启动TOMCAT,浏览器输入http://localhost:8080/axis/HelloWorldService.jws?wsdl 会出现wsdl页面。说明可以提供正常服务了。 现在可以制作客户端了程序了, 命令参数的形式: java org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/HelloWorldService.jws?wsdl -p test.webservice -o C:\prj 参数说明: -p 指定生成的java文件包名 (可省略默认为 HelloWorldService内的包名路径) -o 指定生成的java文件输出目录 如果你看到这样的画面就表示正常运作并自动产生四个.JAVA的档案了,如果出现 org/apache/...CLASS NOT FOUND之类的话可能你的ClASSPATH设置的有问题。 在C:\prj\localhost\axis\HelloWorldService_jws下面产生以下四个文件 HelloWorldService.java HelloWorldServiceService.java HelloWorldServiceServiceLocator.java HelloWorldServiceSoapBindingStub.java 现在可以将以上生成的四个类进行调用已发布的webservice 注:HelloWorldService 的webservice已经创建在axis1.4.rar包内,只要运行axis项目即可访问到该webservice

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值