基于axis的Webservice开发流程

来源:互联网 发布:多媒体教学软件破解版 编辑:程序博客网 时间:2024/05/18 02:19

采用axis2进行webservice开发的步骤:

1. 下载axis2的相关版本(binwar两种)(官方网站)

2. 配置eclipse的插件设置, window->prefereces->Web service->axis2

3. 建一个java工程

4. 在工程中编写自己的webservice接口方法

5. 建立Src/webservice.xml文件配置,内容如下:

    <serviceGroup>

<service name="GetFeedBackStateService" scope="application"> 

    <description>GetFeedBackStateService</description> 

    <messageReceivers> 

        <messageReceiver 

 mep="http://www.w3.org/2004/08/wsdl/in-only" 

class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/> 

    <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" 

 class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> 

    </messageReceivers> 

   <parameter name="ServiceClass"> 

 casc.wlw.yk.service.GetFeedBackStateService</parameter>

 </service>

</serviceGroup>

6. 在工程目录下建build.xml文件,用于ant编译,格式如下:

<project name="service" basedir="." default="makeService"> 

 <property name="dist.dir" value="dist" /> 

 <property name="dist.dir.classes" value="${dist.dir}/classes" /> 

 <property name="AXIS2_HOME"   

 value="D:\axis2-1.6.2"/> 

 <path id="build.class.path"> 

 <fileset dir="${AXIS2_HOME}/lib"> 

 <include name="*.jar" /> 

 </fileset> 

 </path> 

 <target name="makeService" depends=""> 

 <copy file="src/services.xml" tofile="${dist.dir.classes}/META-INF/services.xml" 

 overwrite="true" /> 

 <javac srcdir="src" destdir="${dist.dir.classes}" 

 includes="yk/service/*"> 

 <classpath refid="build.class.path" /> 

 </javac>

 <jar basedir="${dist.dir.classes}" destfile="${dist.dir}/DemoService.aar" /> 

 </target> 

 </project>

7. 将axiswar版本中的axis2.war文件放入tomcatwebapp下,启动tomcat会自动生成axis2文件夹,然后关闭tomcat

8. 将工程Ant打包,打开cmd,进入工程所在路径,ant打包生成arr文件

9. 将arr文件放入tomcat/webapp/axis2/web-inf/services目录下,启动tomcat

10. 打开浏览器, 输入 http://localhost:8080/axis2,打开services下的相关接口生成wsdl地址。

11. 配置wsdl2java的环境变量(axis/bin

12. 用wsdl地址生成webservice服务

命令行: wsdl2java –uri http://localhost:8080/axis2/services/Cal?wsdl

自动生成src目录,有两个相关服务类。

13. 编写客户端调用webservice接口,示例如下:

    CalculateServiceStub cal = new CalculateServiceStub();

CalculateServiceStub.Plus params = new CalculateServiceStub.Plus();

params.setArgs0(2);

params.setArgs1(3);

CalculateServiceStub.PlusResponse response = cal.plus(params);

System.out.println(response.get_return());

 

 

开发过程遇到的问题:

1. 客户端通过webservice接口访问服务端数据库,需要配置本地tomcat的数据库,以mysql为例:打开conf目录下的context.xml文件,加入以下内容:

   <Resource

        name="jdbc/fcwf"

        auth="Container"

        type="javax.sql.DataSource"

        driverClassName="com.mysql.jdbc.Driver"

        url="jdbc:mysql://localhost:3306/yingke"

        username="root"

        password="123"

        maxActive="100"

        maxIdle="30"

        maxWait="5000"

     />

Webservice传递的内容必须是可序列化得,不管是参数还是返回值,list等集合类是不可序列化的,使用时会报错。解决办法

原创粉丝点击