ssm webservice实例介绍

什么是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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值