- 浏览: 48239 次
- 性别:
- 来自: 重庆
文章分类
最新评论
部署WebService(Axis2和spring集成)
spring集成Axis2
server 实现
步骤一 创建Web工程
步骤二 下载Axis2二进制包(地址:http://axis.apache.org/axis2/java/core/download.cgi)
步骤三 将Axis2包加载到创建的Web工程(将Axis->lib文件夹下的jar包复制到Web工程->WebRoot->WEB-INF->lib文件夹下(还需要加上spring的核心包))
activation-1.1.jar
axiom-api-1.2.12.jar
axiom-impl-1.2.12.jar
axis2-adb-1.6.1.jar
axis2-adb-codegen-1.6.1.jar
axis2-java2wsdl-1.6.1.jar
axis2-kernel-1.6.1.jar
axis2-spring-1.5.jar
axis2-transport-http-1.6.1.jar
axis2-transport-local-1.6.1.jar
commons-codec-1.3.jar
commons-httpclient-3.1.jar
commons-logging-1.1.1.jar
dom4j-1.6.1.jar
geronimo-stax-api_1.0_spec-1.0.1.jar
httpcore-4.0.jar
mail-1.4.jar
neethi-3.0.1.jar
spring.jar
woden-api-1.0M8.jar
wsdl4j-1.6.2.jar
wstx-asl-3.2.9.jar
XmlSchema-1.4.7.jar
步骤四 在Web工程下创建一个接口并定义一个方法
例:
package com.soap.axis2;
public interface IServiceServer
{
public String sayhello(String name);
}
步骤五 新建一个类继承接口
例:
package com.soap.axis2;
public class ServiceServerImpl implements IServiceServer
{
@Override
public String sayhello(String name)
{
return "my name is "+name;
}
}
步骤六 在工程src目录下创建spring配置文件applicationContext.xml
applicationContext.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean id="SayHelloService" class="com.soap.axis2.ServiceServerImpl">
</bean>
</beans>
步骤七 在Web工程->WebRoot目录下新建axis2-web -> listServices.jsp目录和文件
listServices.jsp文件内容如下:
<%@
page contentType="text/html;charset=UTF-8" language="java"
%><%@
page import="org.apache.axis2.Constants,
org.apache.axis2.description.AxisOperation,
org.apache.axis2.description.AxisService,
java.util.Collection,
java.util.HashMap,
java.util.Iterator"
%><html>
<head><title>List Services</title>
<style>
h2{margin:20 0 5 0;}
ul{margin-top:5;}
</style>
</head>
<body>
<h1>Available services</h1>
<%
HashMap serviceMap = (HashMap) request.getSession().getAttribute(Constants.SERVICE_MAP);
Collection servicecol = serviceMap.values();
if(servicecol.size()==0){%>Available services is Empty.<%}
for (Iterator iterator = servicecol.iterator(); iterator.hasNext();) {
AxisService axisService = (AxisService) iterator.next();
Iterator opItr = axisService.getOperations();
String serviceName = axisService.getName();
%>
<h2><font color="blue"><a href="<%=serviceName %>?wsdl" target="_blank"><%=serviceName%></a></font></h2>
<i>Available Operations</i>
<ul>
<%
while (opItr.hasNext()) {
AxisOperation axisOperation = (AxisOperation) opItr.next();
%><li><%=axisOperation.getName().getLocalPart()%></li><%
}
%>
</ul>
<%
}
%>
</body>
</html>
步骤八 在Web工程->WebRoot->WEB-INF下新建services->service(这个目录自定义)->META-INF->services.xml目录和文件
services.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<serviceGroup>
<service name="sayHelloService">
<description>
sayHelloService:Spring POJO Axis2 Service Sample
</description>
<parameter name="ServiceClass">
com.soap.axis2.IServiceServer
</parameter>
<parameter name="ServiceObjectSupplier">
org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier
</parameter>
<parameter name="SpringBeanName">SayHelloService</parameter>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
<operation name="sayHello">
<messageReceiver
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</operation>
</service>
</serviceGroup>
步骤九 修改Web工程->WebRoot->WEB-INF->web.xml
在web.xml文件<web-app></web-app>中加上:
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
发布我们新建的Web工程
打开浏览器访问:http://localhost:8080/WebService//services/listServices
会出现我们部署的服务 sayHelloService
client 实现
步骤一 在工程中新建一个类(可以重新建一个工程但需要导入Axis2的相关包)
例:
package com.soap.axis2.client;
import javax.xml.namespace.QName;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
public class ServiceClient
{
public static void main(String[] args1) throws AxisFault
{
String path = "http://localhost:8080/WebService/services/sayHelloService";
EndpointReference targetEPR = new EndpointReference(path);
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
options.setTo(targetEPR);
QName opGetWeather = new QName("http://axis2.soap.com","sayhello");
Object[] response = serviceClient.invokeBlocking(opGetWeather,
new Object[]{"zhangsan"},new Class[]{String.class});
System.out.println(response[0]);
}
}
执行此类
spring集成Axis2
server 实现
步骤一 创建Web工程
步骤二 下载Axis2二进制包(地址:http://axis.apache.org/axis2/java/core/download.cgi)
步骤三 将Axis2包加载到创建的Web工程(将Axis->lib文件夹下的jar包复制到Web工程->WebRoot->WEB-INF->lib文件夹下(还需要加上spring的核心包))
activation-1.1.jar
axiom-api-1.2.12.jar
axiom-impl-1.2.12.jar
axis2-adb-1.6.1.jar
axis2-adb-codegen-1.6.1.jar
axis2-java2wsdl-1.6.1.jar
axis2-kernel-1.6.1.jar
axis2-spring-1.5.jar
axis2-transport-http-1.6.1.jar
axis2-transport-local-1.6.1.jar
commons-codec-1.3.jar
commons-httpclient-3.1.jar
commons-logging-1.1.1.jar
dom4j-1.6.1.jar
geronimo-stax-api_1.0_spec-1.0.1.jar
httpcore-4.0.jar
mail-1.4.jar
neethi-3.0.1.jar
spring.jar
woden-api-1.0M8.jar
wsdl4j-1.6.2.jar
wstx-asl-3.2.9.jar
XmlSchema-1.4.7.jar
步骤四 在Web工程下创建一个接口并定义一个方法
例:
package com.soap.axis2;
public interface IServiceServer
{
public String sayhello(String name);
}
步骤五 新建一个类继承接口
例:
package com.soap.axis2;
public class ServiceServerImpl implements IServiceServer
{
@Override
public String sayhello(String name)
{
return "my name is "+name;
}
}
步骤六 在工程src目录下创建spring配置文件applicationContext.xml
applicationContext.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean id="SayHelloService" class="com.soap.axis2.ServiceServerImpl">
</bean>
</beans>
步骤七 在Web工程->WebRoot目录下新建axis2-web -> listServices.jsp目录和文件
listServices.jsp文件内容如下:
<%@
page contentType="text/html;charset=UTF-8" language="java"
%><%@
page import="org.apache.axis2.Constants,
org.apache.axis2.description.AxisOperation,
org.apache.axis2.description.AxisService,
java.util.Collection,
java.util.HashMap,
java.util.Iterator"
%><html>
<head><title>List Services</title>
<style>
h2{margin:20 0 5 0;}
ul{margin-top:5;}
</style>
</head>
<body>
<h1>Available services</h1>
<%
HashMap serviceMap = (HashMap) request.getSession().getAttribute(Constants.SERVICE_MAP);
Collection servicecol = serviceMap.values();
if(servicecol.size()==0){%>Available services is Empty.<%}
for (Iterator iterator = servicecol.iterator(); iterator.hasNext();) {
AxisService axisService = (AxisService) iterator.next();
Iterator opItr = axisService.getOperations();
String serviceName = axisService.getName();
%>
<h2><font color="blue"><a href="<%=serviceName %>?wsdl" target="_blank"><%=serviceName%></a></font></h2>
<i>Available Operations</i>
<ul>
<%
while (opItr.hasNext()) {
AxisOperation axisOperation = (AxisOperation) opItr.next();
%><li><%=axisOperation.getName().getLocalPart()%></li><%
}
%>
</ul>
<%
}
%>
</body>
</html>
步骤八 在Web工程->WebRoot->WEB-INF下新建services->service(这个目录自定义)->META-INF->services.xml目录和文件
services.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<serviceGroup>
<service name="sayHelloService">
<description>
sayHelloService:Spring POJO Axis2 Service Sample
</description>
<parameter name="ServiceClass">
com.soap.axis2.IServiceServer
</parameter>
<parameter name="ServiceObjectSupplier">
org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier
</parameter>
<parameter name="SpringBeanName">SayHelloService</parameter>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
<operation name="sayHello">
<messageReceiver
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</operation>
</service>
</serviceGroup>
步骤九 修改Web工程->WebRoot->WEB-INF->web.xml
在web.xml文件<web-app></web-app>中加上:
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
发布我们新建的Web工程
打开浏览器访问:http://localhost:8080/WebService//services/listServices
会出现我们部署的服务 sayHelloService
client 实现
步骤一 在工程中新建一个类(可以重新建一个工程但需要导入Axis2的相关包)
例:
package com.soap.axis2.client;
import javax.xml.namespace.QName;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
public class ServiceClient
{
public static void main(String[] args1) throws AxisFault
{
String path = "http://localhost:8080/WebService/services/sayHelloService";
EndpointReference targetEPR = new EndpointReference(path);
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
options.setTo(targetEPR);
QName opGetWeather = new QName("http://axis2.soap.com","sayhello");
Object[] response = serviceClient.invokeBlocking(opGetWeather,
new Object[]{"zhangsan"},new Class[]{String.class});
System.out.println(response[0]);
}
}
执行此类
- WebService_spring_axis2_.rar (6.8 MB)
- 下载次数: 226
发表评论
-
jxl操作execl
2014-06-12 16:18 633jxl操作execljxl操作execljxl操作execlj ... -
jFreechart
2013-03-08 16:15 0jFreechart -
需要学习内容
2013-03-05 22:15 0技术问题: 1、spring框架的实现原理(ioc、aop ... -
JAVA NIO
2012-10-27 09:51 0JAVA NIO -
JAVA类加载
2012-10-26 16:06 0JAVA类加载 -
理解JVM
2012-10-26 16:06 0理解JVM -
理解HashMap,HashTable
2012-10-26 16:05 0理解HashMap,HashTable -
JMS ActiveMQ
2012-10-26 16:04 0JMS和WebService的区别? 1.WebService ... -
JAVA垃圾收集机制
2012-10-26 16:01 0... -
JAVA并发编程学习
2012-10-26 16:00 0java并发编程 -
ssh的优缺点整理
2012-09-22 16:13 0以前开发web应用程序的 ... -
java 复习
2012-09-12 14:31 0java的堆与栈 堆: 1、堆是一个运行时数据区,有new.. ... -
javascript实现图片预览
2012-07-31 15:22 0使用两种不同的方法实现图片预览功能 Java代码 &l ... -
使用JSONP完成HTTPS跨域请求
2012-04-02 21:26 26377使用JSONP完成HTTPS跨域请 ... -
部署WebService服务(cxf,spring)2
2012-03-29 18:30 0client 实现 步骤一 在工程中新建一个类(可以重新 ... -
部署WebService服务(cxf,spring)
2012-03-30 18:11 5267使用CXF,spring部署Web Service服务 se ... -
部署WebService服务(Axis2,spring)2
2012-03-27 11:06 0步骤七 在Web工程->WebRoot目录下新建axis ... -
部署WebService服务(Axis)
2012-03-24 16:44 1412Axis实现Axis server实现步骤一 创建Web工程 ...
相关推荐
标题中的“axis2+spring webservice”指的是使用Apache Axis2框架与Spring框架集成来开发Web服务。Apache Axis2是Java环境中广泛使用的Web服务引擎,它提供了高性能、灵活且可扩展的架构。Spring框架则是一个全面的...
4. **部署和发布服务**:如果我们要在Spring中发布一个Web服务,可以使用Axis2的`SpringServiceDeployer`。这需要将服务类和相关的配置文件打包成一个Axis2模块(.aar文件),然后部署到Axis2服务器上。 5. **测试...
1. **创建WebService**:在Axis2中,可以通过编写一个简单的Java类并暴露其方法作为Web服务接口。这个类通常会遵循SOAP协议,定义服务操作。例如,你可以创建一个名为`HelloWorldService`的类,包含一个`sayHello`...
- **部署服务**:将服务和Spring上下文文件部署到Axis2服务器上。 5. **运行时流程**: 当客户端请求服务时,Axis2会从Spring容器中查找对应的服务Bean并执行。这样,服务实例的创建和依赖的注入都由Spring管理,...
4. **部署服务**:使用Axis2的ServiceArchive(SAR)文件格式,将Spring配置文件和服务类打包。SAR文件包含了服务的所有依赖,使得可以在Axis2环境中部署。 5. **启动Axis2服务器**:将SAR文件放入Axis2的...
【WebService(Axis+Spring+jpa)】是一种将Web服务与企业级Java技术相结合的应用实例,旨在提供基于HTTP的远程调用功能。在这个项目中,Apache Axis作为SOAP(简单对象访问协议)服务的生成器和客户端工具,Spring...
在IT行业中,Web Service是一种基于标准协议...总之,Web Service与Spring的整合使得服务接口的开发、部署和消费变得更加简单。通过理解上述步骤,你可以更有效地在项目中实现这一集成,提高系统的互操作性和可扩展性。
而 Axis 是一个流行的Apache项目,用于创建和部署Web服务,它提供了强大的SOAP处理能力。通过整合SpringBoot与Axis,我们可以快速构建高效且易于维护的Web服务。 首先,让我们了解什么是SpringBoot。SpringBoot是...
4. **部署服务**:将Spring配置文件和Axis2服务档案(SAR文件)打包到一个WAR文件中,然后部署到支持Servlet容器(如Tomcat)上。 5. **调用服务**:客户端可以通过标准的SOAP请求来调用服务,或者使用Spring的...
3. **定义Web服务**: 在Spring配置文件中,使用`ServiceDeployer` bean部署Axis2服务。这通常涉及到将服务的aar文件添加到Axis2的Repository目录,并在Spring配置中声明: ```xml <value>/path/to/service....
1. **服务组件管理**:Spring可以作为服务组件的容器,通过依赖注入(DI)来管理Axis2服务的实例,使服务的创建和销毁更加灵活。 2. **事务管理**:Spring提供了强大的事务管理功能,能够控制Web服务执行过程中的...
标题中的“在自己的项目中利用axis2+spring发布webservice与客户端调用包括session”指出的是一个关于在实际项目开发中如何使用Axis2和Spring框架来发布Web服务,并且涉及了Web服务客户端调用以及会话(session)...
- **Spring集成**:Axis2与Spring框架紧密集成,这使得开发者可以利用Spring的依赖注入等功能来简化WebService的开发过程。 - **JSON支持**:除了XML之外,Axis2还支持JSON数据格式,使得开发者能够更灵活地处理不同...
2. **部署服务**:在Spring上下文中,你可以定义一个实现特定接口的服务类,并使用`@WebService`注解标记为Web服务。然后,通过Spring的`WebServiceTemplate`或者自定义的`MessageHandler`来处理SOAP请求和响应。 3...
我们需要创建一个Axis2服务Archive(AAR)文件来部署服务。首先,创建一个`META-INF/services.xml`文件,定义服务的元数据: ```xml <description>Hello World Service ...
【标题】"Axis2 WebService 详细教程"涵盖了在Java环境中使用Apache Axis2框架创建、部署和使用Web服务的核心概念和技术。Apache Axis2是Apache软件基金会开发的一个强大的Web服务引擎,它提供了高度优化的Web服务...
3. 生成 AAR 文件:通过 MyEclipse 的工具,可以将服务接口和服务实现打包成 Axis2 可部署的 AAR 文件。 五、部署 WebService 1. 将 AAR 文件放入 Tomcat 的 `webapps/axis2/WEB-INF/services` 目录下,Tomcat 启动...
2. **Tomcat配置**:设置`CATALINA_HOME`环境变量,并将Axis2服务包(axis2.war)部署到Tomcat的webapps目录下。通过启动Tomcat服务器,访问`http://localhost:8080/axis2`来验证Axis2服务是否成功启动。 3. **...