axis发布ws的两种方式

AXIS发布webservices的两种方式:即时发布、定制发布

【准备工作】

 下载axis,获取所需的jar包并导入工程,下载地址:http://mirrors.hust.edu.cn/apache/axis/axis/java/1.4/

 

 1. JWS (Java Web Service) Files - Instant Deployment

      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>*.jws</url-pattern>
</servlet-mapping>

 

  将编写好的业务类复制到应用的根目录,并将源文件后缀改为jws即可,无需重启容器。

  例如:要发布一个获取服务器当前时间的webservice接口,新建SimpleService.java

import java.util.Date;

public class SimpleService {
	public String getTime() {
		return "hello~ " + new Date();
	}
}

 

  编写完成后将SimpleService.java改为SimpleService.jws,并放在应用的根目录,即发布成功,效果如下:

   
  axis发布ws的两种方式_第1张图片
  

查看WSDL如果提示AXIS error java.lang.RuntimeException: No compiler found in your classpath!(you may need to add 'tools.jar'),需要将tools.jar添加到工程lib目录;
浏览器调用getTime接口,http://localhost:8080/test/SimpleService.jws?method=getTime,效果如下:

 
axis发布ws的两种方式_第2张图片

 

注:JWS的Web服务是用于简单的Web服务,在服务类中不能使用包(package),另外因为代码在运行时才被编译,所以你无法了解的错误直到部署之后,如果想提供优质的web服务,应该使用Java类定制部署。

 

 2. Custom Deployment - Introducing WSDD

 服务类编写如下:

package gang.chen;
public class MyService {
	public void hello(String name)
	{
		System.out.println("Hello " + name);
	}
}

 

 web.xml中添加如下配置:

<servlet-mapping>
	<servlet-name>AxisServlet</servlet-name>
	<url-pattern>/services/*</url-pattern>
</servlet-mapping>

 

在与web.xml同目录下新建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>
  <parameter name="sendMultiRefs" value="true"/>
  <parameter name="disablePrettyXML" value="true"/>
  <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"/>
</globalConfiguration>

  <handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>   
  <service name="MyService" provider="java:RPC">   
     <parameter name="className" value="csg.MyService"/>
     <parameter name="scope" value="request"/>
     <parameter name="allowedMethods" value="*"/>
     <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
  </service>   
  <transport name="http">   
     <requestFlow>   
        <handler type="URLMapper"/>   
     </requestFlow>   
  </transport>   
</deployment>

  启动容器,发布成功效果如下:


axis发布ws的两种方式_第3张图片
 
 

 

你可能感兴趣的:(webservice,axis)