创建axis2 webservice服务端方法一

一、准备工作
导入需要的jar包:
在这里插入图片描述

二、配置web.xml
在web工程的web.xml中添加如下配置:

<servlet>
        <servlet-name>AxisServlet</servlet-name>
        <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
        <load-on-startup>15</load-on-startup>
    </servlet>   
    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>

三、配置server-config.wsdd文件
在WEB-INF下添加WebService核心文件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="adminPassword" value="admin" />
		<parameter name="attachments.Directory"
			value="D:\myproject\calileo\xxx\WebContent\WEB-INF\attachments" />
		<parameter name="dotNetSoapEncFix" value="true" />
		<parameter name="enableNamespacePrefixOptimization" value="true" />
		<parameter name="sendXMLDeclaration" value="true" />
		<parameter name="attachments.implementation"
			value="org.apache.axis.attachments.AttachmentsImpl" />
		<parameter name="sendXsiTypes" value="true" />
		<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="LocalResponder"
		type="java:org.apache.axis.transport.local.LocalResponder" />
	<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper" />
	<handler name="Authenticate"
		type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" />
 
	<!-- 核心重点:服务发布,name:表示发布的service名 -->
	<service name="SjrkkService" provider="java:RPC">
		<!-- 发布的service接口类,调用SjrkkService这个服务,实际执行的此接口 -->
		<parameter name="className" value="com.xxx.ws.SjrkkService" />
	</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>
</deployment>

四、测试WSDL

在浏览器输入:http://localhost:8080/xxx/services/SjrkkService?wsdl //xxx和server-config.wsdd文件中的xxx一致,访问结果如下:
在这里插入图片描述

五、调WebService

/**
	 * 调用webservice的方法.
	 * @param url wsdl链接
	 * @param method 调用的接口
	 * @param idCard 传入的参数
	 * @return
	 * @throws Exception
	 */
	private String getWebServiceResult( String url, String method, String idCard) throws Exception{
		String rtnXml = null;
		try {
			String endpoint = url;
			Service service = new Service();
			Call call = (Call) service.createCall();
		
			call.setTargetEndpointAddress(new java.net.URL(endpoint));
			call.setOperationName(method);
		
			rtnXml = (String) call.invoke(new Object[]{idCard});
			
			
		} catch (Exception e) {
			e.printStackTrace();
		} 
		return rtnXml;
	}

转载:https://blog.csdn.net/yangwenxue_admin/article/details/45167817

要实现Spring Boot整合Axis实现WebService服务端,可以按照以下步骤进行: 1. 添加Axis依赖 在pom.xml文件中添加以下Axis依赖: ```xml <dependency> <groupId>axis</groupId> <artifactId>axis</artifactId> <version>1.4</version> </dependency> ``` 2. 配置Axis Servlet 在Spring Boot的配置类中添加以下Servlet配置: ```java @Bean public ServletRegistrationBean<AxisServlet> axisServlet() { AxisServlet servlet = new AxisServlet(); ServletRegistrationBean<AxisServlet> registration = new ServletRegistrationBean<>(servlet, "/services/*"); registration.addInitParameter("axis.servicesPath", "/services"); registration.addInitParameter("axis.wsddPath", "classpath:wsdd/AxisServlet.wsdd"); return registration; } ``` 这样就可以将Axis Servlet注册到Spring Boot中,并通过"/services/*"路径映射到WebService服务。 3. 定义WebService服务 通过Axis提供的注解来定义WebService服务。 ```java @AxisService public class HelloWebService { @WebMethod public String sayHello(String name) { return "Hello, " + name + "!"; } } ``` 注意:要确保WebService服务类被Spring Boot扫描到,可以通过在配置类上添加`@ComponentScan`注解来实现。 4. 配置wsdd文件 在src/main/resources目录下创建wsdd文件夹,并创建AxisServlet.wsdd文件,配置如下: ```xml <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="HelloWebService" provider="java:RPC"> <parameter name="className" value="com.example.demo.webservice.HelloWebService"/> <parameter name="allowedMethods" value="*"/> </service> </deployment> ``` 这样就配置好了WebService服务端,可以启动Spring Boot应用并访问WebService服务了。例如,在浏览器中访问`http://localhost:8080/services/HelloWebService?wsdl`来查看WebService服务的WSDL描述文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值