?好了现在我们将webservice的实现代码发布到tomcat的axis web应用中。如将你的代码拷贝到axis/WEB-INF/classes下<o:p></o:p>
进入你的deploy.wsdd所在目录。<o:p></o:p>
cd C:\tomcat5\webapps\axis\WEB-INF\classes\com\yy\ws<o:p></o:p>
输入如下命令:<o:p></o:p>
C:\tomcat5\webapps\axis\WEB-INF\classes\com\yy\ws>?? java???? org.apache.axis.client.AdminClient? deploy.wsdd<o:p></o:p>
AdminClient? -一个axis发布工具,会自动地将你的webservice发布到WEB-INF下的server-config.wsdd文件中。如果显示:<o:p></o:p>
Processing file deploy.wsdd
<Admin>Done processing</Admin><o:p></o:p>
则表示发布成功!<o:p></o:p>
?????? 好了,现在我们已经完成了创建和发布过程,接下来我们来进行最后一步工作――调用我们写的webservice!<o:p></o:p>
????? <o:p></o:p>
java 代码<o:p></o:p>
1.????????? package?com.yy.ws.test; ??<o:p></o:p>
2.????????? ??<o:p></o:p>
3.????????? import?java.net.MalformedURLException; ??<o:p></o:p>
4.????????? import?java.rmi.RemoteException; ??<o:p></o:p>
5.????????? ??<o:p></o:p>
6.????????? import?javax.xml.rpc.ServiceException; ??<o:p></o:p>
7.????????? ??<o:p></o:p>
8.????????? import?com.yy.ws.ClientRequest; ??<o:p></o:p>
9.????????? import?com.yy.ws.MobileBoss; ??<o:p></o:p>
10.?????? import?com.yy.ws.MobileBossService; ??<o:p></o:p>
11.?????? import?com.yy.ws.MobileBossServiceLocator; ??<o:p></o:p>
12.?????? import?com.yy.ws.ServerResponse; ??<o:p></o:p>
13.?????? ??<o:p></o:p>
14.?????? public?class?Test?{ ??<o:p></o:p>
15.?????? ????public?static?void?main(String?args[])?throws?ServiceException,?MalformedURLException,?RemoteException{ ??<o:p></o:p>
16.?????? ????????ClientRequest?req?=?new?ClientRequest(); ??<o:p></o:p>
17.?????? ????????req.setAmount(1000); ??<o:p></o:p>
18.?????? ????????req.setOpType("charge"); ??<o:p></o:p>
19.?????? ????????req.setPhoneNumber("13912345678"); ??<o:p></o:p>
20.?????? ????????MobileBossService?sl?=?new?MobileBossServiceLocator(); ??<o:p></o:p>
21.?????? ????????//URL?url?=?new?URL("http://localhost:8080/axis/services/MobileBoss"); ??<o:p></o:p>
22.?????? ????????//s.getMobileBoss(url); ??<o:p></o:p>
23.?????? ????????MobileBoss?mb?=?sl.getMobileBoss();//default?port ??<o:p></o:p>
24.?????? ????????ServerResponse?resp?=?mb.charge(req); ??<o:p></o:p>
25.?????? ????????System.out.println("client?result:"+resp.getResultCode()+"\nclient?message:"+resp.getMessage()); ??<o:p></o:p>
26.?????? ????} ??<o:p></o:p>
27.?????? } ??<o:p></o:p>
?结果如下:<o:p></o:p>
服务器端显示:<o:p></o:p>
13912345678|charge|1000
13912345678is charged successfully!<o:p></o:p>
客户端显示:<o:p></o:p>
client result:8888<o:p></o:p>
client message:13912345678|charge|1000<o:p></o:p>
????? 服务器段成功返回消息,大功告成!不是很难吧?!这篇文章的所有代码我都测试过,全部可以直接使用。希望能够对大家有所帮助。<o:p></o:p>
楼主为什么不在Myeclipse下开发呢?为什么还要配classpath之类的,多麻烦
至于用什么工具开发,不值一提。入门的例子最好用最简单的工具。
是用来做什么的啊!
的时候发生错误:
Exception: AxisFault
faultCode: {http://xml.apache.org/axis/}HTTP
faultSubcode:
faultString: (404)/axis/services/AdminService
faultActor:
faultNode:
faultDetail:
{}:return code: 404
可以看到是没有找到:/axis/services/AdminService
但是我没有在deploy.wsdd里找到哪里有设置/axis/services/AdminService
LZ或者路过的高手给分析一下发生这种错误都可能是哪些原因,谢谢.
java org.apache.axis.client.AdminClient -lhttp://地址:端口/context模块/services/AdminService deploy.wsdd
比如我要返回一个组织类,组织类中有个List用来存放所有的子组织,
类似:
public class OrgBean{ private String orgName; ... private List subOrgs; public void setSubOrgs(List par){ subOrgs = par; } public List getSubOrgs(){ return subOrgs; } }
services类为:
package com.admin.webservices; public class AdminOrgService { //简单说明 public OrgBean getOrgBean() { return new OrgBean(); } }
不知道是否有人遇到过这种情况
不好意思这个问题我在 http://www.iteye.com/topic/104696 也提问过因为很着急所以在此也向大家请教,不过估计看这个主题的都是新手吧.
在用axis2写客户端的时候发现axis2跟axis差异还比较大啊。
大家一般使用axis2和axis中的哪一个啊。
服务端应该发步成功了
我用的是JDK1.6和axis1.4,apache-tomcat6.0.14
可能是哪方面的原因呢?
谢谢