您的位置:首页 > 编程语言 > Java开发

Axis1.4 创建webservice服务 ----嵌套在SpringMvc框架中

2016-05-26 10:08 513 查看

Axis1.4自学---创建Webservice服务

我的项目是ssm,为了使用Webservice服务开放接口,我使用了Axis1.4版本。使用Maven构建了jar包。
其中需要的jar包(spring的就不说了。不过需要强调的是axis1.4需要用到spring-aop 2.0.8jar包)
Maven构建:
<span style="white-space:pre">	</span><dependency>
<span style="white-space:pre">	</span><groupId>org.springframework</groupId>
<artifactId>spring-remoting</artifactId>
<version>2.0.8</version>
</dependency>

需要spring-remoting包(使用到ServletEndpointSupport类)
Axis1.4包及相关调用远程的wsdl包
<span style="white-space:pre">		</span><dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>${axis.version}</version>
</dependency>
<dependency>
<groupId>axis</groupId>
<artifactId>axis-jaxrpc</artifactId>
<version>${axis-jaxrpc.version}</version>
</dependency>
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>${wsdl4j.version}</version>
</dependency>

axis.version、wsdl版本用的是
<axis.version>1.4</axis.version>
<axis-jaxrpc.version>1.2.1</axis-jaxrpc.version>
<wsdl4j.version>1.6.3</wsdl4j.version>

引用的包和spring兼容 ,还需要导入的一些公共包和spring框架用到的一般都够了。最重要的包已经导入完毕。

接下来就看下代码简单易懂:
首先创建一个接口:
例子:
IWebServiceTest.java
public interface IWebServiceTest {
public String getDate(String date);
}

然后创建一个类(这是重点)
WebServiceTest.java
public class WebServiceTest extends ServletEndpointSupport  implements IWebServiceTest{

@Override
public String getDate(String date) {
return date+"----成功!";
}

}

其中ServletEndpoinSupport类是(Spring-rometing包中) 实现在自己的接口

ServletEndpoinSupport类中有两个方法----destory、onInit
初始化和销毁

在oninit方法中,可以获取Spring注解的类,这样与Spring就紧密结合起来了 不会脱离spring的操作。
列子:
<span style="white-space:pre">	</span>private IInitSummaryService initSummaryService;//初始摘要

@Override
protected void onInit() throws ServiceException {
System.out.println("我是初始化!");
initSummaryService = (IInitSummaryService) getApplicationContext().getBean("initSummaryService");
}

这样我们就可以使用InitsummaryService了 。当然这个类我们是要在spring配置里面提前声明装载的。
<bean id="initSummaryService" class="xxxx">
这样我们就可以进行相关操作了。
完整代码:
public class WebServiceTest extends ServletEndpointSupport  implements IWebServiceTest{

private IInitSummaryService initSummaryService;//初始摘要

@Override
protected void onInit() throws ServiceException {
System.out.println("我是初始化!");
initSummaryService = (IInitSummaryService) getApplicationContext().getBean("initSummaryService");
}

@Override
public String getDate(String date) {
System.out.println(initSummaryService);
return date+"----成功!";
}

}

剩下最重要的一步就是如何让我们的webservice生效。
首先在web.xml里面配置上我们的Webservice访问地址
<!-- webservice -->
<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>

然后在添加一个webservice用的配置文件,server-config.wsdd
这个文件放到和web.xml同级目录下也就是我们的WEB-INF下
然后里面写上配置信息:
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>

<service name="Test" provider="java:RPC">
<parameter name="className" value="com.caxins.themis.webservice.caxs.WebServiceTest"/>
<parameter name="allowedMethods" value="*"/>
</service>

<transport name="http">
<requestFlow>
<handler type="URLMapper"/>
</requestFlow>
</transport>
</deployment>

然后开启我们的web项目,访问起来: http://localhost:8080/xxx/services/Test?wsdl
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  web axis1.4 webservice