使用Axis2编写webservice客户端,服务端

时间:2022-11-02 20:25:58

1、编写客户端

Axis2开发WebService客户端 的3种方式

【参考帖子】

http://blog.csdn.net/wangjinwei6912/article/details/8512598  报错:org.xml.sax.SAXException: Bad envelope tag: definitions

http://*.com/questions/5548282/org-xml-sax-saxexception-bad-envelope-tag-definitions

http://bbs.csdn.net/topics/210008741

http://blog.csdn.net/wjwwgh/article/details/4349744 报错:SimpleDeserializer encountered a child element, which is NOT expected

2、编写服务端

MyEclipse8.5+Axis2 1.6.2插件安装问题

使用Axis2编写webservice客户端,服务端

【参考资料】

1:axis2 官方安装说明文档  http://axis.apache.org/axis2/java/core/tools/eclipse/plugin-installation.html

2:renxiao2003博文  http://blog.chinaunix.net/uid-78707-id-283547.html

3:myEclipse8.5 安装 axis2 jar 包整理(可下载) http://download.csdn.net/detail/hob007/4457837

   4:MyEclipse 8.5 安装 axis2 插件

  5:http://zwy20034751-163-com.iteye.com/blog/1897809

3、发布webservice服务端

利用axis2工具生成aar文件;然后把生成的arr文件复制到%TOMCAT-HOME%/webapps/axis2/WEB-INF/services下;启动tomcat,浏览器中http://localhost:8080/axis2/services/listServices就可以看到结果了

1、生成步骤 http://www.educity.cn/wenda/138802.html

利用工具生成aar文件

使用Axis2编写webservice客户端,服务端

下面是一个超简单的service,看不懂的同学请举手

package com.demo.service.impl;

import com.demo.service.UserService;

public class UserServiceImpl implements UserService {

@Override public int Login(String username, String password)

{ // TODO Auto-generated method stub

if (username.equals("a") && password.equals("a"))

{ return 1; } return 0;

}

}

选择服务器端项目的classes目录

使用Axis2编写webservice客户端,服务端

使用Axis2编写webservice客户端,服务端

使用Axis2编写webservice客户端,服务端

使用Axis2编写webservice客户端,服务端

使用Axis2编写webservice客户端,服务端

使用Axis2编写webservice客户端,服务端

使用Axis2编写webservice客户端,服务端

2、注意事项:http://www.oschina.net/question/101738_47314

Axis2 Service Archiver 
使用Eclipse插件的时候容易出现的两个错误:
1、UI显示不完整:打开插件界面,窗口只有上面和下面按钮部分,中间信息块丢失了
解决方式:最简单的方法:用鼠标拖动界面,eclipse会自动刷新一次。
根本的解决方式:关闭eclipse,找到workspace/.metadata/.plugins/a目录,删除xis2_service_archiver,再重启。
2、各种ClassNotFound
路径问题,一般都是路径设置出错,打包需要设置两个路径。一是,第一次选择要打包的路径。二是,输入打包的那个service类。
解决方式:在第一次选择路径的时候,注意只选到class这一级,类的包名不选择。
第二次指定service的时候,写好包名。

4、发布到webservice服务端后,用客户端调用时出现的异常

(1)、报错com.coast.foundation.dbutil.DBManager; 这个是所写服务端CoremailService,数据库调用时使用的工具coast.jar包,需要将此包加入%TOMCAT-HOME%/webapps/axis2/

(2)、 报错 Exception occurred while trying to invoke service method loginCheck   *

首先,更改 axis2.xml可以更详细地跟踪错误;

in the axis2.xml ...

<parameter name="sendStacktraceDetailsWithFaults">false</parameter>

set the sendStacktraceDetailsWithFaults parameter to true and you should get a copy of the stacktrace in the response (reset to false for production)

然后,发现是webservice客户端报错:EpDB:Caused by: java.lang.NullPointerException;

webservice服务端报错:数据库连接错误,请联系管理员。

解决方案:一方面是数据库驱动ojdbc14.jar没有放到%TOMCAT_HOME%\webapps\axis2\WEB-INF\lib下面,

二方面是数据库的配置文件jdbc.properties 需要拷贝到%TOMCAT-HOME%/webapps\axis2\WEB-INF\classes下面