Java 编写 Web Service——使用axis && axis2 (续)
2014-05-26 23:47
423 查看
使用axis2进行webservice的编写:
axis2感觉和axis1完全不一样,更智能化,但。。。越智能越摸不透了
1、下载axis2-1.6.2-bin、axis2-1.6.2-war 、axis2-eclipse-service-plugin-1.6.2.zip 三个包,下载地址 http后面是
axis2-1.6.2-war.zip
axis2-1.6.2-bin.zip
axis2-eclipse-service-plugin-1.6.2.zip
(该文件加压后,将plugin文件放到eclipse的plugins目录下,重启eclipse)
2、解压axis2-1.6.2-bin.zip,lib目录下是axis2的类库,需要加载到项目中
3、解压axis2-1.6.2-war.zip,发现下面有一个文档叫axis2.war的文件,很重要,
将此文件直接copy到tomcat的webapps目录下,当重新开启tomcat时,此文件将会被自动加载,
且在webapps目录下面会新生成一个axis2的项目 文件夹,一个完整的项目
应该有axis2-web、META-INF、org、WEB-INF四个目录,其中axis2-web与axis2-1.6.2-bin.zip中的一致
4、运行如下url ,显示如下,可以点击进Services
5、进行webservice文件的编译:
右键项目名称,点击new,选择(回顾第一点的第三个文件,原本eclipse下面是没有该选项的)
按照步骤,先选择tomcat下要项目的web-inf\class文件夹,“Include.class file only”应该是勾选状态,
Next(点选skip Wsdl),
next,
next(此处让配置xml文件,可以选择“Generate....”,不用配置,后面介绍干嘛用的),
next (Outfilelocation:选择路径xxx\tomcat\webapps\axis2\web-inf\services,这里的就是自动将webservice生效文件直接生成到了axis2的目录下面)
(output File name:填写webservice的名称 whinfo),点击 Finish,完成配置
到xxx\tomcat\webapps\axis2\web-inf\services下面看到一个新的文件whinfo.arr,可以解压缩,发现其实就是将我们整个项目的class全部压缩进来了
所以axis2在调用webservice的时候可以说和原项目根本没有关系,只和webapps/axis2有关 ,原来的项目全被打包放进来了
其中whinfo.arr中有met-inf文件夹下的 service.xml文件,可以进行一些webservice参数的配置,如targetnamespace之类的
以上,全部完成,使用之前一篇的客户端进行连接,测试ok(可以直接用ie测试,在url后面加上?message=xxxxxxxxxxxxxx)
但是,使用客户提供的程式确无法连接,参数传不过来,报arrayindexout错误。。。实在无语,搜索很多文章都没能够解决
客户的程式是用axis编写的,不知道是否和这个有关
之前用C#.NET、VB.net编写的同样的webservice也都是,自己测试完全ok,但是客户的程式一旦调用就收不到参数。。。。。。。。。
可能是webservice的某些参数没有确认到
axis2感觉和axis1完全不一样,更智能化,但。。。越智能越摸不透了
1、下载axis2-1.6.2-bin、axis2-1.6.2-war 、axis2-eclipse-service-plugin-1.6.2.zip 三个包,下载地址 http后面是
axis2-1.6.2-war.zip
axis2-1.6.2-bin.zip
axis2-eclipse-service-plugin-1.6.2.zip
(该文件加压后,将plugin文件放到eclipse的plugins目录下,重启eclipse)
2、解压axis2-1.6.2-bin.zip,lib目录下是axis2的类库,需要加载到项目中
3、解压axis2-1.6.2-war.zip,发现下面有一个文档叫axis2.war的文件,很重要,
将此文件直接copy到tomcat的webapps目录下,当重新开启tomcat时,此文件将会被自动加载,
且在webapps目录下面会新生成一个axis2的项目 文件夹,一个完整的项目
应该有axis2-web、META-INF、org、WEB-INF四个目录,其中axis2-web与axis2-1.6.2-bin.zip中的一致
4、运行如下url ,显示如下,可以点击进Services
5、进行webservice文件的编译:
右键项目名称,点击new,选择(回顾第一点的第三个文件,原本eclipse下面是没有该选项的)
按照步骤,先选择tomcat下要项目的web-inf\class文件夹,“Include.class file only”应该是勾选状态,
Next(点选skip Wsdl),
next,
next(此处让配置xml文件,可以选择“Generate....”,不用配置,后面介绍干嘛用的),
next (Outfilelocation:选择路径xxx\tomcat\webapps\axis2\web-inf\services,这里的就是自动将webservice生效文件直接生成到了axis2的目录下面)
(output File name:填写webservice的名称 whinfo),点击 Finish,完成配置
到xxx\tomcat\webapps\axis2\web-inf\services下面看到一个新的文件whinfo.arr,可以解压缩,发现其实就是将我们整个项目的class全部压缩进来了
所以axis2在调用webservice的时候可以说和原项目根本没有关系,只和webapps/axis2有关 ,原来的项目全被打包放进来了
其中whinfo.arr中有met-inf文件夹下的 service.xml文件,可以进行一些webservice参数的配置,如targetnamespace之类的
以上,全部完成,使用之前一篇的客户端进行连接,测试ok(可以直接用ie测试,在url后面加上?message=xxxxxxxxxxxxxx)
但是,使用客户提供的程式确无法连接,参数传不过来,报arrayindexout错误。。。实在无语,搜索很多文章都没能够解决
客户的程式是用axis编写的,不知道是否和这个有关
之前用C#.NET、VB.net编写的同样的webservice也都是,自己测试完全ok,但是客户的程式一旦调用就收不到参数。。。。。。。。。
可能是webservice的某些参数没有确认到
相关文章推荐
- Java 编写 Web Service——使用axis && axis2
- Java使用Axis2调用NET编写的WCFService问题
- 使用Axis插件来从WSDL文件生成代码时"An error occurred while completing process -java.lang.reflect.InvocationTargetException"的错误
- JAVA中使用HTTP 1.1提高基于AXIS 1.4的web service的性能
- Linux底下在Eclipse中将Java工程生成Web Service接口(Axis和Axis2)
- 编写 "纯HTML" jsp应用--学会使用 JSTL
- JAVA 使用哈希表操作数据库的例子 Using Hashtables to Store & Extract results from a Database.
- 如何使用Java编写NT服务
- 使用SOAP开发java web服务--Axis开发方案
- 使用UML编写Java应用程序
- 如何使用Java编写多线程程序
- 使用Java编写oracle存储过程
- 使用UML编写Java应用程序
- java 使用Axis开发Webservice应用程序
- JDK1.5使用总结 --《Java 1.5 Tiger: A Developer's Notebook》
- 编写 "纯HTML" jsp应用--学会使用 JSTL
- 使用JWSDP完成Web Service在java的入门(一)
- 使用Java将Word转为Html或txt等···
- 在java中使用mac的look & feel
- Java Tip 96: 使用 HTTPS 编写客户端程序