axis1.4 WebService架构搭建

来源:互联网 发布:telnet 在端口23失败 编辑:程序博客网 时间:2024/06/05 01:03

webservice的框架有很多种axis1 axis2 cfx......。
其中axis1.4是比较稳定和成熟的一种。。。
一。axis的下载 http://download.csdn.net/detail/mirenxiaoxiao/4513296

二,jdk和tomcat的配置
三,搭建环境

        eclipse  Tomcat 
1 服务端:
  新建工程server_axis,解压缩axis-bin-1_4.zip把 axis-1_4\webapps\axis\WEB-INF\lib的包拷到server_axis工程的lib下面。

 2.web.xml文件

<display-name>Apache-Axis</display-name>             <listener>          <listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>      </listener>           <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>      <servlet-name>SOAPMonitorService</servlet-name>      <display-name>SOAPMonitorService</display-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>SOAPMonitorService</servlet-name>     <url-pattern>/SOAPMonitor</url-pattern>    </servlet-mapping>     <!-- uncomment this if you want the admin servlet -->   <!--     <servlet-mapping>      <servlet-name>AdminServlet</servlet-name>  67.    <url-pattern>/servlet/AdminServlet</url-pattern>  68.  </servlet-mapping>  69. -->        <session-config>          <!-- Default to 5 minute session timeouts -->          <session-timeout>5</session-timeout>      </session-config>        <!-- currently the W3C havent settled on a media type for WSDL;   77.    http://www.w3.org/TR/2003/WD-wsdl12-20030303/#ietf-draft   78.    for now we go with the basic 'it's XML' response -->    <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>  


3.

新建server-config.wsdd文件入在WEB-INF下面

内容为:

1.<?xml version="1.0" encoding="UTF-8"?>  2.<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">  3. <globalConfiguration>  4.  <parameter name="adminPassword" value="admin"/>  5.  <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>  6.  <parameter name="sendXsiTypes" value="true"/>  7.  <parameter name="sendMultiRefs" value="true"/>  8.  <parameter name="sendXMLDeclaration" value="true"/>  9.  <parameter name="axis.sendMinimizedElements" value="true"/>  10.  <requestFlow>  11.   <handler type="java:org.apache.axis.handlers.JWSHandler">  12.    <parameter name="scope" value="session"/>  13.   </handler>  14.   <handler type="java:org.apache.axis.handlers.JWSHandler">  15.    <parameter name="scope" value="request"/>  16.    <parameter name="extension" value=".jwr"/>  17.   </handler>  18.  </requestFlow>  19. </globalConfiguration>  20. <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>  21. <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>  22. <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>  23.  24. <service name="Version" provider="java:RPC">  25.  <parameter name="allowedMethods" value="getVersion"/>  26.  <parameter name="className" value="org.apache.axis.Version"/>  27. </service>  28.    29.<!--   30.  31. <service name="HelloWorld" provider="java:RPC">  32.  <parameter name="allowedMethods" value="*"/>  33.  <parameter name="scope" value="Request"/>  34.  <parameter name="className" value="anni.HelloWorld"/>  35. </service>  36.     <service name="OrderService" provider="java:RPC">    37.        <parameter name="allowedMethods" value="*"/>  38.        <parameter name="className" value="anni.OrderService"/>  39.        <beanMapping languageSpecificType="java:anni.Order" qname="ns1:Order"    40.            xmlns:ns1="urn:BeanService"/>  41.    </service>  42.    43.    44.    <service name="HandleredService" provider="java:RPC">  45.        <parameter name="allowedMethods" value="*"/>  46.        <parameter name="className" value="anni.handler.HandleredService"/>  47.        <parameter name="allowedRoles" value="lingo,anni"/>  48.        <requestFlow>  49.            <handler name="authen" type="java:anni.handler.AuthenticationHandler"/>  50.        <handler name="author" type="java:anni.handler.AuthorizationHandler"/>  51.            <handler name="logging" type="java:anni.handler.LogHandler">  52.                <parameter name="filename" value="/MyService.log"/>  53.            </handler>  54.        </requestFlow>  55.    </service>  56.  57.  58.-->  59.  60.  61.  62. <transport name="http">  63.  <requestFlow>  64.   <handler type="URLMapper"/>  65.   <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>  66.  </requestFlow>  67. </transport>  68. <transport name="local">  69.  <responseFlow>  70.   <handler type="LocalResponder"/>  71.  </responseFlow>  72. </transport>  73.</deployment>  


4.在浏览器中输入地址
   http://localhost:8080/server_axis/services
   会显示你所发布的服务
5.

新建 HelloWorld.java 

内容为:

package com.hisun.itmms.webService;

public class HelloWorld {       public String sayHello() {           return "hello world!xiaoxiao";       }   } 

6.然后是在server-config.wsdd里面发布HelloWorld ,
<service name="HelloWorld" provider="java:RPC">         <parameter name="allowedMethods" value="*"/>         <parameter name="scope" value="Request"/>         <parameter name="className" value="com.hisun.itmms.webService.HelloWorld"/>       </service>  

 

7.客户端

 新建工程client_axis  同样的把那些包拷过去。。。

新建HelloClient.java

 

package com.hisun.itmms.webService;import org.apache.axis.client.Call;   import org.apache.axis.client.Service;  public class HelloClient {       public static void main(String [] args) throws Exception {           String endpoint = "http://localhost:8080/server_axis/services/HelloWorld";//注意!差别仅仅在这里!!           Service service = new Service();           Call    call    = (Call) service.createCall();           call.setTargetEndpointAddress(new java.net.URL(endpoint));           call.setOperationName("sayHello");           String res = (String) call.invoke(new Object[]{});           System.out.println(res);      }   }  


8.运行client类,运行结果如下

hello world!xiaoxiao
整个过程完毕!!!!
 
参考:http://www.iteye.com/topic/571083
     http://www.blogjava.net/tangzurui/archive/2011/05/25/350988.html
原创粉丝点击