java webservice接口开发

本文详细介绍了使用Axis2开发WebService的方法,包括直接实现业务逻辑和使用WSDL2JavaTool工具两种途径。着重分享了第一种方法的实现过程,并提供了从编写POJO类到部署服务的完整步骤。此外,还演示了手动打包并发布服务,以及客户端如何调用已发布的WebService。文章旨在为开发者提供全面的指导,帮助他们高效地创建、部署和调用WebService。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章一出自:axis2发布WebService(应用.aar文件发布)

 

http://blog.sina.com.cn/s/blog_6b1c9ed50100lskk.html

 基于Axis2开发Web Service一般采用两种方法:

      第一种方法直接实现业务逻辑,它通常包括提供服务实现类 (implementation class)、编写服务描述文件services.xml、将服务实现类和描述文件打成aar (Axis ARchive) 包、部署服务四个步骤;

      第二种方法使用WSDL2Java Tool工具,通过WSDL生成代码框架( Skeleton) ,然后再在框架中填写业务逻辑。两种方法的具体的过程可以参考Axis2用户手册。

 

     简单说下一下第一种方法的实现,主要分享下个人的经验.首先编写POJO类(即WebService服务类,如hello.java类),然后将其编译成.class文件,然后编写基于服务的services.xml文件,建立类似的目录结构:

  D:/ws/hello/hello.class 与D:/ws/META-INF/services.xml,然后在cmd命令行下面,转到d:/ds目录下面,输入 jar cvf ws.aar .(最后一个"."不要忘记哦)拷贝ws.aar文件到%TOMCAT_HOME%/axis2/web-inf/services中,启动Tomcat即可发布我们的服务,发布方法同POJO类类似.

 

      该方法的好处在与灵活性高,因为可以将服务封装在包中,而在POJO中不能封装在包,导致其灵活性较差(但部署发布简单,只需要将服务类对应的.Java文件改成.class文件放在%TOMCAT_HOME%\axis2\WEB-INF/pojo中即可以发布服务)。.aar文件的难点在于services.xml文件的编写,需要xml,axis2方面的知识积累。




文章二出自:Webservice用来传递参数,并返回对象(采用手动打成aar包)

http://blog.csdn.net/linwei_1029/article/details/7090333

1.  首先,先编写服务端代码 

[java]   view plain copy
  1. public class ReturnObjectService {  
  2.   
  3.       
  4.     public User getUser(String name) {  
  5.         User user = new User();  
  6.         user.setUsername(name);  
  7.         return user;  
  8.     }  
  9.       
  10. }  
[java]   view plain copy
  1. package server.object;  
  2.   
  3. import java.io.Serializable;  
  4.   
  5.   
  6. public class User implements Serializable{  
  7.   
  8.     private String username;  
  9.   
  10.     public String getUsername() {  
  11.         return username;  
  12.     }  
  13.   
  14.     public void setUsername(String username) {  
  15.         this.username = username;  
  16.     }  
  17.       
  18. }  

2.  进行手动打包过程。  新建一个文件夹,放入对应的服务端class(要求带入文件路径)。新建一个META-INF文件夹,并在其中编写services.xml文件,具体内容如下:

  

[html]   view plain copy
  1. <service name="returnObjectService">  
  2.     <parameter name="ServiceClass">  
  3.         server.object.ReturnObjectService     
  4.     </parameter>  
  5.     <messageReceivers>  
  6.         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"  
  7.                 class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />  
  8.         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"  
  9.                 class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />  
  10.     </messageReceivers>  
  11. </service>  
    

       可以用开始进行打包处理,打包语句如下:进入需要打包的文件路径,直接执行 jar cvf  打包后名字.aar . (后面有个点,表示当前路径),

或者jar cvf 打包后名字.aar  文件夹名  文件夹名   等两种方式都可以。

      打包后,把对应的aar包放入Tomcat6.0\webapps\axis2\WEB-INF\services 路径之下,就可以了。        


3.  编写客户端代码:

     

[java]   view plain copy
  1. package client;  
  2.   
  3. import javax.xml.namespace.QName;  
  4.   
  5. import org.apache.axis2.AxisFault;  
  6. import org.apache.axis2.addressing.EndpointReference;  
  7. import org.apache.axis2.client.Options;  
  8. import org.apache.axis2.rpc.client.RPCServiceClient;  
  9.   
  10. public class ReturnObjectTest {  
  11.   
  12.       
  13.     public static void main(String[] args) throws AxisFault {  
  14.         String target = "http://localhost:8080/axis2/services/returnObjectService";  
  15.         RPCServiceClient client = new RPCServiceClient();  
  16.         Options options = client.getOptions();  
  17.         options.setManageSession(true);  
  18.   
  19.         EndpointReference epr = new EndpointReference(target);  
  20.         options.setTo(epr);  
  21.   
  22.         QName qname = new QName("http://object.server""getUser");  
  23.         Object[] result = client.invokeBlocking(qname, new Object[] {"linwei"},new Class[] { User.class });  
  24.         User user = (User)result[0];  
  25.         System.out.println("user.username is " + user.getUsername());  
  26.     }  
  27.       

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值