之前项目再集成webService发布服务 + log4j框架日志文件
来源:互联网 发布:哪的java技术培训好 编辑:程序博客网 时间:2024/06/07 01:39
P.S:之前的相关pom配置文件可以放到wms-parent统一管理
<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>com.xinyi.wms</groupId> <artifactId>wms-parent</artifactId> <version>1.0</version> <packaging>pom</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <org.mybatis.version>3.2.3</org.mybatis.version> <org.springframework.version>4.0.0.RELEASE</org.springframework.version> </properties> <dependencies> <!-- 添加依赖的接口 --> <dependency> <groupId>com.xinyi.wms</groupId> <artifactId>wms-api</artifactId> <version>1.0</version> </dependency> <!-- 添加单元测试 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- 添加dubbo包 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3</version> </dependency> <!-- lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.6</version> <scope>provided</scope> </dependency> <!-- mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${org.mybatis.version}</version> </dependency> <!-- mybatis和spring集成包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.3</version> </dependency> <!-- 驱动包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency> <!-- druid连接池 --> <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.16</version> </dependency> <!-- common-lang --> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> <!--fileupload --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <!-- spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${org.springframework.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${org.springframework.version}</version> </dependency> <!-- aspectj --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>1.7.4</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.7.4</version> </dependency> <!-- cglib --> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>3.1</version> </dependency> <!-- 引入javamail --> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.4</version> </dependency> <!-- fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.7</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.12</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-lgpl</artifactId> <version>1.9.12</version> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>1.8.6</version> </dependency> <!-- servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${org.springframework.version}</version> </dependency> <!--freemarker --> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.23</version> </dependency> <!-- dubbo --> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> </exclusions> </dependency> <!-- zookeeper --> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.2</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.5</version> </dependency> <!-- 日志框架 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.6</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.12</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> </dependency> <!-- CXF webservice --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>3.0.3</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http</artifactId> <version>3.0.3</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxrs</artifactId> <version>3.0.3</version> </dependency> </dependencies></project>
1.在pom中导入相关的包(已在父类中配置)
2.写相关的接口和实现类
2.1 接口(用于区分之前原有相同名字的接口名,因此加1..):IStudentService1
package com.xinyi.wms.client.webservice.service;import javax.jws.WebService;import javax.jws.soap.SOAPBinding;import javax.jws.soap.SOAPBinding.Style;import com.xinyi.wms.api.entity.Student;@WebService@SOAPBinding(style=Style.RPC)public interface IStudentService1 { public Student getStudentByName(String name);}
2.2 发布类: StudentServiceImpl2
package com.xinyi.wms.client.webservice.serviceImpl;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.jws.WebService;import javax.jws.soap.SOAPBinding;import javax.jws.soap.SOAPBinding.Style;import org.apache.log4j.Logger;import org.springframework.beans.factory.annotation.Autowired;import com.xinyi.wms.api.entity.Student;import com.xinyi.wms.api.service.IStudentService;import com.xinyi.wms.client.webservice.service.IStudentService1;@WebService@SOAPBinding(style=Style.RPC)public class StudentServiceImpl2 implements IStudentService1{ private static Logger logger = Logger.getLogger(StudentServiceImpl2.class); @Autowired IStudentService studentService; private Map<String, Student> studentMap = new HashMap<String,Student>(); @Override public Student getStudentByName(String name) { List<Student> list = studentService.selectAll(); for (Student student : list) { studentMap.put(student.getName(), student); } logger.info(studentMap.get(name)); return studentMap.get(name); }}
2.3 因为集成了SpringMVC…原本这一层应该在manager层,想试验MVC跟webService共存,因此放在这
类: CXFSerlvetExtend
在此就做了一件事:继承CXFNonSpringServlet,覆写loadBus方法:里面代码全部复制至源码的CXFSerlvet类;如果是Spring集成,则可以省略此类
@Override protected void loadBus(ServletConfig servletConfig) { /* ApplicationContext wac = WebApplicationContextUtils. getWebApplicationContext(servletConfig.getServletContext());*/ ApplicationContext wac = (ApplicationContext) servletConfig.getServletContext() .getAttribute(FrameworkServlet.SERVLET_CONTEXT_PREFIX+"springMVC");
在resources目录中添加配置文件: application-cxf-client.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:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <!-- 创建服务类 --> <bean id="StudentServiceImpl" class="com.xinyi.wms.client.webservice.serviceImpl.StudentServiceImpl2"/> <!-- 发布服务 serviceClass:服务接口全限定名 serviceBean:服务类对象,通过#号在spring容器找到对应id的对象 address:发布地址. --> <jaxws:server serviceClass="com.xinyi.wms.client.webservice.service.IStudentService1" serviceBean="#StudentServiceImpl" address="/studentService"> </jaxws:server></beans>
3.在application-client.xml中引入cxf配置文件
<!-- 引入CXF配置文件 --> <import resource="classpath:application-cxf-client.xml"/>
以及MVC相关模板配置:
<!--配置freeMarker的模板路径 --> <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <!-- 配置freemarker的文件编码 --> <property name="defaultEncoding" value="UTF-8" /> <!-- 配置freemarker寻找模板的路径 --> <property name="templateLoaderPath" value="/WEB-INF/views/" /> </bean> <!--freemarker视图解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <!-- 是否在model自动把session中的attribute导入进去; --> <property name="exposeSessionAttributes" value="true" /> <!-- 配置逻辑视图自动添加的后缀名 --> <property name="suffix" value=".ftl" /> <!-- 配置视图的输出HTML的contentType --> <property name="contentType" value="text/html;charset=UTF-8" /> </bean> <!-- 使用Spring+quartz完成定时任务 --> <!-- 配置作业类 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <util:list id="beanList"> <ref bean="mappingJacksonHttpMessageConverter" /> </util:list> </property> </bean> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <!--处理上传 --> <bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver" id="multipartResolver"> <property name="maxUploadSize" value="100000000" /> </bean>
4.在web.xml中添加配置的发布类的路径
<!-- 设置webservice容器加载配置文件路径 --> <servlet> <servlet-name>CXFSerlvet</servlet-name> <servlet-class>com.xinyi.wms.client.webservice.publish.CXFSerlvetExtend</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <!--请求拦截的路径格式--> <servlet-mapping> <servlet-name>CXFSerlvet</servlet-name> <url-pattern>/ws/*</url-pattern> </servlet-mapping>
在发布类中集成了log4j记录日志信息
log4j.properties
# Global logging configurationlog4j.rootLogger=stdout,I,D,E# MyBatis logging configuration...log4j.logger.com.xinyi.wms.manager.test.App=TRACE### 输出信息到控制抬 ####log4j.appender.stdout = org.apache.log4j.ConsoleAppender#log4j.appender.stdout.Target = System.out#log4j.appender.stdout.layout = org.apache.log4j.PatternLayout#log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n### 输出DEBUG 级别以上的日志到=H://xinyi/logs/debug ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = H://xinyi/logs/debug/debug#服务器启动日志是追加,false:服务器启动后会生成日志文件把老的覆盖掉log4j.appender.D.Append = truelog4j.appender.D.Threshold = DEBUGlog4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n#日志的最大容量为10Mlog4j.appender.D.maxFileSize=10240KB #设置每天生成一个文件名后添加的名称,备份名称:年月日.loglog4j.appender.D.DatePattern='_'yyyy-MM-dd'.log'### 输出INFO 级别以上的日志到=H://xinyi/logs/info###log4j.appender.I = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.I.File =H://xinyi/logs/info/infolog4j.appender.I.Append = truelog4j.appender.I.Threshold = INFOlog4j.appender.I.layout = org.apache.log4j.PatternLayoutlog4j.appender.I.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n#设置每天生成一个文件名后添加的名称,备份名称:年月日.loglog4j.appender.I.DatePattern='_'yyyy-MM-dd'.log'#日志的最大容量为10Mlog4j.appender.I.maxFileSize=10240KB ### 输出ERROR 级别以上的日志到=H://xinyi/logs/error###log4j.appender.E = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.E.File =H://xinyi/logs/error/errorlog4j.appender.E.Append = truelog4j.appender.E.Threshold = ERRORlog4j.appender.E.layout = org.apache.log4j.PatternLayoutlog4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n#设置每天生成一个文件名后添加的名称,备份名称:年月日.loglog4j.appender.E.DatePattern='_'yyyy-MM-dd'.log'#日志的最大容量为10Mlog4j.appender.E.maxFileSize=10240KB
在web.xml中加入日志的启动项
<!-- 配置日期框架 --> <display-name>log web</display-name> <context-param> <param-name>log4jConfigurationLocation</param-name> <param-value>classpath*:log4j.properties</param-value> </context-param> <!--每隔60s扫描log4j的配置文件,这里配置的log4jRefreshInterval参数表示能不用重启web服务器就能动态更改log4j日志级别,这也是和Spring整合的一大好处--> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>60000</param-value> </context-param> <listener> <!--日志监听--> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>
附上测试截图:
将生成的wsdl右键保存到本地,用SoapUI软件创建一个soap项目,并填入相应请求参数来模拟获取webService服务,如下图:
阅读全文
0 0
- 之前项目再集成webService发布服务 + log4j框架日志文件
- Maven项目集成cxf框架发布WebService
- 获取之前发布的webService服务
- Spring 集成CXF框架发布Webservice服务 和 使用jdk生成Webservice clinet
- axis2+spring集成发布webservice服务
- Spring 中集成log4j日志框架
- 项目中集成 axis2 发布webservice
- 项目中集成 axis2 发布webservice
- axis2 webservice 发布、调用与项目集成
- 项目中集成 axis2 发布webservice
- CXF框架学习,发布webservice服务
- Log4j日志文件存放到项目目录下(Spring集成)
- java web 项目配置日志框架log4j
- webservice 笔记(小结) axis2 集成spring 发布服务
- 利用resteasy框架构建rest webservice----第四波:resteasy与spring真正集成发布我们的restful webservice 服务(实例、教程)
- 利用resteasy框架构建rest webservice----第四波:resteasy与spring真正集成发布我们的restful webservice 服务(实例、教程)
- 【日志框架】——通过log4j.properties文件学习log4j
- log4j的日志文件保存与spring集成
- LeetCode刷题(48)--Remove Duplicates from Sorted List II
- 初探OAuth2.0第三方认证登录
- 菜鸡的Django学习笔记(一)Linux+deepin+pycharm
- jdk 常用的queue
- 现代软件工程_团队项目_阿尔法阶段_第六次会议记录_2017.11.30
- 之前项目再集成webService发布服务 + log4j框架日志文件
- 程序员 30 岁前,该如何规划自己的职业发展?
- PyCharm3.0默认快捷键
- 单链表的归并排序
- OpenMV固件升级
- iOS面试题:腾讯一、二面以及参考思路
- Office 2016 for Mac 免费永久使用方式
- 11.25java作业
- NOR型flash与NAND型flash的区别