axis1.4開發webservice服務端(快速入門)-基於jdk1.4


寫在前面:

現在有很多開發webservice的方法以及框架,什么cxf等,但是這些在你編寫服務類的時候都要用到注解這個功能。如果現在的jdk是1.4的,那么就不能使用注解這個功能了。所以這里可以用到axis這個工具。

1.所需jar包:

2.一般webservice在工作中,都是用在web項目中,所以創建web項目,將所需jar包放在lib目錄下

3.在web.xml文件中,添加

<servlet>
    <servlet-name>AxisServlet</servlet-name>
    <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
  </servlet>
  <!-- 這里是訪問服務的路徑 -->
  <servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>

4.創建服務類,一個接口,一個實現類即可,首先是接口

package edu.hue.server;

public interface SayHello {

    public String say(String name);
}

  然后是接口的實現類

package edu.hue.server;

public class SayHelloImpl implements SayHello{

    public String say(String name) {

        return "Hello my friend " + name;
    }

}


5.下面在WEB-INF下面創建server-config.wsdd(這個文件直接創建,然后將下面的代碼復制就可以了,然后根據需要添加自己的服務的配置,其實這個文件是可以自己生成的,需要自己創建一個deploy.wsdd,啟動項目運行之后,會自動生成server-config.wsdd。這里為了方便,直接省略過程,只需要在server-config.wsdd上添加自己的服務就可以了,先學會用再說)

<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 <!-- 這里的globalConfiguration暫時不用管是什么意思,可以先注釋掉,不影響結果 
<globalConfiguration>
  <parameter name="sendMultiRefs" value="true"/>
  <parameter name="disablePrettyXML" value="true"/>
  <parameter name="adminPassword" value="admin"/>
  <parameter name="attachments.Directory" value="E:\sotfWares\sotfware\Tomcat\apache-tomcat-7.0.62-windows-x86\apache-tomcat-7.0.62\webapps\test_axis3\WEB-INF\attachments"/>
  <parameter name="dotNetSoapEncFix" value="true"/>
  <parameter name="enableNamespacePrefixOptimization" value="false"/>
  <parameter name="sendXMLDeclaration" value="true"/>
  <parameter name="sendXsiTypes" value="true"/>
  <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
  <requestFlow>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="session"/>
   </handler>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="request"/>
    <parameter name="extension" value=".jwr"/>
   </handler>
  </requestFlow>
 </globalConfiguration> -->

 <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
 <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
 <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
 <!-- 
    這里的幾個服務也可以先注釋掉 這是自帶的服務 注釋后就只顯示自己的服務
<service name="AdminService" provider="java:MSG">
  <parameter name="allowedMethods" value="AdminService"/>
  <parameter name="enableRemoteAdmin" value="false"/>
  <parameter name="className" value="org.apache.axis.utils.Admin"/>
  <namespace>http://xml.apache.org/axis/wsdd/</namespace>
 </service>
 <service name="Version" provider="java:RPC">
  <parameter name="allowedMethods" value="getVersion"/>
  <parameter name="className" value="org.apache.axis.Version"/>
 </service> -->
 <transport name="http">
  <requestFlow>
   <handler type="URLMapper"/>
   <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
  </requestFlow>
  <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
  <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
  <parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
  <parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  <parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
 </transport>
 <transport name="local">
  <responseFlow>
   <handler type="LocalResponder"/>
  </responseFlow>
 </transport>
 
 <!-- 配置自己的服務  -->
 <service name="sayHello" provider="java:RPC">
       <parameter name="className" value="edu.hue.server.SayHelloImpl" />
       <parameter name="allowedMethods" value="*" />
 </service>
 
</deployment>

參數解釋:name:為服務起的一個名字這里叫sayHello,然后下面的value="這里填的是你服務的實現類的全路徑",差不多就這兩個參數需要改動,其他的復制就可以了

6.運行項目,瀏覽器輸入:http://localhost:8080/test_axis3_stub/services,回車,就可以訪問了。

  http://localhost:8080/test_axis3_stub(項目名)/services(服務的訪問路徑,在web.xml里就配置了攔截/services/*,故這里只需要輸入services,就可以訪問)

 

這里說的都是簡單的入門,如果涉及到復雜參數,如bean的傳遞,還需要下去研究。(貌似也需要在server-config.wsdd里面配置服務的時候,進行相關的配置)

  交流群:527038646  嘻嘻嘻


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM