`

axis配置webService的方法步骤

 
阅读更多
第一步:建一个secn的web文件
第二步:建一个secn_client的java文件
第三步:在secn_client里那一个deploy.wsdd文件:
<!-- 创建描述部署文件
将deploy.wsdd发送到服务器上部署;生成 server-config.wsdd
 -->
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
	<!-- WebServer服务类 -->
	<service name="HelloWorldService" provider="java:RPC">
		<!-- 操作的className参数对应的类名 -->
		<parameter name="className" value="cn.itcast.axis.service.HelloWorldService" />
		<!-- allowedMethods所能操作的方法;*为所有的方法,不能为private修饰符的 -->
		<parameter name="allowedMethods" value="*" />
		<parameter name="scope" value="application" />
	</service>
</deployment>

第四步:要配置web.xml的axis信息:
<?xml version="1.0" encoding="ISO-8859-1"?>

<!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>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>

	<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; http://www.w3.org/TR/2003/WD-wsdl12-20030303/#ietf-draft 
		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>

	<welcome-file-list id="WelcomeFileList">
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.jws</welcome-file>
	</welcome-file-list>

</web-app>

第五步:要生成server-config.wsdd文件
Main class:
org.apache.axis.client.AdminClient
A
rguments:
-l http://localhost:8000/L_axis/servlet/AxisServlet src/cn/itcast/axis/widget/deploy.wsdd
或
-l http://localhost:8000/L_axis/servlet/AxisServlet deploy.wsdd

在地址栏里输入:http://localhost:8080/secn/services/UserInfo?wsdl



下面显示集合形式
@Test
	public void transaListEmployee() throws Exception {

		Service service = new Service();
		Call call = (Call) service.createCall();
		String url = "http://dh.secn.com.cn/services/CollService";
		call.setTargetEndpointAddress(new URL(url));
		call.setOperationName("transListEmployee");
		call.setMaintainSession(true);

		Class clazz = Employee.class;
		// 限定一定需要跟server-config.wsdd文档中配置限定一致,严格区分大小写
		QName qname = new QName("urn:coll.webservice.secn.com.cn", "Employee");
		call.registerTypeMapping(clazz, qname, new BeanSerializerFactory(clazz,
				qname), new BeanDeserializerFactory(clazz, qname));

		List<Employee> liste = new ArrayList<Employee>();
		Employee c = new Employee();
		c.setName("tom");
		liste.add(c);

		c = new Employee();
		c.setName("tom1");
		liste.add(c);
		call.invoke(new Object[] { liste });
	}
<!-- qname的ns可以随便写,但一定要和后台的ns相同;xmlns:ns后台的名字可以随便写,一般配写法是把包名倒过来写 -->
<beanMapping qname="ns:Employee" xmlns:ns="urn:coll.webservice.secn.com.cn"
             languageSpecificType="java:cn.com.secn.webservice.coll.Employee"/>

第六步:WSDL2Java
Main class:
org.apache.axis.wsdl.WSDL2Java

Arguments:
-v -p cn.com.secn.webservice.axsis.client.coll -o src
http://dh.secn.com.cn/services/CollService?wsdl

调用方法:
//定位器的方法
CollServiceServiceLocator locator = new CollServiceServiceLocator();
//生成存根
CollService_PortType port = locator.getCollService();
//
String str = (String)port.transaList(new String[]{"jerry","jerry1"});
System.out.println(str);


第七步:给webService写日志文件
public class LogHandler extends BasicHandler {

	private static final long serialVersionUID = 1L;
	/**
	 * 调用
	 */
	public void invoke(MessageContext msgContext) throws AxisFault {
		try {
            Handler serviceHandler = msgContext.getService();
            String filename = (String)getOption("filename");
            //输出流
            FileOutputStream fos = new FileOutputStream(filename, true);
            
            PrintWriter writer = new PrintWriter(fos);
            //访问次数
            Integer numAccesses = (Integer)serviceHandler.getOption("accesses");
            if (numAccesses == null){
                numAccesses = new Integer(0);
            }
            numAccesses = new Integer(numAccesses.intValue() + 1);
            //设置访问时间
            Date date = new Date();
            SimpleDateFormat f = new SimpleDateFormat("yyyy/MM/dd hh:mm:s");
            String result = f.format(date) + ": service " +  msgContext.getTargetService() +  " accessed " + numAccesses + " time(s).";
            serviceHandler.setOption("accesses", numAccesses);
            writer.println(result);
            writer.close();
        } catch (Exception e) {
            throw AxisFault.makeFault(e);
        }
	}


}

 

分享到:
评论

相关推荐

    axis 发布webservice的步骤

    标题中的“axis发布webservice的步骤”涉及到的是在Java环境中使用Apache Axis库创建并部署Web服务的过程。Apache Axis是开源的Web服务工具包,它允许开发者通过简单的API将Java类暴露为Web服务,或者调用远程Web...

    Axis和WebService配置使用之Hello

    以下是使用Axis配置和使用Web服务的基本步骤: 1. **安装和配置Axis**:首先,你需要下载并安装Axis的二进制包。解压后,将其添加到你的系统路径中,这样就可以在命令行中使用Axis工具。 2. **创建服务**:创建一...

    axis发布webservice详细步骤(以实例讲解)

    4. 配置`web.xml`文件,这是Web应用的部署描述符,用于指示Axis如何处理请求。以下是配置示例: ```xml &lt;display-name&gt;Apache-Axis &lt;!-- AxisServlet配置 --&gt; &lt;servlet-name&gt;AxisServlet &lt;servlet-class&gt;...

    Axis2WebService 源码

    Axis2 WebService是一个开源的、基于Java的Web服务框架,由Apache软件基金会开发。它提供了构建和部署Web服务以及处理SOAP消息的强大工具。这个源码包可能是为了帮助开发者深入理解Axis2的工作原理,或者用于自定义...

    Android axis调用Webservice

    - 配置并部署服务到Web服务器,如Tomcat,确保服务可被网络访问。 2. **客户端配置:** - 在Android项目中添加Axis2库,可以通过Maven或Gradle引入。 - 创建一个同步或异步调用Web Service的类,通常会用到`org....

    使用axis2创建webservice步骤以及客户端调用service服务代码

    使用axis2创建webservice步骤以及客户端调用service服务代码,如何编写和发布WebService,如何使用services.xml配置文件发布,如何用Java实现调用WebService的客户端程序等等

    axis发布webservice教程源代码

    【标题】"Axis发布Web服务教程源代码"指的是使用Apache Axis框架来创建并发布Web服务的教学资源,其中可能包含了详细的步骤、示例代码以及相关的配置文件。Apache Axis是开源的Java库,它允许开发者在Java平台上快速...

    axis1.4发布webservice接口步骤(java).docx

    ### Axis 1.4 发布WebService接口步骤详解 #### 一、概述 本文档旨在详细介绍如何使用Axis 1.4框架在Java环境下发布WebService接口。Axis是一个由Apache组织开发的开源项目,它提供了用于实现基于SOAP协议的Web...

    SpringBoot开发WebService之Axis示例

    5. **配置Axis**:在SpringBoot的配置文件`application.properties`或`application.yml`中,我们可以配置Axis的启动和端口等信息。 6. **编写WSDL**:如果还没有WSDL,我们可以手动编写或使用Axis工具从接口生成。...

    axis 实现 webservice 例子

    - 优化Axis配置,例如设置线程池大小、缓存策略等,以提高服务性能。 6. **其他Web服务框架比较**: - Axis2:比Axis1更现代化,支持更多的Web服务标准,如WS-ReliableMessaging、WS-Security等,但可能对新手来...

    axis 开发webservice经典入门例子

    标题 "axis 开发webservice经典入门例子" 指向的是使用Apache Axis工具来创建和使用Web服务的基本教程。Apache Axis是开源的Java框架,它允许开发者轻松地在Java应用程序中构建和部署Web服务。本教程可能是为了帮助...

    spring+axis集成webservice

    3. **配置Spring**:在Spring配置文件中定义Bean来管理和实例化Axis生成的服务类。使用`WebServiceProxyFactoryBean`来创建Web服务客户端代理,或者使用`WebServiceTemplate`来处理更复杂的请求。 ```xml ...

    Spring集成axis2实现webservice所用到的包

    这需要将服务类和相关的配置文件打包成一个Axis2模块(.aar文件),然后部署到Axis2服务器上。 5. **测试和调用**:一旦服务被部署,就可以通过Spring的`WebServiceTemplate`或`WebServiceProxyFactoryBean`来测试...

    详解axis调用webservice实例

    标题中的“详解axis调用webservice实例”表明我们将探讨如何使用Apache Axis库来调用Web服务。Apache Axis是一个开源工具,它允许Java开发者创建、部署和使用Web服务。在这个实例中,我们会有机会看到实际的Java代码...

    axis2 webService 详细教程

    【标题】"Axis2 WebService 详细教程"涵盖了在Java环境中使用Apache Axis2框架创建、部署和使用Web服务的核心概念和技术。Apache Axis2是Apache软件基金会开发的一个强大的Web服务引擎,它提供了高度优化的Web服务...

    Axis开发Webservice的简单步骤

    总结,通过以上步骤,你已成功使用Apache Axis开发并部署了一个简单的Web服务。这个过程展示了如何从Java类到WSDL,再到Web服务的转换,以及如何在其他项目中消费这个服务。熟悉这些步骤对于构建分布式系统中的跨...

    利用AXIS调用webservice所需JAR包

    在IT行业中,Web服务是应用程序之间进行通信的一种标准方法,而WebService API的实现之一就是Apache Axis。本篇文章将深入探讨如何利用AXIS调用WebService,以及所需的JAR包及其作用。 首先,理解AXIS的基本概念至...

Global site tag (gtag.js) - Google Analytics