1、编写客户端

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

【参考帖子】

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

http://stackoverflow.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插件安装问题

【参考资料】

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文件

下面是一个超简单的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目录

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   stackoverflow

首先,更改 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下面

使用Axis2编写webservice客户端,服务端的更多相关文章

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

    Axis2开发WebService客户端 的3种方式 在dos命令下   wsdl2java        -uri    wsdl的地址(网络上或者本地)   -p  com.whir.ezoffi ...

  2. [并发并行]_[线程模型]_[Pthread线程使用模型之三 客户端/服务端模型(Client/Server]

    Pthread线程使用模型之三 客户端/服务端模型(Client/Server) 场景 1.在客户端/服务端模型时,客户端向服务端请求一些数据集的操作. 服务端执行执行操作独立的(多进程或跨网络)– ...

  3. win10操作系统下oracle11g客户端/服务端的下载安装配置卸载总结

    win10操作系统下oracle11g客户端/服务端的下载安装配置卸载总结 一:前提 注意:现在有两种安装的方式 1. oracle11g服务端(64位)+oracle客户端(32位)+plsql(3 ...

  4. 使用Thrift RPC编写程序(服务端和客户端)

    1. Thrift类介绍 Thrift代码包(位于thrift-0.6.1/lib/cpp/src)有以下几个目录: concurrency:并发和时钟管理方面的库processor:Processo ...

  5. WebService从服务端到客户端的用例

    1.首先编写Wsdl(基于契约优先的方式),要注意的是命名空间(若是使用include或import)最好使用一致的,代码如下: <?xml version="1.0" en ...

  6. spring mvc + mybaties + mysql 完美整合cxf 实现webservice接口 (服务端、客户端)

    spring-3.1.2.cxf-3.1.3.mybaties.mysql 整合实现webservice需要的完整jar文件 地址:http://download.csdn.net/detail/xu ...

  7. 采用RPC方式和document方式 开发Axis2的WebService客户端

    import javax.xml.namespace.QName; import org.apache.axiom.om.OMAbstractFactory; import org.apache.ax ...

  8. webservice调用服务端数据时给soapenv:Envelope 添加自定义的命名空间

    最近做第三方接口,服务端需要 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/&qu ...

  9. WebService学习之旅(六)使用Apache Axis2实现WebService客户端调用

    上节介绍了如何使用Axis2 发布一个WebService,Axis2除了为我们编写WebService应用带来了便利,也同样简化的客户端调用的过程,本节在上节的基础上使用Axis2自带的工具生成客户 ...

随机推荐

  1. Docker 修改默认存储位置

    首先使用 docker info 查看 docker 的基本信息 sudo docker info Containers: 0 Images: 5 Storage Driver: devicemapp ...

  2. Visual Studio示例代码浏览器

    https://visualstudiogallery.msdn.microsoft.com/4934b087-e6cc-44dd-b992-a71f00a2a6df

  3. Python之路【第七篇】:初识Socket

    What is Socket 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. Socket的英文原义是“孔”或“插座”.作为BSD UNIX的进程通信机制, ...

  4. Python开发【第十六篇】:AJAX全套

    概述 对于WEB应用程序:用户浏览器发送请求,服务器接收并处理请求,然后返回结果,往往返回就是字符串(HTML),浏览器将字符串(HTML)渲染并显示浏览器上. 1.传统的Web应用 一个简单操作需要 ...

  5. Yii2.0中文开发向导——Yii2中多表关联查询(join、joinwith)(转)

    我们用实例来说明这一部分 表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer   (id  customer_name) 订单表Order          (id  order_ ...

  6. [C#基础]c#中的BeginInvoke和EndEndInvoke

    摘要 异步这东西,真正用起来的时候,发现事情还是挺多的,最近在项目中用到了异步的知识,发现对它还是不了解,处理起来,走了不少弯路.觉得还是补一补还是很有必要的. MSDN原文地址:https://ms ...

  7. [译]git init

    git init git init命令用来创建一个新的Git仓储.可以用在一个已经存在的但是没有受Git版本控制的项目,或者用来初始化一个全新的没有任何文件的空仓储.git init通常是你开始一个新 ...

  8. KNN-实现文本分类

    现在大多程序.关于算法的都封装的差不多了... 所以很多程序猿很少来进行深入来研究了... 以前也想过自己好好学习下.但是理论确实难以下咽.怪我喽... 这次项目中需要用到了.要实现对文本进行分类的一 ...

  9. Redis安装和使用

    新年伊始,万象更新.祝大家:新的一年,工作顺利,生活越来越美好. http://www.redis.cn/commands.html http://try.redis.io/ http://www.c ...

  10. CodeForces 353B Two Heaps

    B. Two Heaps   Valera has 2·n cubes, each cube contains an integer from 10 to 99. He arbitrarily cho ...