eclipse开发webservice服务

eclipse开发webservice服务

开发工具:eclipse4.5.1

操作系统:win7 64bit

web服务器:tomcat7

JDK:1.7.0_79

Maven:3.2.3

 

eclipse开发webservice服务 

 

一、创建web项目

webservice是通过http/https协议访问,所以要创建web项目,这里按maven格式来创建web工程。



  

工程名称:test-axis1,这里使用axis1版本。

IUpayCsysTmallTxnLog.java    webservice的接口

UpayCsysTmallTxnLog.java    接口的实现

UpayCsysTmallTxnLogReq.java接口的请求对象

UpayCsysTmallTxnLogResp.java接口返回对象

 

二、创建webservice服务端

2.1 选中工程test-axis1,右键 New->Other->Web Services->Web Service

 

 
2.2 点击【Next】按钮



 

Web service type下拉框选择:Bottom up java bean Web Service (自底向上的java bean Web服务)

点击Browse,输入框中输入刚才新建的接口实现类,这个类将作为web service的调用服务



 

2.3 点击【OK】,然后再Configuration栏里点击【Server runtime:tomcat……】



 

eclipse需要配置好web服务器,这里用的是tomcat所以选中输入框圈的那部分。

 

2.4 点击【OK】按钮,在弹出来的对话框里点击【Next】



 

2.5 按默认选择即可,点击【Next】



 

2.6 点击【Start server】按钮,测试web service服务端,如果没问题,点击【Next】按钮



 

2.7 按默认配置,一直点击【Next】



  

2.8 点击【Finish】按钮之后,如果不出问题的话,eclipse自动启动web service服务端,并弹出两个自带的浏览器,上面显示一些信息

 

 

eclipse的web service插件会帮生成很多东西,比如jar包,wsdd文件,wsdl文件等等其他配置信息,如左边圈子里的,都是自动生成的。

如web.xml,会自动写入很多配置信息:

<!DOCTYPE web-app PUBLIC

 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

 "http://java.sun.com/dtd/web-app_2_3.dtd" >

 

<web-app>

  <display-name>Archetype Created Web Application</display-name>

  <servlet>

          <servlet-name>AxisServlet</servlet-name>

          <display-name>Apache-Axis Servlet</display-name>

          <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>

  </servlet>

  <servlet>

          <servlet-name>AdminServlet</servlet-name>

          <display-name>Axis Admin Servlet</display-name>

          <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>

          <load-on-startup>100</load-on-startup>

  </servlet>

  <servlet-mapping>

          <servlet-name>AxisServlet</servlet-name>

          <url-pattern>/servlet/AxisServlet</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

          <servlet-name>AxisServlet</servlet-name>

          <url-pattern>*.jws</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

          <servlet-name>AxisServlet</servlet-name>

          <url-pattern>/services/*</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

          <servlet-name>AdminServlet</servlet-name>

          <url-pattern>/servlet/AdminServlet</url-pattern>

  </servlet-mapping>

</web-app>

 

2.9 打开test-axis1/src/main/webapp/wsdl/UpayCsysTmallTxnLog.wsdl配置文件,可以看到很多入参和出参的描述信息

<?xml version="1.0" encoding="UTF-8"?>

<wsdl:definitions targetNamespace="http://axis1.webservice.plg.com" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://axis1.webservice.plg.com" xmlns:intf="http://axis1.webservice.plg.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<!--WSDL created by Apache Axis version: 1.4

Built on Apr 22, 2006 (06:55:48 PDT)-->

 <wsdl:types>

  <schema elementFormDefault="qualified" targetNamespace="http://axis1.webservice.plg.com" xmlns="http://www.w3.org/2001/XMLSchema">

   <element name="getUpayCsysTmallLog">

    <complexType>

     <sequence>

      <element name="req" type="impl:UpayCsysTmallTxnLogReq"/>

      <element name="version" type="xsd:string"/>

     </sequence>

    </complexType>

   </element>

   <complexType name="UpayCsysTmallTxnLogReq">

    <sequence>

     <element name="bussChl" nillable="true" type="xsd:string"/>

     <element name="bussType" nillable="true" type="xsd:string"/>

     <element name="crmActivityCode" nillable="true" type="xsd:string"/>

     <element name="crmBipCode" nillable="true" type="xsd:string"/>

     <element name="crmCnlType" nillable="true" type="xsd:string"/>

     <element name="crmOprDt" nillable="true" type="xsd:string"/>

     <element name="crmOprId" nillable="true" type="xsd:string"/>

     <element name="crmOprTm" nillable="true" type="xsd:string"/>

     <element name="crmOrgId" nillable="true" type="xsd:string"/>

     <element name="crmRouteInfo" nillable="true" type="xsd:string"/>

     <element name="crmRouteType" nillable="true" type="xsd:string"/>

     <element name="crmRouteVal" nillable="true" type="xsd:string"/>

     <element name="crmSessionId" nillable="true" type="xsd:string"/>

     <element name="crmStartTm" nillable="true" type="xsd:string"/>

     <element name="crmTransDt" nillable="true" type="xsd:string"/>

     <element name="crmTransId" nillable="true" type="xsd:string"/>

     <element name="crmTransTm" nillable="true" type="xsd:string"/>

     <element name="crmTranshDt" nillable="true" type="xsd:string"/>

     <element name="crmTranshId" nillable="true" type="xsd:string"/>

     <element name="crmTranshTm" nillable="true" type="xsd:string"/>

     <element name="intTransCode" nillable="true" type="xsd:string"/>

     <element name="intTxnDate" nillable="true" type="xsd:string"/>

     <element name="intTxnSeq" nillable="true" type="xsd:string"/>

     <element name="intTxnTime" nillable="true" type="xsd:string"/>

     <element name="payMode" nillable="true" type="xsd:string"/>

     <element name="seqId" nillable="true" type="xsd:long"/>

     <element name="settleDate" nillable="true" type="xsd:string"/>

     <element name="tmallActivityCode" nillable="true" type="xsd:string"/>

     <element name="tmallCnlType" nillable="true" type="xsd:string"/>

     <element name="tmallOrgId" nillable="true" type="xsd:string"/>

     <element name="tmallRouteInfo" nillable="true" type="xsd:string"/>

     <element name="tmallTransDt" nillable="true" type="xsd:string"/>

     <element name="tmallTransId" nillable="true" type="xsd:string"/>

     <element name="tmallTransTm" nillable="true" type="xsd:string"/>

     <element name="tmallTranshDt" nillable="true" type="xsd:string"/>

     <element name="tmallTranshId" nillable="true" type="xsd:string"/>

     <element name="tmallTranshTm" nillable="true" type="xsd:string"/>

    </sequence>

   </complexType>

   <element name="getUpayCsysTmallLogResponse">

    <complexType>

     <sequence>

      <element name="getUpayCsysTmallLogReturn" type="impl:UpayCsysTmallTxnLogResp"/>

     </sequence>

    </complexType>

   </element>

   <complexType name="UpayCsysTmallTxnLogResp">

    <sequence>

     <element name="bussChl" nillable="true" type="xsd:string"/>

     <element name="bussType" nillable="true" type="xsd:string"/>

     <element name="intTransCode" nillable="true" type="xsd:string"/>

     <element name="intTxnDate" nillable="true" type="xsd:string"/>

     <element name="intTxnSeq" nillable="true" type="xsd:string"/>

     <element name="intTxnTime" nillable="true" type="xsd:string"/>

     <element name="payMode" nillable="true" type="xsd:string"/>

     <element name="seqId" nillable="true" type="xsd:long"/>

     <element name="settleDate" nillable="true" type="xsd:string"/>

     <element name="tmallActivityCode" nillable="true" type="xsd:string"/>

     <element name="tmallOrgId" nillable="true" type="xsd:string"/>

     <element name="tmallRouteInfo" nillable="true" type="xsd:string"/>

     <element name="tmallTransDt" nillable="true" type="xsd:string"/>

     <element name="tmallTransId" nillable="true" type="xsd:string"/>

     <element name="tmallTransTm" nillable="true" type="xsd:string"/>

    </sequence>

   </complexType>

  </schema>

 </wsdl:types>

 

   <wsdl:message name="getUpayCsysTmallLogResponse">

      <wsdl:part element="impl:getUpayCsysTmallLogResponse" name="parameters">

      </wsdl:part>

   </wsdl:message>

 

   <wsdl:message name="getUpayCsysTmallLogRequest">

      <wsdl:part element="impl:getUpayCsysTmallLog" name="parameters">

      </wsdl:part>

   </wsdl:message>

 

   <wsdl:portType name="UpayCsysTmallTxnLog">

      <wsdl:operation name="getUpayCsysTmallLog">

         <wsdl:input message="impl:getUpayCsysTmallLogRequest" name="getUpayCsysTmallLogRequest">

       </wsdl:input>

         <wsdl:output message="impl:getUpayCsysTmallLogResponse" name="getUpayCsysTmallLogResponse">

       </wsdl:output>

      </wsdl:operation>

   </wsdl:portType>

 

   <wsdl:binding name="UpayCsysTmallTxnLogSoapBinding" type="impl:UpayCsysTmallTxnLog">

      <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="getUpayCsysTmallLog">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getUpayCsysTmallLogRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getUpayCsysTmallLogResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

 

   <wsdl:service name="UpayCsysTmallTxnLogService">

      <wsdl:port binding="impl:UpayCsysTmallTxnLogSoapBinding" name="UpayCsysTmallTxnLog">

         <wsdlsoap:address location="http://localhost:8080/test-axis1/services/UpayCsysTmallTxnLog"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>

 

2.10 浏览器访问测试web service服务端发布情况

打开浏览器,访问http://localhost:8080/test-axis1/services/UpayCsysTmallTxnLog(注localhost改成web service服务端发布的IP地址)



 

说明web service发布成功。

 

还可以访问http://localhost:8080/test-axis1/services/UpayCsysTmallTxnLog?wsdl,查看webservice服务描述文件



 

 通过wsdl文件,逆向开发webservice服务端

一、创建web项目

webservice是通过http/https协议访问,所以要创建web项目,这里按maven格式来创建web工程(见maven web工程步骤请看maven部分)。



 

二、根据wsdl文件,创建webservice客户端

2.1 选中工程test-axis1-client,右键 New->Other->Web Services->Web Service.



 

在Web service type下拉框选择:Top down java bean Web Service (自顶向下Web服务java bean,这个和上一篇的《eclipse开发webservice服务端是相反的》)。

在Service definition输入框输入:http://192.168.1.101:8080/test-axis1/services/UpayCsysTmallTxnLog?wsdl (服务端提供的wsdl访问地址,确保浏览器能访问这个地址)

 

2.2 点击【Next】按钮

 

 

2.3 按默认配置,继续点击【Next】



 

 

2.4 按默认配置,继续点击【Next】


 

2.5 按默认配置,继续点击【Finish】


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.plg.webservice.axis</groupId>
<artifactId>test-axis1-client</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>test-axis1-client Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
 
<dependency>
<groupId>axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
 
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>0.2</version>
</dependency>
 
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis-jaxrpc</artifactId>
<version>1.4</version>
</dependency>
 
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis-saaj</artifactId>
<version>1.4</version>
</dependency>
 
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.5.1</version>
</dependency>
 
</dependencies>
<build>
<finalName>test-axis1-client</finalName>
 
</build>


 

 

左边红色圈子中的文件都是自动生成的,是按照wsdl文件描述生成的。你会发现代码里有很多错误,那是没有引用响应的jar包,可以在pon.xml文件里加上必要的包,如下:


 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值