- 浏览: 1098833 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
skyesx:
这是2PC实现,更常用的是一个柔性事务的实现,可以参考http ...
Spring分布式事务实现 -
ddbird:
这第一句就不严谨“分布式事务是指操作多个数据库之间的事务”,显 ...
Spring分布式事务实现 -
呵呵6666:
基于互联网支付系统的微服务架构分布式事务解决方案http:// ...
Spring分布式事务实现 -
小黄牛:
写得不错,交流群:472213887
Spring分布式事务实现 -
jiaoqf321456:
这明明是用的apache的压缩,给ant.jar有半毛钱关系吗 ...
使用ant.jar进行文件zip压缩
一、服务器端发布WebService服务
1、POM.xml文件中引入相关依赖包
2、定义spring服务
3、配置并发布AxisServlet
4、修改启动类,并重写初始化方法(打包war发布时需要改变启动方式)
5、logback日志配置
二、客户端测试调用WebService
1、POM.xml文件中引入相关依赖包
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>net.logcd</groupId> <artifactId>springboot-axis</artifactId> <version>1.0.0</version> <packaging>war</packaging> <name>springboot-axis</name> <description></description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.8.RELEASE</version> <relativePath/> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.7</java.version> <maven.test.skip>true</maven.test.skip> <maven.test.failure.ignore>true</maven.test.failure.ignore> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 打war包时移除嵌入式tomcat插件 --> <!-- <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> --> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web-services</artifactId> </dependency> <!-- axis 1.4 jar start --> <dependency> <groupId>org.apache.axis</groupId> <artifactId>axis</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>axis</groupId> <artifactId>axis-jaxrpc</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>commons-discovery</groupId> <artifactId>commons-discovery</artifactId> <version>0.2</version> </dependency> <dependency> <groupId>wsdl4j</groupId> <artifactId>wsdl4j</artifactId> <version>1.6.3</version><!--$NO-MVN-MAN-VER$--> </dependency> <!-- axis 1.4 jar end --> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version><!--$NO-MVN-MAN-VER$--> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <skip>${maven.test.skip}</skip> <testFailureIgnore>${maven.test.failure.ignore}</testFailureIgnore> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
2、定义spring服务
@Service("helloService") public class HelloService { public String sayHello(String username) { return "hello,"+username; } }
3、配置并发布AxisServlet
@Configuration public class WSAxisConfig { /** * servlet过滤规则 * @return */ @Bean public ServletRegistrationBean dispatcherServlet() { ServletRegistrationBean axisServlet = new ServletRegistrationBean(new AxisServlet(), "/axis/*"); axisServlet.setName("axisServlet"); axisServlet.setLoadOnStartup(1); return axisServlet; } }
4、修改启动类,并重写初始化方法(打包war发布时需要改变启动方式)
@SpringBootApplication @ServletComponentScan public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
public class SpringBootStartApplication extends SpringBootServletInitializer{ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(Application.class); } }
5、logback日志配置
<?xml version="1.0"?> <configuration> <!-- 日志目录 --> <property name="logdir" value="logs" /> <!-- 控制台 --> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder charset="UTF-8"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%-5level] %logger - %msg%n</pattern> </encoder> </appender> <appender name="netLogcdAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${logdir}/net_logcd.log</file> <append>true</append> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${logdir}/net_logcd.%d{yyyy-MM-dd}.%i.log</fileNamePattern> <MaxHistory>3</MaxHistory> <maxFileSize>20MB</maxFileSize> <totalSizeCap>100MB</totalSizeCap> </rollingPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern> </encoder> </appender> <!-- 日志级别 TRACE, DEBUG, INFO, WARN, ERROR, ALL,OFF--> <root> <level value="info" /> <appender-ref ref="console" /> </root> <logger name="net.logcd.ws" level="info" additivity="false"> <appender-ref ref="netLogcdAppender" /> </logger> </configuration>
二、客户端测试调用WebService
public class TestClientAxisWS { @Test public void invokeHelloService_WS() throws Exception { String endPointUrl = "http://127.0.0.1:8080/axis/helloService"; String namespaceURI = "http://net.logcd.axis"; Service service = new Service(); Call call = (Call) service.createCall(); call.addParameter("userName", XMLType.XSD_STRING, ParameterMode.IN); call.setReturnType(XMLType.XSD_STRING); URL url = new URL(endPointUrl); call.setTargetEndpointAddress(url); QName opName = new QName(namespaceURI, "sayHello"); call.setOperationName(opName); Object retObj = call.invoke(new Object[] { "lucy" }); System.out.println(retObj.toString()); } /** * 取天气预报信息(.net开发的WebService) * @throws Exception */ @Test public void invokeWeatherService() throws Exception { String endPointUrl = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl"; String namespaceURI = "http://WebXml.com.cn/"; String soapActionURI = "http://WebXml.com.cn/getWeatherbyCityName"; String method = "getWeatherbyCityName"; Service service = new Service(); Call call = (Call) service.createCall(); call.addParameter(new QName(namespaceURI, "theCityName"), XMLType.XSD_STRING, ParameterMode.IN); call.setReturnType(XMLType.XSD_SCHEMA); call.setTargetEndpointAddress(new URL(endPointUrl)); call.setUseSOAPAction(true); call.setSOAPActionURI(soapActionURI); call.setOperationName(new QName(namespaceURI, method)); Schema result = (Schema) call.invoke(new Object[] { "成都" }); StringBuffer buff = new StringBuffer(); for (int i = 0; i < result.get_any().length; i++) { buff.append(result.get_any()[i]); } //把多替换成\u591A System.out.println(unicodeToString(buff.toString().replaceAll("&#x(.*?);","\\\\u$1"))); } public static String unicodeToString(String str) { Charset set = Charset.forName("UTF-16"); Pattern p = Pattern.compile("\\\\u([0-9a-fA-F]{4})"); Matcher m = p.matcher(str); int start = 0; int start2 = 0; StringBuffer sb = new StringBuffer(); while (m.find(start)) { start2 = m.start(); if (start2 > start) { String seg = str.substring(start, start2); sb.append(seg); } String code = m.group(1); int i = Integer.valueOf(code, 16); byte[] bb = new byte[4]; bb[0] = (byte) ((i >> 8) & 0xFF); bb[1] = (byte) (i & 0xFF); ByteBuffer b = ByteBuffer.wrap(bb); sb.append(String.valueOf(set.decode(b)).trim()); start = m.end(); } start2 = str.length(); if (start2 > start) { String seg = str.substring(start, start2); sb.append(seg); } return sb.toString(); } }
发表评论
-
SpringBoot开发WebService之CXF
2019-07-14 23:56 1358一、在服务器端的WebSerivce服务发布 1、POM.xm ... -
SpringBoot项目非web方式启动
2019-07-03 17:02 48181、springboot 1.x中以非web方式启动 @S ... -
SpringBoot使用Druid数据库密码加密
2019-03-06 23:28 15281、生成公钥、私钥和密码加密串 java -cp drui ... -
JDK6开发WebService及用户认证
2015-08-21 13:50 1432一、编写服务端并发布 1、定义接口 public inte ... -
WebService之CXF使用Session
2015-08-20 13:53 2007一、接口与实现 @WebService public i ... -
WebService之CXF处理类型转换
2015-08-20 13:53 2794一、接口与实现 @WebService @SOAPBin ... -
以多种方式访问WebService
2015-08-20 13:58 6456一、Java访问WebService (1)使用Axis ... -
Spring Annotation
2010-12-02 17:14 0Spring2.x引入了组件自动扫描机制,可以在类路径底 ... -
Exporting beans as web services using XFire
2015-08-20 14:07 1161Once XFire is in your buil ... -
Spring分布式事务实现
2010-11-10 14:28 83207分布式事务是指操作多个数据库之间的事务,spring的 ... -
Spring3 Annotation + Hibernate3-jpa2.0 + CGLIB + 多数据源
2010-08-19 09:30 10527一、定义一个测试用Entity。 @Entity pub ... -
使用iBatis2.0
2010-05-26 10:20 0一、NULL问题 ibatis操作oracle数据库时, ... -
Spring中的远程访问和web服务
2010-05-23 23:17 4534一、介绍 目前,Sp ... -
使用AspectJ LTW(Load Time Weaving)
2010-01-04 14:25 10792在Java 语言中,从 ... -
Spring2.0 AOP AspectJ 注释实现
2010-01-04 14:24 5595一、AOP基本概念 切面(Aspect): 一个关注点的模块 ... -
Spring + JPA + Hibernate配置
2010-01-04 14:24 34748<1>persistence.xml放到类路径下的 ... -
配置spring数据源
2009-11-06 16:47 1249配置一个数据源 Spring在第三方依赖包中包含了两 ... -
集成axis开发webservice
2009-09-16 09:09 3061一、基础知识 Web S ... -
hibernate的dialect
2009-07-23 10:04 5465一、hibernate的dialect RDBM ... -
spring ibatis入门
2009-04-20 14:16 3899一、applicationContext.xml <?x ...
相关推荐
SpringBoot以其便捷的启动和配置方式,已经成为Java开发中的首选框架之一。而 Axis 是一个流行的Apache项目,用于创建和部署Web服务,它提供了强大的SOAP处理能力。通过整合SpringBoot与Axis,我们可以快速构建高效...
在"webservice之axis实例,axis复杂对象"这个主题中,我们将关注以下核心知识点: 1. **SOAP与WSDL**: SOAP是一种轻量级的消息协议,用于在Web上交换结构化的和类型化的信息。WSDL则是一种XML格式,用来描述Web...
在实际开发中,选择哪种方式取决于项目需求和个人偏好。 总结,本教程详细介绍了如何利用Spring Boot和Apache CXF搭建Web Service服务端,以及使用JAX-WS的`javax.xml.ws.Service`和Apache CXF的`...
2. **创建WebService**:在Spring中,可以通过定义一个实现了特定接口的类来创建Web服务。这个接口通常对应于服务的WSDL契约,而实现类则包含了实际的服务逻辑。 Axis2提供了`ServiceStub`类,可以帮助我们与服务...
3. **创建WebService**:在Spring Boot应用中,你可以通过Axis1.4创建一个WebService。首先,定义一个Java类,包含你想要公开的方法。然后,使用Axis的工具生成服务端点接口和服务类。 4. **配置Spring Boot**:...
本教程将详细讲解如何将Web Service服务接口与Spring框架进行整合,以便在实际开发中实现高效、灵活的服务提供。 首先,让我们了解一下Web Service的基本概念。Web Service是一种软件系统,它通过使用开放标准(如...
Spring Boot作为现代化的Java开发框架,极大地简化了Spring应用程序的创建和配置过程。当我们需要在Spring Boot项目中集成旧版的 Axis1.4 来发布Web服务时,这通常涉及到对传统SOAP(简单对象访问协议)服务的支持。...
在IT行业中,Web服务是应用程序之间进行通信的一种标准方式,而Axis2是Apache软件基金会开发的一个流行的Java Web服务框架。Spring框架则是Java企业级应用的事实标准,提供了强大的依赖注入、AOP(面向切面编程)等...
以下是关于"java webservice之axis2与spring集成(二)"的详细知识点讲解: 1. **Spring框架**: Spring是Java领域的一个开源框架,主要用于简化企业级应用的开发。它提供了一个全面的编程和配置模型,特别强调了...
Spring Boot以其简化配置和快速开发能力而受到广泛欢迎,而Axis1.4是Apache软件基金会的一个开源项目,主要用于生成和消费SOAP Web服务。当我们需要在Spring Boot应用程序中集成Web服务时,Axis1.4提供了一个强大的...
2. **创建 Web 服务**:在 Axis1.4 中,你可以通过编写 Java 类并使用特定的注解(如 `@WebService`)来定义 Web 服务。这个类将包含你的业务逻辑,并可以通过 SOAP 调用来访问。 3. **配置 SpringBoot**:为了使 ...
客户端用springboot实现,服务端用webService+axis+mybatis实现 java期末大作业课程设计基于springboot的医院挂号预约系统源码+数据库。 软件架构说明 服务端:WebService+axis+mybatis 服务端开发环境:jdk8,...
通过以上步骤和最佳实践,开发者可以有效地利用Axis2和Spring框架整合发布多个WebService,同时借助Maven进行项目管理,提高开发效率和代码质量。这为构建复杂、可扩展的企业级Web服务解决方案提供了坚实的基础。
本文将详细介绍如何使用Apache Axis库来实现这一功能,并提供相关步骤和注意事项。 首先,理解HTTPS(超文本传输安全协议)是HTTP的安全版本,它通过SSL/TLS协议对数据进行加密,以确保数据在传输过程中的隐私和...
本文将深入探讨如何使用Spring与Axis进行集成,以便开发和消费Web服务。 首先,让我们了解Spring和Axis的基本概念。Spring是一个开源Java框架,它为构建灵活、模块化且可测试的应用程序提供了强大的支持。它包含多...
当我们谈论“Spring + Axis2 开发 WebService”时,这通常指的是使用Spring框架与Apache Axis2工具来创建、部署和消费基于SOAP(Simple Object Access Protocol)的Web服务。以下是关于这个主题的详细知识点: 1. *...
在开发Web服务时,Axis是一个常用的工具,尤其在基于Java的环境中。Axis1.4是其一个稳定版本,用于创建和使用Web服务。本篇文章将详细介绍基于Axis1.4编写Web服务服务端(Server)和客户端(Client)时所需的核心jar...
在当今的企业级应用开发中,集成多种技术框架以实现高效稳定的服务交互是常见需求之一。Axis2作为一款高性能的开源Web服务栈,提供了丰富的功能来支持SOAP、REST等多种通信协议。而Spring框架则以其强大的依赖注入和...
#### 2.2 开发Webservice接口 接下来,你需要定义一个Webservice接口。使用`@WebService`注解来标识接口,并设置`serviceName`和服务命名空间。例如: ```java @WebService(serviceName = "gzcxfw_wx_...
在本文中,我们将深入探讨如何使用Spring Boot框架与Apache Axis2进行集成,以开发Web服务端应用程序。Spring Boot以其简洁的配置和开箱即用的功能,已成为Java领域中开发微服务的首选框架。而Axis2作为流行的Web...