什么是webservice?:
概述一:
W3C组织对其的定义如下,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计。Web Service服务通常被定义为一组模块化的API,它们可以通过网络进行调用,来执行远程系统的请求服务。
好了大概配置就这样,博主知识技术有限,这里就不仔细写了,如果不懂,没关系,博主把代码也上传,欢迎大家参考学习。
欢迎下载:https://download.csdn.net/download/qq_30764991/11026040
简单的说:WebService即Web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术。
实现不同系统,进程间,任何地点的数据交换,webservice是跨语言技术。webservice是基于HTTP与XML的技术。
采用标准SOAP(Simple Object Access Protocol)协议传输,soap属于W3C标准。Soap协议是基于http的应用层协议,传输是xml数据。
采用wsdl作为描述语言即webservice使用说明书,wsdl属于w3c标准。
xml是webservice的跨平台的基础,xml主要的 优点在于它既与平台无关,又与厂商无关。
什么是webservice?
概述二: Webservice是一套远程调用技术规范;
远程调用RPC, 实现了系统与系统进程间的远程通信.
java领域有很多可实现远程通讯的技术,如:RMI(Socket + 序列化)、Binary-RPC(Http+二进制, 代表Hessian)、XML-RPC(Http+XML, 代表Burlap, WebService用的SOAP)、JMS(使用消息机制)、Mina(使用NIO)等, 底层都是基于http/socket和网络IO来实现的.
从效率上来讲, RMI > Hessian >> Burlap >> web service.
底层传输简介:
1.1. WebService三要素
1.1.1. SOAP (简易对象访问协议)
数据传输的协议(http+xml) 基于http协议传输...传输的内容是xml
1.1.2. WSDL (Web services 描述语言 说明书)
定义webservice数据是如何传输的,数据的内容 以及相关协议描述和定义
客户端通过wsdl文件获取本地代理类(也叫桩)
wsimport jdk提供! -s -d -p
1.1.3. UDDI (webservice注册地)
注册webService服务
整合和发现WebService服务—类似目录服务器
以上大概介绍了一下,那么接下来就代码开干吧:
整个项目结构如下图:
项目架构:
maven idea ssm jdk7 tomkat8,建议与博主的版本一样,否则可能会有兼容问题。
一:天才第一步,万事依赖库。
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.hong.hellomavenssm</groupId>
<artifactId>HelloMavenSsm</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>HelloMavenSsm Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<!-- Spring版本号 -->
<spring.version>4.3.8.RELEASE</spring.version>
</properties>
<dependencies>
<!-- Spring相关包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- AOP相关包 -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.0</version>
</dependency>
<!-- MyBatis相关包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
<!-- MySQL相关包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version>
</dependency>
<!-- 数据库连接池 -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.3</version>
</dependency>
<!-- Spring集成MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.3</version>
</dependency>
<!-- Spring集成MyBatis -->
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-dbutils/commons-dbutils -->
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
<!-- JSP标准标签库 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- 日志相关包 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>HelloMavenSsm</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
二:加载相应的配置:log4j.properties ,mybatis.cfg.xml ,mysqlproperties,spring-servlet.xml
2.1:log4j.properties 具体如下:
log4j.rootCategory=WARN, stdout , R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=D:\\apache-tomcat-7.0.52\\logs\\qc.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
1log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n
log4j.logger.com.neusoft=WARN
log4j.logger.com.opensymphony.oscache=ERROR
log4j.logger.net.sf.navigator=ERROR
log4j.logger.org.apache.commons=ERROR
log4j.logger.org.apache.struts=WARN
log4j.logger.org.displaytag=ERROR
log4j.logger.org.springframework=WARN
log4j.logger.com.ibatis.db=WARN
log4j.logger.org.apache.velocity=FATAL
log4j.logger.com.canoo.webtest=WARN
log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN
log4j.logger.org.hibernate=WARN
log4j.logger.org.logicalcobwebs=WARN
2.2mybatis.cfg.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC
"-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 配置日志 -->
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<!-- 配置别名 -->
<typeAliases>
<package name="com.hong.domain"/>
</typeAliases>
</configuration>
2.3mysqlproperties配置如下:记得修改成你自己对应的数据库与用户名与密码:
mysql.driver=com.mysql.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/test5?useUnicode=true&characterEncoding=utf8
mysql.username=root
mysql.password=123456
2.4:springmvc-servlet.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
" >
<context:annotation-config></context:annotation-config>
<context:component-scan base-package="com.hong"></context:component-scan>
<mvc:annotation-driven></mvc:annotation-driven>
<mvc:default-servlet-handler/>
<!-- pro.setLocations(locations); -->
<bean id="propertyPlaceholder"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list><value>classpath:mysql.properties</value></list>
</property>
</bean>
<!-- 配置数据源
org.apache.commons.dbcp.BasicDataSource
BasicDataSource dataSource;
dataSource.setDriverClassName(driverClassName);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource.setInitialSize(initialSize);
dataSource.setMaxIdle(maxIdle);
-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
p:driverClassName="${mysql.driver}" p:url="${mysql.url}"
p:username="${mysql.username}" p:password="${mysql.password}"
p:initialSize="3" p:maxIdle="10"
></bean>
<!--
org.mybatis.spring.SqlSessionFactoryBean
SqlSessionFactoryBean factory;
factory.setDataSource(dataSource);
factory.setConfigLocation(configLocation);
-->
<bean id="factory" class="org.mybatis.spring.SqlSessionFactoryBean"
p:dataSource-ref="dataSource" p:configLocation="classpath:mybatis.cfg.xml"
p:mapperLocations="classpath*:com/hong/dao/*.xml"
>
<!-- 自动扫描mapping.xml文件p:mapperLocations="classpath*:com/hong/dao/*.xml" -->
</bean>
<!--
org.mybatis.spring.mapper.MapperScannerConfigurer
MapperScannerConfigurer con;
con.setBasePackage(basePackage);
con.setSqlSessionFactoryBeanName(sqlSessionFactoryName);
-->
<bean id="configurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer"
p:basePackage="com.hong.dao" p:sqlSessionFactoryBeanName="factory"
></bean>
<!-- 配置事务
org.springframework.jdbc.datasource.DataSourceTransactionManager;
DataSourceTransactionManager manager;
manager.setDataSource(dataSource);
-->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
p:dataSource-ref="dataSource"
></bean>
<!--
上传处理器
org.springframework.web.multipart.commons.CommonsMultipartResolver;
CommonsMultipartResolver resolver;
resolver.setDefaultEncoding(defaultEncoding);
resolver.setUploadTempDir(uploadTempDir);
resolver.setMaxUploadSize(maxUploadSize);
-->
<!--<bean id="multiResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:defaultEncoding="UTF-8" p:uploadTempDir="/temp/"
p:maxUploadSize="52428800"
></bean>-->
<!-- 视图解析器
org.springframework.web.servlet.view.JstlView;
JstlView jView;
org.springframework.web.servlet.view.InternalResourceViewResolver;
InternalResourceViewResolver in;
in.setViewClass(viewClass);
in.setPrefix(prefix);
in.setSuffix(suffix);
-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:viewClass="org.springframework.web.servlet.view.JstlView"
p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"
></bean>
<tx:annotation-driven transaction-manager="txManager"/>
</beans>
运行效果:这样就可以调用其他系统传过来的数据了
如这里查询北京天气:显示如下:
好了大概配置就这样,博主知识技术有限,这里就不仔细写了,如果不懂,没关系,博主把代码也上传,欢迎大家参考学习。
欢迎下载:https://download.csdn.net/download/qq_30764991/11026040