论坛首页 Java企业应用论坛

使用axis开发webservice

浏览 4929 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (3)
作者 正文
   发表时间:2009-12-23  
1、在tomcat中的部署axis
修改WEB-INF下的web.xml文件,添加以下内容:
<servlet>
    <servlet-name>AxisServlet</servlet-name>
    <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
</servlet>
<servlet>
    <servlet-name>SOAPMonitorService</servlet-name>
    <servlet-class>org.apache.axis.monitor.SOAPMonitorService</servlet-class>
    <init-param>
      <param-name>SOAPMonitorPort</param-name>
      <param-value>5001</param-value>
    </init-param>
    <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>AxisServlet</servlet-name>
    <url-pattern>/ws/*</url-pattern>
 </servlet-mapping>
 <servlet-mapping>
    <servlet-name>SOAPMonitorService</servlet-name>
    <url-pattern>/SOAPMonitor</url-pattern>
 </servlet-mapping>
 <mime-mapping>
    <extension>wsdl</extension>
     <mime-type>text/xml</mime-type>
 </mime-mapping>
 <mime-mapping>
    <extension>xsd</extension>
    <mime-type>text/xml</mime-type>
 </mime-mapping>


2、发布web服务
添加要发布的服务到server-config.wsdd。如发布一个OA web服务,服务名称为:OASubmitService
<service name="OASubmitService"
  provider="java:RPC">
  <parameter name="allowedMethods" value="submitForOA" />
  <parameter name="scope" value="Session" />
  <parameter name="className" value="com.leadtone.oaserver.OASubmitServiceImpl" />
  <operation name="submitForOA" qname="operNS:submitForOA" xmlns:operNS="http://tempuri.org/ns.xsd"
            returnQName="DataXmlStr" returnType="rtns:string"
            xmlns:rtns="http://www.w3.org/2001/XMLSchema" soapAction="" >
            <parameter qname="dataXml" type="tns:string" xmlns:tns="http://www.w3.org/2001/XMLSchema"/>
            <parameter qname="paramXml" type="tns:string" xmlns:tns="http://www.w3.org/2001/XMLSchema"/>
        </operation>
  <namespace>http://oa.leadtone.com/</namespace>
 </service>

3、Apache Axis提供了WSDL2Java和Java2WSDL两个开发工具。
1)使用java2wsdl生成wsdl
用axis的java2wsdl类来生成wsServerTest.wsdl:
选择项目,选择或者填入main函数org.apache.axis.wsdl.Java2WSDL
在run的程序参数设置为:
-o wsServerTest.wsdl
-l "http://localhost:8080/poa/services/OASubmitService"
-n "urn:submitForOA"
-p"com.leadtone.oaserver" "urn:submitForOA"
com.leadtone.oaserver.OASubmitService
各参数的含义如下。
-o:指定输出的WSDL文件的文件名。
-l:指定服务的位置。
-n:WSDL文件的目标名字空间。
-p:指定从package到名字空间的映射,这里可以有多个映射。
Java2WSDL根据已有的Java类文件生成WSDL文件,Java类文件可以是接口类文件,并不需要实现细节。
2)使用wsdl2java生成stub用axis的wsdl2java来生成stub:
选择项目,选择或者填入main函数org.apache.axis.wsdl.WSDL2Java
在run的程序参数设置为:
D:\program\Eclipse3.2\wsSeverTest\wsServerTest.wsdl -t -p com.leadtone.oaserver.OASubmitService
参数说明: -o  输出wsdl文件名称
           -l 访问的url
           -n 命名空间
           -p  包名 命名空间的名字



4、客户端测试
直接在浏览器中输入webservice的url地址,如,http://localhost:8080/poa/services/OASubmitService
如果是安全通道,将client.keystore和client.truststore放到项目工程下。在vm 参数设定:
-Djavax.net.ssl.keyStore=D:\program\Eclipse3.2\wsClientTest\client.keystore
-Djavax.net.ssl.keyStorePassword=changeit
-Djavax.net.ssl.trustStore=D:\program\Eclipse3.2\wsClientTest\client.truststore


将url改为https://localhost:8080/poa/services/OASubmitService来调用发布的函数。

本文欢迎转载,但请注明作者与出处
   发表时间:2009-12-29  
配置太麻烦了 用xfire得了 那天我一试原来配置文件注解都不写还能用 多方便
0 请登录后投票
   发表时间:2009-12-29  
又学习一种方式,不过还不如用cxf。cxf不用配置。
0 请登录后投票
   发表时间:2009-12-29  
太麻烦了,用cxf吧,直接用 annotation
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics